druid jmx 监控 DruidDataSource ,配置的datasource 每次重启 id 发生变化,有没有起他方式可以固定监控到,而不用每次重启要修改 jmx 监控的 datasource id ?
原提问者GitHub用户weiboyiyou
是的,您可以通过配置Druid的JMX监控,来固定监控数据源,而不需要每次重启时修改JMX监控的数据源ID。
可以自己写代码: public class Jmxfordruid { public static void main(String[] args) throws Exception { if (args.length<=0){ System.out.print("使用方式:请数据jmx地址,监控主备的数据源,已经监控属性!"); System.exit(1); } String addr=args[0]; String flag=args[1]; //master slave noslave String attr=args[2]; String jmxurl="service:jmx:rmi:///jndi/rmi://"+addr+"/jmxrmi"; //"service:jmx:rmi:///jndi/rmi://192.168.32.12:59067/jmxrmi" JMXServiceURL url = new JMXServiceURL(jmxurl); JMXConnector conn = JMXConnectorFactory.connect(url); MBeanServerConnection mbsc = conn.getMBeanServerConnection(); Set mbeans = mbsc.queryNames(null,null); for (ObjectName ob : mbeans) { if(ob.toString().contains("com.alibaba.druid:type=DruidDataSource,id")){ ObjectName datasource = new ObjectName(ob.toString()); if(flag.contentEquals("slave")){ if(mbsc.getAttribute(datasource,"Url").toString().contains("bak")){ System.out.println(mbsc.getAttribute(datasource,attr)); } } if(flag.contentEquals("master")){ if(!(mbsc.getAttribute(datasource,"Url").toString().contains("bak"))){ System.out.println(mbsc.getAttribute(datasource,attr)); } } } } } }
原回答者GitHub用户weiboyiyou
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。