解决服务地址错误问题

This commit is contained in:
heavyrain2012
2021-11-20 10:52:35 +08:00
parent 3862ab5254
commit 4fdc883f25
4 changed files with 26 additions and 45 deletions
@@ -30,8 +30,6 @@ public final class BrokerConstants {
public static final String HTTP_LOCAL_PORT = "local_port";
public static final String HTTP_ADMIN_PORT = "http.admin.port";
public static final String NODE_ID = "node_id";
public static final String NODE_IDS = "node_ids";
public static final String DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME = "moquette_store.mapdb";
public static final String DEFAULT_PERSISTENT_PATH = System.getProperty("user.dir") + File.separator
+ DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME;
@@ -106,11 +104,6 @@ public final class BrokerConstants {
public static final String CHATROOM_INFO_UPDATE_CALLBACK = "chatroom.chatroom_info_update_callback";
public static final String CHATROOM_MEMBER_UPDATE_CALLBACK = "chatroom.chatroom_member_update_callback";
public static final String HZ_Cluster_Node_External_IP = "node_external_ip";
public static final String HZ_Cluster_Node_External_Long_Port = "node_external_long_port";
public static final String HZ_Cluster_Node_External_Short_Port = "node_external_short_port";
public static final String HZ_Cluster_Node_ID = "node_id";
public static final String HTTP_SERVER_SECRET_KEY = "http.admin.secret_key";
public static final String HTTP_SERVER_API_NO_CHECK_TIME = "http.admin.no_check_time";
@@ -17,10 +17,6 @@ import io.netty.buffer.ByteBuf;
import cn.wildfirechat.common.ErrorCode;
import win.liyufan.im.IMTopic;
import static io.moquette.BrokerConstants.HZ_Cluster_Node_External_IP;
import static io.moquette.BrokerConstants.HZ_Cluster_Node_External_Long_Port;
import static io.moquette.BrokerConstants.HZ_Cluster_Node_External_Short_Port;
@Handler(IMTopic.RouteTopic)
public class RouteHandler extends IMHandler<WFCMessage.RouteRequest> {
@Override
@@ -38,10 +34,9 @@ public class RouteHandler extends IMHandler<WFCMessage.RouteRequest> {
return ErrorCode.ERROR_CODE_SECRECT_KEY_MISMATCH;
}
Member member = mServer.getHazelcastInstance().getCluster().getLocalMember();
String serverIp = member.getStringAttribute(HZ_Cluster_Node_External_IP);
String longPort = member.getStringAttribute(HZ_Cluster_Node_External_Long_Port);
String shortPort = member.getStringAttribute(HZ_Cluster_Node_External_Short_Port);
String serverIp = mServer.getServerIp();
String longPort = mServer.getLongPort();
String shortPort = mServer.getShortPort();
ClientSession clientSession = m_sessionsStore.sessionForClient(clientID);
boolean isSessionAlreadyStored = clientSession != null;
@@ -2597,10 +2597,9 @@ public class MemoryMessagesStore implements IMessagesStore {
if (tokenUserId != null) {
if (tokenUserId.equals(userId)) {
Member member = m_Server.getHazelcastInstance().getCluster().getLocalMember();
String serverIp = member.getStringAttribute(HZ_Cluster_Node_External_IP);
String longPort = member.getStringAttribute(HZ_Cluster_Node_External_Long_Port);
String shortPort = member.getStringAttribute(HZ_Cluster_Node_External_Short_Port);
String serverIp = m_Server.getServerIp();
String longPort = m_Server.getLongPort();
String shortPort = m_Server.getShortPort();
if (!StringUtil.isNullOrEmpty(serverIp)) {
serverIPs.add(serverIp);
}
@@ -367,12 +367,9 @@ public class Server {
}
private boolean configureCluster(IConfig config) throws FileNotFoundException {
LOG.info("Configuring embedded Hazelcast instance");
String serverIp = getServerIp(config);
serverIp = getServerIp(config);
String hzConfigPath = "config/hazelcast.xml";
String hzClientIp = config.getProperty(BrokerConstants.HAZELCAST_CLIENT_IP, "localhost");
String hzClientPort = config.getProperty(BrokerConstants.HAZELCAST_CLIENT_PORT, "5703");
if (hzConfigPath != null) {
boolean isHzConfigOnClasspath = this.getClass().getClassLoader().getResource(hzConfigPath) != null;
Config hzconfig = isHzConfigOnClasspath
@@ -385,29 +382,10 @@ public class Server {
hazelcastInstance = Hazelcast.newHazelcastInstance();
}
longPort = config.getProperty(BrokerConstants.PORT_PROPERTY_NAME);
shortPort = config.getProperty(BrokerConstants.HTTP_SERVER_PORT);
String longPort = config.getProperty(BrokerConstants.PORT_PROPERTY_NAME);
String shortPort = config.getProperty(BrokerConstants.HTTP_SERVER_PORT);
String nodeIdStr = config.getProperty(BrokerConstants.NODE_ID);
ISet<Integer> nodeIdSet = hazelcastInstance.getSet(BrokerConstants.NODE_IDS);
int nodeId;
try {
nodeId = Integer.parseInt(nodeIdStr);
}catch (Exception e){
throw new IllegalArgumentException("nodeId error: " + nodeIdStr);
}
if (nodeIdSet != null && nodeIdSet.contains(nodeId)){
LOG.error("只允许一个实例运行,多个实例会引起冲突,进程终止");
System.exit(-1);
}
MessageShardingUtil.setNodeId(nodeId);
nodeIdSet.add(nodeId);
hazelcastInstance.getCluster().getLocalMember().setStringAttribute(HZ_Cluster_Node_External_Long_Port, longPort);
hazelcastInstance.getCluster().getLocalMember().setStringAttribute(HZ_Cluster_Node_External_Short_Port, shortPort);
hazelcastInstance.getCluster().getLocalMember().setIntAttribute(HZ_Cluster_Node_ID, nodeId);
hazelcastInstance.getCluster().getLocalMember().setStringAttribute(HZ_Cluster_Node_External_IP, serverIp);
MessageShardingUtil.setNodeId(1);
Tokenor.setKey(config.getProperty(BrokerConstants.TOKEN_SECRET_KEY));
String expirTimeStr = config.getProperty(TOKEN_EXPIRE_TIME);
if (!StringUtil.isNullOrEmpty(expirTimeStr)) {
@@ -421,6 +399,22 @@ public class Server {
return true;
}
private String serverIp;
private String longPort;
private String shortPort;
public String getServerIp() {
return serverIp;
}
public String getLongPort() {
return longPort;
}
public String getShortPort() {
return shortPort;
}
public HazelcastInstance getHazelcastInstance() {
return hazelcastInstance;
}