diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/channel/ChannelManager.java b/proxy/src/main/java/org/apache/rocketmq/proxy/channel/ChannelManager.java index 8fa53b3d7b..9a25d1c45e 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/channel/ChannelManager.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/channel/ChannelManager.java @@ -50,7 +50,7 @@ public class ChannelManager { } public T createChannel(Supplier creator, Class clazz) { - return createChannel(anonymousChannelId(), creator, clazz); + return createChannel(anonymousChannelId(clazz.getName()), creator, clazz); } public T createChannel(String clientId, Supplier creator, Class clazz) { @@ -96,6 +96,14 @@ public class ChannelManager { return clientHost + "@" + localAddress; } + private String anonymousChannelId(String className) { + final String clientHost = InterceptorConstants.METADATA.get(Context.current()) + .get(InterceptorConstants.REMOTE_ADDRESS); + final String localAddress = InterceptorConstants.METADATA.get(Context.current()) + .get(InterceptorConstants.LOCAL_ADDRESS); + return className + "@" + clientHost + "@" + localAddress; + } + public static SimpleChannel createSimpleChannelDirectly() { final String clientHost = InterceptorConstants.METADATA.get(Context.current()) .get(InterceptorConstants.REMOTE_ADDRESS);