OK. I will read it carefully on this weekend. -xiaobo
> 在 2018年11月2日,上午11:30,Ian Luo <ian....@gmail.com> 写道: > > Then Xiaobo, I am looking forward to merging your another pull request for > doc update :). You should start to look into website project [1]. Pls. read > its README to understand how to build it. > > Thanks, > -Ian. > > 1. https://github.com/apache/incubator-dubbo-website > > On Fri, Nov 2, 2018 at 11:15 AM 田 小波 <tianxiaobo....@outlook.com> wrote: > >> OK. I got it. >> >>> 在 2018年11月2日,上午11:10,jun liu <ken.lj...@gmail.com> 写道: >>> >>>> Nice! if needed, May I help to update the doc about delay exposure when >> PR-2686 is released at next release or later. >>> >>> That would be great. Docs are the part I forget to mention. You can >> submit a PR to the dubbo-website project hosted here: >>> https://github.com/apache/incubator-dubbo-website >>> >>> Best regards, >>> Jun >>> >>>> On Nov 2, 2018, at 10:49 AM, 田 小波 <tianxiaobo....@outlook.com> wrote: >>>> >>>> Nice! if needed, May I help to update the doc about delay exposure when >> PR-2686 is released at next release or later. >>>> >>>> 在 2018年11月2日,上午10:07,Ian Luo <ian....@gmail.com<mailto: >> ian....@gmail.com>> 写道: >>>> >>>> To make sure I understand the change affect right, is the following and >> the corresponding action right (for spring supports application listener)? >>>> Export always being executed after Spring Context initialized properly >> despite the delay value, and the delay times after that is: >>>> * delay=null, no delay >>>> * delay=0, no delay >>>> * delay=-1 or delay=-5000, no delay >>>> * delay=5000, delay for 5s. >>>> >>>> Correct, this is what I understand too. >>>> >>>> On Fri, Nov 2, 2018 at 9:51 AM jun liu <ken.lj...@gmail.com<mailto: >> ken.lj...@gmail.com>> wrote: >>>>> To conclude, Dubbo should start to expose services until spring context >>>>> gets refreshed, no matter delay or no-delay is configured. >>>> >>>> +1, agree with this logic as the default for the export process. >>>> >>>>> Unfortunately in >>>>> order to keep backward compatibility, considering not all spring >> versions >>>>> support context refresh callback, we have to start to expose services >> after >>>>> properties set if we find application listener is not supported, and >> hope >>>>> Dubbo service can be exposed normally. >>>> >>>> At first, I tend to remove the compatibility purpose snippet, because >> spring versions without application listener support seems to be v2.0.0 or >> earlier which must have been announced EOL long ago and may have few users. >> But since the critical export process will never be triggered if removed, I >> think it’s ok to continue keep it. >>>> >>>> To make sure I understand the change affect right, is the following and >> the corresponding action right (for spring supports application listener)? >>>> >>>> Export always being executed after Spring Context initialized properly >> despite the delay value, and the delay times after that is: >>>> * delay=null, no delay >>>> * delay=0, no delay >>>> * delay=-1 or delay=-5000, no delay >>>> * delay=5000, delay for 5s. >>>> >>>> Best regards, >>>> Jun >>>> >>>>> On Nov 1, 2018, at 10:39 AM, Ian Luo <ian....@gmail.com<mailto: >> ian....@gmail.com>> wrote: >>>>> >>>>>> 当代码修改后,由于 afterPropertiesSet 不再对 delay 进行校验。导致当 delay > 0,且 >>>>> supportedApplicationListener = true 时,export 会被 onApplicationEvent >> 调用,而不是 >>>>> afterPropertiesSet。这会造成服务被延迟到 Spring 容器就绪后的 delay >>>>> 毫秒暴露,而不是像之前被延迟到afterPropertiesSet 调用 export 后的 delay 毫秒暴露。 >>>>> >>>>> I think this behavior is expected. The reason is, the best timing for >> Dubbo >>>>> to count down delay for exposing service is when Spring container is >> ready, >>>>> then this timing should be the moment when spring context gets >> refreshed, >>>>> since at this moment, all beans are settled, and are ready for wiring >> in >>>>> their dependencies. If it happens earlier, say, at the moment after >>>>> properties set, then Dubbo may fail to expose service because it >> depends on >>>>> other spring bean. >>>>> >>>>> To conclude, Dubbo should start to expose services until spring context >>>>> gets refreshed, no matter delay or no-delay is configured. >> Unfortunately in >>>>> order to keep backward compatibility, considering not all spring >> versions >>>>> support context refresh callback, we have to start to expose services >> after >>>>> properties set if we find application listener is not supported, and >> hope >>>>> Dubbo service can be exposed normally. >>>>> >>>>> I hope this can clarify the behavior. >>>>> >>>>> -Ian. >>>>> >>>>> >>>>> >>>>> On Thu, Nov 1, 2018 at 10:03 AM Zonghai Shang <y...@apache.org<mailto: >> y...@apache.org>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>>> 我重新看了代码和文档,发现确实存在一个延迟暴露的问题。这里先列举 Dubbo 的延迟暴露策略: >>>>>>> delay = null 或 delay = -1 :延迟到 Spring 容器就绪后暴露服务,由 onApplicationEvent >> 调用 >>>>>> export 暴露服务 >>>>>>> delay > 0 :延迟指定毫秒后暴露服务,时间从 afterPropertiesSet 调用 export >>>>>> 时算起,此时由 afterPropertiesSet 调用 export暴露服务 >>>>>> >>>>>>> 当代码修改后,由于 afterPropertiesSet 不再对 delay 进行校验。导致当 delay > 0,且 >>>>>> supportedApplicationListener = true 时,export 会被 onApplicationEvent >> 调用,而不是 >>>>>> afterPropertiesSet。这会造成服务被延迟到 Spring 容器就绪后的 delay >>>>>> 毫秒暴露,而不是像之前被延迟到afterPropertiesSet 调用 export 后的 delay 毫秒暴露。 >>>>>> >>>>>>> 这是我目前所发现的问题,不知道和你说的是不是同一个。 >>>>>> >>>>>> Yes, you are right. >>>>>> >>>>>> yiji >>>>>> >>>>>> 田 小波 <tianxiaobo....@outlook.com<mailto:tianxiaobo....@outlook.com>> >> 于2018年11月1日周四 上午1:25写道: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> 我重新看了代码和文档,发现确实存在一个延迟暴露的问题。这里先列举 Dubbo 的延迟暴露策略: >>>>>>> >>>>>>> delay = null 或 delay = -1 :延迟到 Spring 容器就绪后暴露服务,由 onApplicationEvent >> 调用 >>>>>>> export 暴露服务 >>>>>>> delay > 0 :延迟指定毫秒后暴露服务,时间从 afterPropertiesSet 调用 export >>>>>>> 时算起,此时由 afterPropertiesSet 调用 export 暴露服务 >>>>>>> >>>>>>> 当代码修改后,由于 afterPropertiesSet 不再对 delay 进行校验。导致当 delay > 0,且 >>>>>>> supportedApplicationListener = true 时,export 会被 onApplicationEvent >> 调用,而不是 >>>>>>> afterPropertiesSet。这会造成服务被延迟到 Spring 容器就绪后的 delay >>>>>>> 毫秒暴露,而不是像之前被延迟到afterPropertiesSet 调用 export 后的 delay 毫秒暴露。 >>>>>>> >>>>>>> 这是我目前所发现的问题,不知道和你说的是不是同一个。 >>>>>>> >>>>>>> - xiaobo >>>>>>> >>>>>>> 在 2018年10月31日,下午10:43,Zonghai Shang <y...@apache.org<mailto: >> y...@apache.org>> 写道: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> 我认为这种修改会造成延迟暴露的bug。 >>>>>>> 如果要在容器启动10秒后才进行服务暴露怎么办? >>>>>>> 原始意图delay= 10000表示10秒后执行。 >>>>>>> >>>>>>> I think this modification will cause a delay in the exposure of the >> bug. >>>>>>> What if you want to expose the service 10 seconds after the spring >>>>>>> container started ? >>>>>>> The original intention delay = 10000 represents execution after 10 >>>>>>> seconds. >>>>>>> >>>>>>> public synchronized void export() { >>>>>>> if (delay != null && delay > 0) { >>>>>>> // should be delay, eg: 1 seconds >>>>>>> delayExportExecutor.schedule(new Runnable() { >>>>>>> @Override >>>>>>> public void run() { >>>>>>> doExport(); >>>>>>> } >>>>>>> }, delay, TimeUnit.MILLISECONDS); >>>>>>> } else { >>>>>>> doExport(); >>>>>>> } >>>>>>> } >>>>>>> >>>>>>> yiji >>>>>>> >>>>>>> Ian Luo <ian....@gmail.com<mailto:ian....@gmail.com>> >> 于2018年10月31日周三 下午5:50写道: >>>>>>> >>>>>>>> good good study, day day up. Looking forward to your contribution :) >>>>>>>> >>>>>>>> On Wed, Oct 31, 2018 at 4:43 PM 田 小波 <tianxiaobo....@outlook.com >> <mailto:tianxiaobo....@outlook.com>> >>>>>> wrote: >>>>>>>> >>>>>>>>> Yes, in fact, It is a plan. I'm learning Dubbo code by writing >> blogs >>>>>>>> way, >>>>>>>>> It can make me understand Dubbo code deeply. So, I need to finish >> my >>>>>>>> blogs >>>>>>>>> first before doing other thing. >>>>>>>>> >>>>>>>>> 在 2018年10月31日,下午3:11,Ian Luo <ian....@gmail.com<mailto: >> ian....@gmail.com>> 写道: >>>>>>>>> >>>>>>>>> sounds like a plan :) >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> -Ian. >>>>>>>>> >>>>>>>>> On Wed, Oct 31, 2018 at 2:53 PM 田 小波 <tianxiaobo....@outlook.com >> <mailto:tianxiaobo....@outlook.com>> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> OK. I will read these articles carefully and think about how to >>>>>> enhance >>>>>>>>>> them next month or later. Please wait. >>>>>>>>>> >>>>>>>>>> 在 2018年10月31日,下午2:26,Ian Luo <ian....@gmail.com<mailto: >> ian....@gmail.com>> 写道: >>>>>>>>>> >>>>>>>>>> Excellent post. You may consider to enhance >>>>>>>>>> http://dubbo.apache.org/zh-cn/blog/introduction-to-dubbo-spi.html >>>>>> and >>>>>>>>>> >> http://dubbo.apache.org/zh-cn/blog/introduction-to-dubbo-spi-2.html. >>>>>>>>>> >>>>>>>>>> -Ian. >>>>>>>>>> >>>>>>>>>> On Wed, Oct 31, 2018 at 1:36 PM 田 小波 <tianxiaobo....@outlook.com >> <mailto:tianxiaobo....@outlook.com>> >>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Luo Ian: >>>>>>>>>>> >>>>>>>>>>> I will contribute more for Dubbo community in the future. I'm >> going >>>>>> to >>>>>>>>>>> submit a new PR to dubbo-website after my Dubbo blogs are >> finished. >>>>>> I >>>>>>>> am >>>>>>>>>>> now hastening to write blogs, and two blogs has bean finished. I >>>>>> will >>>>>>>>>>> finish remaining blogs next month. The first blog "Dubbo 源码分析 - >> SPI >>>>>> 机制 >>>>>>>>>>> <https://www.cnblogs.com/nullllun/p/9758682.html>" has bean >>>>>> published >>>>>>>>>>> on cnblogs.com<http://cnblogs.com/>. You may read it and give >> me some guidance if you >>>>>> have >>>>>>>>>>> interest and time, thanks. >>>>>>>>>>> >>>>>>>>>>> Best wishes, >>>>>>>>>>> -xiaobo. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 在 2018年10月31日,上午10:08,Ian Luo <ian....@gmail.com<mailto: >> ian....@gmail.com>> 写道: >>>>>>>>>>> >>>>>>>>>>> XiaoBo, >>>>>>>>>>> >>>>>>>>>>> Nice! Pls. consider contributing more to the community in the >>>>>> future. >>>>>>>>>>> >>>>>>>>>>> Recently, I have bean writing a series of blogs about Dubbo >>>>>>>>>>> >>>>>>>>>>> Pls. share the link with the community (send email to >>>>>>>>>>> dev@dubbo.apache.org<mailto:dev@dubbo.apache.org>) once you >> finish :) You can also consider to >>>>>>>> post >>>>>>>>>>> your article to Dubbo's website [1]. It will become another pull >>>>>>>> request >>>>>>>>>>> from you by the way :) >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> -Ian. >>>>>>>>>>> >>>>>>>>>>> 1. https://github.com/apache/incubator-dubbo-website >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Oct 30, 2018 at 9:20 PM 田 小波 <tianxiaobo....@outlook.com >> <mailto:tianxiaobo....@outlook.com>> >>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Luo lan: >>>>>>>>>>>> Thanks to merge my PR. It is my first PR, I feel very exciting. >>>>>>>>>>>> Recently, I have bean writing a series of blogs about Dubbo. >> And, I >>>>>>>> expect >>>>>>>>>>>> to submit more PR for Dubbo. Lastly, I hope Dubbo get more >>>>>>>> popularity. >>>>>>>>>>>> Best wishes. >>>>>>>>>>>> >>>>>>>>>>>> 在 2018年10月30日,下午5:14,Ian Luo <ian....@gmail.com<mailto: >> ian....@gmail.com>> 写道: >>>>>>>>>>>> >>>>>>>>>>>> Xiaobo, >>>>>>>>>>>> >>>>>>>>>>>> I notice that you've already updated pull request. Now the >> change >>>>>>>> looks >>>>>>>>>>>> good, and I've merged your pull request. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> -Ian. >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Oct 30, 2018 at 11:19 AM Ian Luo <ian....@gmail.com >> <mailto:ian....@gmail.com>> >>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Xiaobo, >>>>>>>>>>>>> >>>>>>>>>>>>> Would you mind to take a look at the comments I dropped on pull >>>>>>>>>>>>> request 2686 [1] you proposed? Basically I think we could >>>>>>>> completely remove >>>>>>>>>>>>> isDelay method, if you agree with this idea, pls. follow up to >>>>>>>> enhance your >>>>>>>>>>>>> pull request. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks, >>>>>>>>>>>>> -Ian. >>>>>>>>>>>>> >>>>>>>>>>>>> 1. https://github.com/apache/incubator-dubbo/pull/2686 >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>> >>>> >>> >> >>