https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
准备和初体验
与SpringBoot集成
使用Zookeeper注册中心
管理控制台dubbo-admin
本文是《dubbo实战》系列的第四篇,内容是部署和启动dubbo管理控制台服务,该服务在开发、测试、生产等环节都非常重要,接下来一起通过实战学习和了解它,官方GitHub地址:https://github.com/apache/dubbo-admin
整篇文章由以下内容构成:
准备工作(注册中心、服务提供者、服务消费者);
准备工作(配置信息);
体验docker版;
下载源码自行构建;
所谓准备工作,就是准备一个相对完整的dubbo环境,里面有注册中心、服务提供者、服务消费者;
在上一篇《dubbo实战之三:使用Zookeeper注册中心》,咱们已经创建和验证了服务提供者和消费者,并且以zookeeper作为注册中心,现在请把这些服务全部启动起来,我这边的服务情况如下所示:
服务
IP
端口
项目名称
作用
zookeeper
192.168.50.43
2181
注册中心、配置中心
springboot-zk-provider
192.168.50.12
8080
springbootzkprovider
服务提供者
springboot-zk-consumer
8081
springbootzkconsumer
服务消费者
确保zookeeper、服务提供者、服务消费者全部启动且功能正常;
接下来要准备配置信息,首选要强调的是dubbo-admin有三个重要的配置项:admin.config-center(配置中心),admin.registry.address(注册中心)、admin.metadata-report.address(元数据中心);
如果在配置文件中只有admin.registry.address(旧版本的做法),此时dubbo-admin会将admin.registry.address的值作为注册中心和配置中心使用,元数据中心将无法使用,因此官方不推荐这样的配置;
官方推荐的做法:在配置文件中只有admin.config-center,此配置的值是zookeeper地址,在zookeeper服务中有个节点,路径是/dubbo/config/dubbo/dubbo.properties,内容是admin.registry.address和admin.metadata-report.address的配置,如下所示:
简单地说,就是只有配置中心的地址放在本地配置文件中,等到dubbo-admin连接到配置中心后,从配置中心取得其他配置信息,画了个简图辅助理解,如下:
5. 基于上述分析,咱们要先在zookeeper中创建好节点/dubbo/config/dubbo/dubbo.properties,以便dubbo-admin使用,请登录zookeeper所在服务器,进入zookeeper的bin目录;
6. 由于前面的文章已经使用过zookeeper作为注册中心,因此"/dubbo/config/"目录已经存在,下面的命令会创建/dubbo/config/dubbo节点:
再创建/dubbo/config/dubbo/dubbo.properties节点:
最后,查看是否创建成功,输入和响应如下所示,可见节点创建成功,值也是预期的:
至此,准备工作全部完成,可以部署和尝试dubbo-admin了,先从官方推荐的快速体验方式开始,即docker版;
请确保docker已部署并正常运行;
官方Github建议通过docker镜像快速体验管理控制台,如下图,咱们就按照官方的建议先用docker镜像试试:
3. 下载镜像(此步骤可以不执行,我这是想看看下载镜像要多久):
执行以下命令启动docker容器:
用上述命令启动的容器是一次性的,如果用Ctrl+C中断控制台,容器就会自动销毁,另外容器的8080端口被映射到了宿主机的8083端口;
用浏览器访问宿主机的8083端口,如下图所示,dubbo-admin已经启动了:
点击下图红框1中的服务查询菜单,即可看到整个分布式环境中所有已经暴露的服务(即红框2),此时点击右侧的DETAIL按钮,就能看到此服务的详情:
8. 服务详情如下图,基础信息、提供者、消费者都有,但遗憾的是元数据无法正常展示:
9. 以上就是官方提供的体验版,算是让咱们对管理控制台有了基本了解,但这仅是用于体验的镜像,实际生产环境中,首先未必会用docker,并且可能需要有对应的源码以便学习和分析问题,甚至有可能用源码做进一步定制,因此这个docker版本就不适合了,接下来一起下载dubbo-admin源码自行编译构建;
10. 在启动docker容器的控制台执行Ctrl+C,刚才创建的容器就会自动销毁;
下载官方源码:
修改配置文件dubbo-admin/dubbo-admin-server/src/main/resources/application.properties ,如下所示,只配置admin.registry.address的值,将admin.registry.address和admin.metadata-report.address注释掉,如果要修改端口,也在此添加server.port的配置,我这里配置的是8083端口:
在dubbo-admin目录执行以下命令,开始编译:
不出意外的话会编译成功,如下:
启动服务:
启动成功后,在浏览器访问登录页面:http://localhost:8083/#/login ,(一定要先登录),如下图,账号密码都是root,这是application.properties文件中配置的:
7. 登录后可见主页,如下图,和之前的docker体验版还是有些不同的:
8. 点击上图的测试按钮,可以在页面上测试该服务的方法:
9. 再次进入服务详情页,可见元数据也能正常显示了:
至此,管理控制台dubbo-admin的编译、部署、基本操作都实战完成了,网页上更多功能您可以自行尝试,(建议部署更多的服务和实例),回顾整个过程其实都很简单,唯一要注意的就是服务的配置那里,本地只有配置中心的地址,其他信息都放在配置中心;