dubbo 服务的调用堆栈-- 学习dubbo启动后执行逻辑和代码

如何做到优雅关闭.

  1. 关闭dubbo线程池没有用,直接拒绝,除非客户端能够识别到这种拒绝, 业务决定, 可实现优雅关闭.

  2. 应该是在调用方通过服务发现,发现这台机器已经下线,不再调用这台机器就可以了. 避免了1方案中无端浪费一次请求


 衍生: mq的优雅关闭. 1. 关闭后不再订阅queue,将已有的消费,并上传,然后关闭结束. 待一段时间后分配给另外一台机器. 重新上线后,重新将quque分配给这台机器.

  2. 较差的是直接将线程池关闭,导致消息不停拉下来,但无法被消费,直接报错. 消费进度也无法前进,也无法变成retrymq. 可行,但消息被多余拉取了.

参考文章 : http://blog.csdn.net/hzzhoushaoyu/article/details/46673571


Daemon Thread [DubboServerHandler-10.0.83.144:10871-thread-5] (Suspended (breakpoint at line 270 in TradeCoreRemoteServiceImpl))    

    TradeCoreRemoteServiceImpl.transfer(TransferRpcParam) line: 270    
    Wrapper9.invokeMethod(Object, String, Class[], Object[]) line: not available    
    JavassistProxyFactory$1.doInvoke(T, String, Class<?>[], Object[]) line: 46    
    JavassistProxyFactory$1(AbstractProxyInvoker<T>).invoke(Invocation) line: 72    
    RegistryProtocol$InvokerDelegete<T>(InvokerWrapper<T>).invoke(Invocation) line: 53    
    KpayDubboProviderFilter.invoke(Invoker<?>, Invocation) line: 71    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    ProviderContextSwitchFilter.invoke(Invoker<?>, Invocation) line: 67    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    ExceptionFilter.invoke(Invoker<?>, Invocation) line: 64    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    TimeoutFilter.invoke(Invoker<?>, Invocation) line: 42    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    MonitorFilter.invoke(Invoker<?>, Invocation) line: 75    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    TraceFilter.invoke(Invoker<?>, Invocation) line: 78    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    ContextFilter.invoke(Invoker<?>, Invocation) line: 60    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    GenericFilter.invoke(Invoker<?>, Invocation) line: 112    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    ClassLoaderFilter.invoke(Invoker<?>, Invocation) line: 38    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    EchoFilter.invoke(Invoker<?>, Invocation) line: 38    
    ProtocolFilterWrapper$1.invoke(Invocation) line: 91    
    DubboProtocol$1.reply(ExchangeChannel, Object) line: 108    
    HeaderExchangeHandler.handleRequest(ExchangeChannel, Request) line: 84    
    HeaderExchangeHandler.received(Channel, Object) line: 170    
    DecodeHandler.received(Channel, Object) line: 52    
    ChannelEventRunnable.run() line: 82    
    ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145    
    ThreadPoolExecutor$Worker.run() line: 615    
    Thread.run() line: 722 [local variables unavailable]    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值