前面我们知道dubbo如果采用dubbo协议的话,此时会调用netty来启动服务。同时我们可以其在进行标签解析和注入到spring中。此时最为关键的是doExport操作,而里面会涉及到doBind->doOpen操作,进行服务启动。
在这个过程中,url是我们需要进行关注的,此时我们可以看到基本上都是以url为主题进行组装操作。将所有需要放入的输入进行放入,同时最终会以观察者模式,实现配置的实时更新。低版本的dubbo则是以实现InitializingBean,重写AfterPropertiesSet方法。之所以改成基于ApplicationEvent,是因为可以进行更新,这是ApplicationEvent的优势。
同时通过对bubbo的学习,可以看到Netty的使用。
不但可以学习到设计模式:模板模式、装饰者模式、适配器模式、单例模式等,同时还可以学习到字节码技术的使用。这些都是值得我们去学习的。
在执行doOpen操作时,这里可以看到必然会触发一个事件,因为此时是
Init and start netty server
此时是doOpen操作,此时事件可以知道应该是执行了OP_ACCEPT操作,然后执行accpet操作。
dubbo生产者暴露过程: