Dubbo常用端口及通信情况

Java评论1,9622字数 1034阅读模式

通过Dubbo开发的程序,在做防火墙安全策略的时候需要知道各部分使用了哪些端口,本文简单概括了Dubbo各模块之间的端口通信情况。

Dubbo常用端口及通信情况-图片1

1、dubbo生产者、消费者与注册中心zookeeper之间的通信过程

先说一下整个系统框架的基本构造:

zookeeper作为注册中心,使用单独服务器,占用2181端口;
dubbo-admin作为监控中心,与zookeeper使用相同服务器,tomcat部署占用8080端口;
provider作为提供者,使用单独服务器,tomcat部署占用8080端口,使用dubbo协议开放20880端口;
consumer作为消费者,使用单独服务器,tomcat部署占用8080端口。

如图所示:

Dubbo常用端口及通信情况-图片2

2、端口开放情况

zookeeper作为注册中心,provider注册服务、consumer订阅服务、dubbo-admin监控服务,所以zookeeper注册中心的2181端口需要向provider、consumer、dubbo-admin开放;

一般情况下,dubbo-admin监控中心与zookeeper注册中心部署在相同的服务器上,zookeeper可以不考虑端口开放给dubbo-admin的情况;

consumer订阅服务,即拿到了provider在20880端口暴露的服务,当consumer请求服务时,直接从consumer跳到provider,而不是consumer到zookeeper再到provider,所以provider的20880无需开放给zookeeper;

同理,provider响应服务时,也是直接从provider到consumer,而不是provider到zookeeper再到consumer,所以consumer的8080无需开放给zookeeper;

zookeeper注册中心是完全被动的。

3、总结一下

zookeeper的2181开放给provider、consumer、dubbo-admin;
provider的20880开放给所有consumer,但8080服务器端口可以完全屏蔽;
consumer的8080开放给所有provider;
dubbo-admin的8080开放给管理员用户,便于通过浏览器监控注册中心服务的情况。

总结:注册中心只负责服务注册和目录发布,安全授权,实际的服务访问仍然是两个组件之间的点对点连接完成,这种方式下整个架构下获取更高的性能,同时服务管理平台也不容易成为大并发服务访问下的单点瓶颈。

本文已通过「原本」原创作品认证,转载请注明文章出处及链接。

Java最后更新:2022-11-20
夏日阳光
  • 本文由 夏日阳光 发表于 2018年11月18日
  • 本文为夏日阳光原创文章,转载请务必保留本文链接:https://www.pieruo.com/23.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证