dubbo-samples icon indicating copy to clipboard operation
dubbo-samples copied to clipboard

dubbo-kubernetes中启动的22222端口服务无法使用http协议访问

Open hqr2019 opened this issue 3 years ago • 2 comments

发布之后因为k8s对服务进行健康检查时使用http请求该端口导致一直报错。 测试telnet podip 22222 发现服务启动正常,可以进入dubbo命令行,但不能使用http协议进行访问

telnet 127.0.0.1 22222
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
   ___   __  __ ___   ___   ____     
  / _ \ / / / // _ ) / _ ) / __ \  
 / // // /_/ // _  |/ _  |/ /_/ /    
/____/ \____//____//____/ \____/   
dubbo>help
+------------------+----------------------------------------------------------------------------------+
|               cd | Change default service.                                                          |
+------------------+----------------------------------------------------------------------------------+
|            count | Count the service.                                                               |
+------------------+----------------------------------------------------------------------------------+
|             help | help command                                                                     |
+------------------+----------------------------------------------------------------------------------+
|           invoke | Invoke the service method.                                                       |
+------------------+----------------------------------------------------------------------------------+
|             live | Judge if service is alive?                                                       |
+------------------+----------------------------------------------------------------------------------+
|               ls | ls service                                                                       |
+------------------+----------------------------------------------------------------------------------+
|          offline | offline dubbo                                                                    |
+------------------+----------------------------------------------------------------------------------+
|       offlineApp | offline app addresses                                                            |
+------------------+----------------------------------------------------------------------------------+
| offlineInterface | offline dubbo                                                                    |
+------------------+----------------------------------------------------------------------------------+
|        onlineApp | online app addresses                                                             |
+------------------+----------------------------------------------------------------------------------+
|        onlineApp | online app addresses                                                             |
+------------------+----------------------------------------------------------------------------------+
|  onlineInterface | online dubbo                                                                     |
+------------------+----------------------------------------------------------------------------------+
|               ps | Print server ports and connections.                                              |
+------------------+----------------------------------------------------------------------------------+
|  publishMetadata | update service metadata and service instance                                     |
+------------------+----------------------------------------------------------------------------------+
|              pwd | Print working default service.                                                   |
+------------------+----------------------------------------------------------------------------------+
|             quit | quit telnet console                                                              |
+------------------+----------------------------------------------------------------------------------+
|            ready | Judge if service is ready to work?                                               |
+------------------+----------------------------------------------------------------------------------+
|           select | Select the index of the method you want to invoke                                |
+------------------+----------------------------------------------------------------------------------+
|         shutdown | Shutdown Dubbo Application.                                                      |
+------------------+----------------------------------------------------------------------------------+
|          startup | Judge if service has started?                                                    |
+------------------+----------------------------------------------------------------------------------+
|          version | version command(show dubbo version)                                              |
+------------------+----------------------------------------------------------------------------------+

命令行使用上述命令也不行,http请求上述地址会引起netty报错:

2022-02-06 11:27:55.228  WARN 52279 --- [qos-worker-3-10] io.netty.channel.DefaultChannelPipeline  : An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.

java.lang.NullPointerException: null
	at org.apache.dubbo.qos.server.handler.HttpProcessHandler.http(HttpProcessHandler.java:61) ~[dubbo-3.0.5.jar:3.0.5]
	at org.apache.dubbo.qos.server.handler.HttpProcessHandler.channelRead0(HttpProcessHandler.java:97) ~[dubbo-3.0.5.jar:3.0.5]
	at org.apache.dubbo.qos.server.handler.HttpProcessHandler.channelRead0(HttpProcessHandler.java:50) ~[dubbo-3.0.5.jar:3.0.5]
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99) ~[netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [netty-codec-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327) [netty-codec-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299) [netty-codec-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:255) [netty-codec-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:517) [netty-codec-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:449) [netty-codec-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279) [netty-codec-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) [netty-transport-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) [netty-common-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.73.Final.jar:4.1.73.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.73.Final.jar:4.1.73.Final]
	at java.lang.Thread.run(Thread.java:750) [na:1.8.0_321]

hqr2019 avatar Feb 06 '22 03:02 hqr2019

文档中配置的都是http协议进行健康检查的

            livenessProbe:
              httpGet:
                path: /live
                port: 22222
              initialDelaySeconds: 5
              periodSeconds: 5
            readinessProbe:
              httpGet:
                path: /ready
                port: 22222
              initialDelaySeconds: 5
              periodSeconds: 5
            startupProbe:
              httpGet:
                path: /startup
                port: 22222
              failureThreshold: 30
              periodSeconds: 10

hqr2019 avatar Feb 06 '22 03:02 hqr2019

3.0.6有修复

yuchang01 avatar Feb 09 '22 01:02 yuchang01