private void sendMessage() { try { /** * 参数里指定Channel使用的协议栈,如果是空的,则使用默认的协议栈, 位于JGroups包里的udp.xml。参数可以是一个以冒号分隔的字符串, * 或是一个XML文件,在XML文件里定义协议栈。 */ logger.warn("发送监控同步数据通知"); Properties prop = SystemPropertiesUtils.getProp(); String hostName = NetUtils.getLocalHost(); prop.put("node.ip", NetUtils.getIpByHost(hostName)); prop.put("node.host", hostName); prop.put("install.path", getInstallPath()); // 创建一个通道 JChannel channel = new JChannel(); // 加入一个群 channel.connect("MonitorContainer"); // 发送事件 // 这里的Message的第一个参数是发送端地址 // 第二个是接收端地址 // 第三个是发送的字符串 // 具体参见jgroup send API Message msg = new Message(null, null, prop); // 发送 channel.send(msg); // 关闭通道 channel.close(); } catch (Exception e) { logger.error(e.getMessage()); } }
@SuppressWarnings({"rawtypes", "unchecked"}) private boolean postMessage() { try { logger.warn("发送监控同步数据通知"); Properties prop = SystemPropertiesUtils.getProp(); String hostName = NetUtils.getLocalHost(); prop.put("node.ip", NetUtils.getIpByHost(hostName)); prop.put("node.host", hostName); prop.put("install.path", getInstallPath()); if (null != EnvConfigurer.env) { prop.put("deploy.env", EnvConfigurer.env); } Map<String, String> params = new HashMap<String, String>((Map) prop); HttpUtils.post(MONITOR_URL, params); return true; } catch (Exception e) { logger.error("通过httpclient发送监控同步数据通知失败"); return false; } }