apache / shenyu

Apache ShenYu is a Java native API Gateway for service proxy, protocol conversion and API governance.
https://shenyu.apache.org/
Apache License 2.0
8.41k stars 2.92k forks source link

SoulSofaClient register exception #993

Closed dengliming closed 3 years ago

dengliming commented 3 years ago

Describe the bug

When more than 3 methods are registered with SoulSofaClient. It throws an exception.

image

Environment

Steps to reproduce

1、use soul-examples-sofa 2、add DubboMultiParamService interface and config

Expected behavior

Debug logs

Click to expand ``` com.alipay.sofa.rpc.core.exception.SofaRpcRuntimeException: RPC-010010014: KEY 为 [bolt://org.dromara.soul.examples.dubbo.api.service.DubboMultiParamService:] 的 Consumer config 重复发布超过了 [3] 次.也许这是一个错误的配置导致的,请检查. at com.alipay.sofa.rpc.bootstrap.DefaultConsumerBootstrap.refer(DefaultConsumerBootstrap.java:136) ~[sofa-rpc-all-5.7.6.jar:5.7.6] at com.alipay.sofa.rpc.config.ConsumerConfig.refer(ConsumerConfig.java:926) ~[sofa-rpc-all-5.7.6.jar:5.7.6] at org.dromara.soul.plugin.sofa.cache.ApplicationConfigCache.build(ApplicationConfigCache.java:159) ~[classes/:na] at org.dromara.soul.plugin.sofa.cache.ApplicationConfigCache.initRef(ApplicationConfigCache.java:131) ~[classes/:na] at org.dromara.soul.plugin.sofa.subscriber.SofaMetaDataSubscriber.onSubscribe(SofaMetaDataSubscriber.java:44) ~[classes/:na] at org.dromara.soul.plugin.sync.data.websocket.handler.MetaDataHandler.lambda$null$0(MetaDataHandler.java:42) ~[classes/:na] at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_211] at org.dromara.soul.plugin.sync.data.websocket.handler.MetaDataHandler.lambda$doRefresh$1(MetaDataHandler.java:42) ~[classes/:na] at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_211] at org.dromara.soul.plugin.sync.data.websocket.handler.MetaDataHandler.doRefresh(MetaDataHandler.java:42) ~[classes/:na] at org.dromara.soul.plugin.sync.data.websocket.handler.AbstractDataHandler.handle(AbstractDataHandler.java:68) ~[classes/:na] at org.dromara.soul.plugin.sync.data.websocket.handler.WebsocketDataHandler.executor(WebsocketDataHandler.java:61) ~[classes/:na] at org.dromara.soul.plugin.sync.data.websocket.client.SoulWebsocketClient.handleResult(SoulWebsocketClient.java:87) ~[classes/:na] at org.dromara.soul.plugin.sync.data.websocket.client.SoulWebsocketClient.onMessage(SoulWebsocketClient.java:68) ~[classes/:na] at org.java_websocket.client.WebSocketClient.onWebsocketMessage(WebSocketClient.java:591) [Java-WebSocket-1.5.0.jar:na] at org.java_websocket.drafts.Draft_6455.processFrameText(Draft_6455.java:885) [Java-WebSocket-1.5.0.jar:na] at org.java_websocket.drafts.Draft_6455.processFrame(Draft_6455.java:819) [Java-WebSocket-1.5.0.jar:na] at org.java_websocket.WebSocketImpl.decodeFrames(WebSocketImpl.java:379) [Java-WebSocket-1.5.0.jar:na] at org.java_websocket.WebSocketImpl.decode(WebSocketImpl.java:216) [Java-WebSocket-1.5.0.jar:na] at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:508) [Java-WebSocket-1.5.0.jar:na] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_211] ```
nuo-promise commented 3 years ago

Can I try to solve it?

dengliming commented 3 years ago

The problem was fixed by modifying the configuration. See https://github.com/dromara/soul/pull/996. If you have a better solution, please submit your PR. Closing now.