Dubbo服务公开原则

1,先问几个问题。

1 dubbo动态代理的目的是什么?

代理目的:比如我被老板雇佣,本质上是完成某项工作。其实人就是想完成那个工作的代理人。duboo客户端表面上可以执行调用接口的方法,实际上是通过网络传输告诉服务器的。我应该调用什么方法,应该传递给你什么参数。你帮我完成它。那就给我结果吧。这就是dubbo动态代理的功能。只是框架层抽象了这一层,具体功能由框架实现。Dubbo动态代理有两种方案,1是javaasisit,另一种是jdk提供的。可选。javaasisit出现的原因是基于性能的考虑。生成字节码比jdk更快。

2服务公开解决什么问题?

服务暴露就是告诉客户。我能提供什么服务,对应的ip是什么,端口是什么。你需要我为你服务,你只需要按照一定的协议打电话就可以了。

了解了以上两个问题,你就基本了解了服务曝光的流程。

主流

1通过netty公开服务,

就像在注册中心注册一样,显示我提供什么服务。

3订阅配置以监控属性的变化时间。

下面主要分析如何通过netty发布服务来达到最终目的。

创建一个NettyServer对象,通过doOpen()方法创建一个Netty Server对象。

doOpen()方法在内部创建一个ServerBootstrap对象,并实现bind来启动服务监听。

HeaderExchangeServer对象的参数是Transporters.bind()生成的服务器对象。

string string = URL 2 . getparameter(" server ",uRL2.getParameter("transporter "," netty "));

默认值为netty。

创建一个NettyServer对象,通过doOpen()方法创建一个Netty Server对象。

doOpen()方法在内部创建一个ServerBootstrap对象,并实现bind来启动服务监听。