Мониторинг JMX EhCache Server MBeans

У меня есть экземпляр Tomcat, на котором я развернул ehcache-server. Теперь я делаю запросы на отдых, чтобы поместить / получить элементы из моего автономного класса Java. Все работает как положено.

Теперь я хотел бы следить за кешем. Я понимаю, что ehcache-server предоставляет mbeans нескольких классов. Но я почти не могу найти информацию о том, как зарегистрировать эти mbeans.

Когда я запускаю jconsole, я вижу экземпляр Tomcat и подключаюсь к нему. Но я не вижу классов (net.sf.ehache. *) Ehcache-server.

В документации сказано, что я могу использовать функцию registerMBeans для регистрации mbeans. Но как мне вызвать метод в веб-приложении из моего автономного Java-приложения?

Боюсь, я совершенно не понимаю этого. Я мог бы использовать несколько указателей о том, как регистрировать mbeans и проводить мониторинг.

Заранее спасибо.

Возможно, вы не подключаетесь к правильному порту из руководства сервер: «Автономный сервер автоматически предоставляет MBeanServer на порт 1 выше, чем порт прослушивания HTTP».

Luis Muñoz 05.06.2018 22:43

@ LuisMuñoz Я не использую автономный сервер ehcache. Но я все еще пытался подключиться к localhost: 8081, но это не сработало.

bharathp 06.06.2018 09:46

Кажется, здесь есть две разные вещи: 1. сделать так, чтобы ehcache правильно регистрировался в JMX на сервере, чтобы они отображались в jconsole. 2. Напишите свой собственный JXM-клиент для вашего приложения, другими словами, заставьте ваше приложение каким-то образом играть роль jconsole.

Luis Muñoz 06.06.2018 17:38
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
468
1

Ответы 1

На самом деле это довольно просто. Добавьте этот файл конфигурации ниже в свой веб-проект

@Configuration
@EnableCaching
public class SpringCachePocConfig implements CachingConfigurer {

    net.sf.ehcache.CacheManager newCacheManager;

    @Bean(destroyMethod = "shutdown")
    public net.sf.ehcache.CacheManager ehCacheManager() {
        //Construct you cache here.

        net.sf.ehcache.config.Configuration config = new net.sf.ehcache.config.Configuration();
        config.addCache(<Your cache>);

        this.newCacheManager = new net.sf.ehcache.CacheManager(config);
        return newCacheManager;
    }


    @Bean
    public ManagementService managementService() {
        return new ManagementService(ehCacheManager(), mbeanServer(), true, true, true, true);

    }


    @Bean
    @Override
    public CacheManager cacheManager() {
        return new EhCacheCacheManager(ehCacheManager());
    }


    @Bean
    public MBeanServer mbeanServer() {
        MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        return mBeanServer;   
    }

    @PostConstruct
    public void init() {
        ManagementService.registerMBeans(ehCacheManager(), mbeanServer(), true, true, true, true);
    }


}

Функция init() зарегистрирует ваши MBean-компоненты. Не забудьте добавить аннотацию @PostConstruct над вашим методом init()

Другие вопросы по теме