You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "JoyfulAndSpeedyMan (via GitHub)" <gi...@apache.org> on 2023/03/10 08:28:35 UTC

[GitHub] [dubbo] JoyfulAndSpeedyMan opened a new issue, #11784: 端口协议复用支持rest吗

JoyfulAndSpeedyMan opened a new issue, #11784:
URL: https://github.com/apache/dubbo/issues/11784

   <!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
   
   - [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
   
   ## Ask your question here
   版本:dubbo 3.1.7
   端口协议复用支持rest吗?比如使用以下配置
   `
   dubbo:
     protocol:
       name: dubbo
       port: 30060
       threads: 800
       ext-protocol: rest,
   `
   经过尝试,现在dubbo3.1.7会抛出下面的异常信息,貌似dubbo会新创建一个jetty来响应rest请求,而不会像文档中提到的一样通过切换netty的ServerPipeline来实现
   `
   ava.lang.IllegalStateException: Failed to start jetty server on 172.16.192.55:30060, cause: Failed to bind to 0.0.0.0/0.0.0.0:30060
   	at org.apache.dubbo.remoting.http.jetty.JettyHttpServer.<init>(JettyHttpServer.java:90) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.remoting.http.jetty.JettyHttpBinder.bind(JettyHttpBinder.java:31) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.remoting.http.HttpBinder$Adaptive.bind(HttpBinder$Adaptive.java) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.rest.DubboHttpProtocolServer.doStart(DubboHttpProtocolServer.java:54) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.rest.BaseRestProtocolServer.start(BaseRestProtocolServer.java:47) ~[dubbo-3.1.7.jar:3.1.7]
   	at com.gemantic.wealth.WealthRestProtocol.lambda$doExport$1(WealthRestProtocol.java:45) ~[dubbo-ext-rest-choosable-annotation-1.0.0-SNAPSHOT.jar:?]
   	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[?:1.8.0_221]
   	at com.gemantic.wealth.WealthRestProtocol.doExport(WealthRestProtocol.java:42) ~[dubbo-ext-rest-choosable-annotation-1.0.0-SNAPSHOT.jar:?]
   	at org.apache.dubbo.rpc.protocol.AbstractProxyProtocol.export(AbstractProxyProtocol.java:90) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:77) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.ProtocolSecurityWrapper.export(ProtocolSecurityWrapper.java:80) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:66) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:61) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.export(ProtocolSerializationWrapper.java:47) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.registry.integration.RegistryProtocol.lambda$doLocalExport$3(RegistryProtocol.java:297) ~[dubbo-3.1.7.jar:3.1.7]
   	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[?:1.8.0_221]
   	at org.apache.dubbo.registry.integration.RegistryProtocol.doLocalExport(RegistryProtocol.java:295) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:241) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:77) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.ProtocolSecurityWrapper.export(ProtocolSecurityWrapper.java:80) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:64) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:58) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.export(ProtocolSerializationWrapper.java:47) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.ServiceConfig.doExportUrl(ServiceConfig.java:717) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.ServiceConfig.exportRemote(ServiceConfig.java:695) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.ServiceConfig.exportUrl(ServiceConfig.java:651) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:445) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:429) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:391) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:243) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServiceInternal(DefaultModuleDeployer.java:350) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.exportServices(DefaultModuleDeployer.java:322) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync(DefaultModuleDeployer.java:158) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:139) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextRefreshedEvent(DubboDeployApplicationListener.java:113) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:102) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:47) ~[dubbo-3.1.7.jar:3.1.7]
   	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[spring-context-5.3.25.jar:5.3.25]
   	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[spring-context-5.3.25.jar:5.3.25]
   	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-5.3.25.jar:5.3.25]
   	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421) ~[spring-context-5.3.25.jar:5.3.25]
   	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378) ~[spring-context-5.3.25.jar:5.3.25]
   	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:938) ~[spring-context-5.3.25.jar:5.3.25]
   	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.25.jar:5.3.25]
   	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.9.jar:2.7.9]
   	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.9.jar:2.7.9]
   	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.9.jar:2.7.9]
   	at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:164) ~[spring-boot-2.7.9.jar:2.7.9]
   	at com.gemantic.wealth.user.server.Server.main(Server.java:39) ~[classes/:?]
   Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:30060
   	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[jetty-util-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.Server.doStart(Server.java:401) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[jetty-util-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.apache.dubbo.remoting.http.jetty.JettyHttpServer.<init>(JettyHttpServer.java:87) ~[dubbo-3.1.7.jar:3.1.7]
   	... 50 more
   Caused by: java.net.BindException: Address already in use: bind
   	at sun.nio.ch.Net.bind0(Native Method) ~[?:1.8.0_221]
   	at sun.nio.ch.Net.bind(Net.java:433) ~[?:1.8.0_221]
   	at sun.nio.ch.Net.bind(Net.java:425) ~[?:1.8.0_221]
   	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[?:1.8.0_221]
   	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[?:1.8.0_221]
   	at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[jetty-util-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.server.Server.doStart(Server.java:401) ~[jetty-server-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[jetty-util-9.4.50.v20221201.jar:9.4.50.v20221201]
   	at org.apache.dubbo.remoting.http.jetty.JettyHttpServer.<init>(JettyHttpServer.java:87) ~[dubbo-3.1.7.jar:3.1.7]
   	... 50 more
   `


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] icodening commented on issue #11784: 端口协议复用支持rest吗

