123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package com.yihu.hos.services;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.node.ObjectNode;
- import com.yihu.hos.common.configuration.ApplicationConfiguration;
- import com.yihu.hos.common.configuration.ArbiterConfiguration;
- import com.yihu.hos.core.net.IPChoiceUtils;
- import org.apache.camel.util.InetAddressUtil;
- import org.apache.http.Consts;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.CloseableHttpResponse;
- import org.apache.http.client.methods.HttpDelete;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.client.utils.URIBuilder;
- import org.apache.http.impl.client.CloseableHttpClient;
- import org.apache.http.impl.client.HttpClients;
- import org.apache.http.message.BasicNameValuePair;
- import org.springframework.beans.factory.DisposableBean;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.io.IOException;
- import java.net.URI;
- import java.net.URISyntaxException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @created Airhead 2016/8/1.
- */
- @Component("brokerServerService")
- public class BrokerServerService implements DisposableBean {
- @Autowired
- private ApplicationConfiguration applicationConfiguration;
- @Autowired
- private ArbiterConfiguration arbiterConfiguration;
- private String hostName;
- private String hostAddress;
- private int port;
- public void brokerServerOnline() {
- try {
- hostName = InetAddressUtil.getLocalHostName();
- hostAddress = IPChoiceUtils.getSourceIP();
- port = applicationConfiguration.getPort();
- ObjectMapper objectMapper = new ObjectMapper();
- ObjectNode objectNode = objectMapper.createObjectNode();
- objectNode.put("hostName", hostName);
- objectNode.put("hostAddress", hostAddress);
- objectNode.put("port", port);
- String brokerServer = objectMapper.writeValueAsString(objectNode);
- List<NameValuePair> nameValuePairList = new ArrayList<>();
- nameValuePairList.add(new BasicNameValuePair("brokerServer", brokerServer));
- CloseableHttpClient httpclient = HttpClients.createDefault();
- HttpPost httpPost = new HttpPost(arbiterConfiguration.getServer() + "/brokerServer");
- httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList, Consts.UTF_8));
- CloseableHttpResponse response = httpclient.execute(httpPost);
- response.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * brokerServer下线时通知
- */
- public void brokerServerOffline() {
- try {
- ObjectMapper objectMapper = new ObjectMapper();
- ObjectNode objectNode = objectMapper.createObjectNode();
- objectNode.put("hostName", hostName);
- objectNode.put("hostAddress", hostAddress);
- objectNode.put("port", port);
- String brokerServer = objectMapper.writeValueAsString(objectNode);
- URI uri = new URIBuilder(arbiterConfiguration.getServer() + "/brokerServer")
- .addParameter("brokerServer", brokerServer)
- .build();
- HttpDelete httpDelete = new HttpDelete(uri);
- CloseableHttpClient httpclient = HttpClients.createDefault();
- CloseableHttpResponse response = httpclient.execute(httpDelete);
- response.close();
- } catch (IOException | URISyntaxException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void destroy() throws Exception {
- // this.brokerServerOffline();
- }
- }
|