项目需要增加JMX 监控,SO翻了翻官方文档,有几种实现方式,下面说一个我选择的,一是方便扩展,二是方便我底层封装
package com.ecej.nove.autoconfigure.jmx;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.jmx.support.ConnectorServerFactoryBean;
import org.springframework.remoting.rmi.RmiRegistryFactoryBean;
/**
* JMX监控
*
* @author QIANG
*
*/
@Configuration
public class JmxAutoConfiguration {
private Logger LOGGER = LoggerFactory.getLogger(JmxAutoConfiguration.class);
@Value("${jmx.rmi.host:localhost}")
private String rmiHost;
@Value("${jmx.rmi.port:9999}")
private Integer rmiPort;
@Bean
public RmiRegistryFactoryBean rmiRegistry() {
final RmiRegistryFactoryBean rmiRegistryFactoryBean = new RmiRegistryFactoryBean();
rmiRegistryFactoryBean.setPort(rmiPort);
rmiRegistryFactoryBean.setAlwaysCreate(true);
LOGGER.info("RmiRegistryFactoryBean create success !!");
return rmiRegistryFactoryBean;
}
@Bean
@DependsOn("rmiRegistry")
public ConnectorServerFactoryBean connectorServerFactoryBean() throws Exception {
final ConnectorServerFactoryBean connectorServerFactoryBean = new ConnectorServerFactoryBean();
connectorServerFactoryBean.setObjectName("connector:name=rmi");
connectorServerFactoryBean.setServiceUrl(
String.format("service:jmx:rmi://%s:%s/jndi/rmi://%s:%s/jmxrmi", rmiHost, rmiPort, rmiHost, rmiPort));
LOGGER.info("ConnectorServerFactoryBean create success !!");
return connectorServerFactoryBean;
}
}
如此的简单
转载请注明原文地址: https://ju.6miu.com/read-1773.html