Posted by "icodening (via GitHub)" <gi...@apache.org>.
icodening commented on issue #11784:
URL: https://github.com/apache/dubbo/issues/11784#issuecomment-1464807090

   目前rest不支持端口复用。
   这里默认值是`jetty`,可以配置为`netty`,但是这个netty和端口复用没什么关系


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] JoyfulAndSpeedyMan commented on issue #11784: 端口协议复用支持rest吗

Posted by "JoyfulAndSpeedyMan (via GitHub)" <gi...@apache.org>.
JoyfulAndSpeedyMan commented on issue #11784:
URL: https://github.com/apache/dubbo/issues/11784#issuecomment-1465375112

   > 目前rest不支持端口复用。 这里默认值是`jetty`,可以配置为`netty`,但是这个netty和端口复用没什么关系
   
   目前端口复用支持哪些协议?未来还有可能会增加吗?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] JoyfulAndSpeedyMan commented on issue #11784: 端口协议复用支持rest吗

Posted by "JoyfulAndSpeedyMan (via GitHub)" <gi...@apache.org>.
JoyfulAndSpeedyMan commented on issue #11784:
URL: https://github.com/apache/dubbo/issues/11784#issuecomment-1477491963

   > > > 目前rest不支持端口复用。 这里默认值是`jetty`,可以配置为`netty`,但是这个netty和端口复用没什么关系
   > > 
   > > 
   > > 目前端口复用支持哪些协议?未来还有可能会增加吗?
   > 
   > 目前支持 dubbo 、triple、telnet 理论上后续所有的都会接入
   
   官网文档中提到的端口复用中的qos怎么使用
   [https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/port-unification/](https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/port-unification/)
   
   > 通过对protocol进行配置,dubbo3可以支持端口的协议复用。 比如使用Triple协议启动端口复用后,可以在相同的端口上为服务增加 Dubbo协议支持,**以及Qos协议支持**。这些协议的识别都是由一个统一的端口复用 服务器进行处理的,可以用于服务的协议迁移,并且可以节约端口以及相关的资源,减少运维的复杂性。
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] JoyfulAndSpeedyMan commented on issue #11784: 端口协议复用支持rest吗

Posted by "JoyfulAndSpeedyMan (via GitHub)" <gi...@apache.org>.
JoyfulAndSpeedyMan commented on issue #11784:
URL: https://github.com/apache/dubbo/issues/11784#issuecomment-1465458664

   > 
   
   期待后续的接入
   ![38F88014](https://user-images.githubusercontent.com/51226051/224601983-58086620-fe4f-4d0d-8c42-c056b4a6a6e0.png)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] EarthChen commented on issue #11784: 端口协议复用支持rest吗

Posted by "EarthChen (via GitHub)" <gi...@apache.org>.
EarthChen commented on issue #11784:
URL: https://github.com/apache/dubbo/issues/11784#issuecomment-1465426330

   > > 目前rest不支持端口复用。 这里默认值是`jetty`,可以配置为`netty`,但是这个netty和端口复用没什么关系
   > 
   > 目前端口复用支持哪些协议?未来还有可能会增加吗?
   
   目前支持 dubbo 、triple、telnet  理论上后续所有的都会接入


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] JoyfulAndSpeedyMan commented on issue #11784: 端口协议复用支持rest吗

Posted by "JoyfulAndSpeedyMan (via GitHub)" <gi...@apache.org>.
JoyfulAndSpeedyMan commented on issue #11784:
URL: https://github.com/apache/dubbo/issues/11784#issuecomment-1477493788

   > Member
   
   目前我在3.1.8版本中使用以下配置,会报错
   ```
     protocol:
       name: dubbo
       port: 30060
       threads: 800
       ext-protocol: tri,qos
   ```
   异常错误
   ```
   java.lang.IllegalStateException: No such extension org.apache.dubbo.rpc.Protocol by name qos, no related exception was found, please check whether related SPI module is missing.
   	at org.apache.dubbo.common.extension.ExtensionLoader.findException(ExtensionLoader.java:760) ~[dubbo-3.1.8.jar:3.1.8]
   	at org.apache.dubbo.common.extension.ExtensionLoader.createExtension(ExtensionLoader.java:767) ~[dubbo-3.1.8.jar:3.1.8]
   	at org.apache.dubbo.common.extension.ExtensionLoader.getExtension(ExtensionLoader.java:561) ~[dubbo-3.1.8.jar:3.1.8]
   	at org.apache.dubbo.common.extension.ExtensionLoader.getExtension(ExtensionLoader.java:535) ~[dubbo-3.1.8.jar:3.1.8]
   	at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java) ~[dubbo-3.1.8.jar:3.1.8]
   .....
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] AlbumenJ commented on issue #11784: 端口协议复用支持rest吗

Posted by "AlbumenJ (via GitHub)" <gi...@apache.org>.
AlbumenJ commented on issue #11784:
URL: https://github.com/apache/dubbo/issues/11784#issuecomment-1481093232

   @CrazyHZM PTAL


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org