Dubbo注册中心选用及DubboAdmin

一 注册中心

上一篇博客《Dubbo调用示例》演示中的注册中心是redis,其实用Zookeeper更为普遍。git

Redis:
采用K/V 形式进行存储,基结构以下:github

  • key:/dubbo/com.snowman.service.DemoService/providers
    value:dubbo://192.168.192.1:20880/com.snowman.service.DemoService
  • key:/dubbbo/com.snowman.service.DemoService/consumers
    value:dubbo://192.168.192.1:20880/com.snowman.service.DemoService
  • key:/dubbbo/com.snowman.service.DemoService/routers
  • key:/dubbbo/com.snowman.service.DemoService/configurators
    并基于 Redis 的 Publish/Subscribe 事件通知数据变动,其模型以下:
    订阅:
    在这里插入图片描述
    推送变动:
    在这里插入图片描述
    调用过程:
  1. 服务提供方启动时,向 Key:/dubbo/XXXServer/providers 下,添加当前提供者的地址
  2. 并向 Channel:/dubbo/com.foo.BarService/providers 发送 register 事件
  3. 服务消费方启动时,从 Channel:/dubbo/com.foo.BarService/providers 订阅 register 和 unregister 事件
  4. 并向 Key:/dubbo/com.foo.BarService/providers 下,添加当前消费者的地址
  5. 服务消费方收到 register 和 unregister 事件后,从 Key:/dubbo/com.foo.BarService/providers 下获取提供者地址列表

Zookeper:
是一个树型的目录服务,支持变动推送,适合做为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用
在这里插入图片描述
流程说明:web

  1. 服务提供者启动时: 向 /dubbo/com.foo.BarService/providers 目录下写入本身的 URL 地址
  2. 服务消费者启动时: 订阅 /dubbo/com.foo.BarService/providers 目录下的提供者 URL 地址。并向 /dubbo/com.foo.BarService/consumers 目录下写入本身的 URL 地址
  3. 监控中心启动时: 订阅 /dubbo/com.foo.BarService 目录下的全部提供者和消费者 URL 地址

二 DubboAdmin

已经注册的服务信息如何查看,dubbo官方给出一个后台管理系统Dubbo-admin方便咱们进行操做,不只能够查看,也能够进行更改配置,如负载均衡算法等。redis

1.下载安装

github下载dubbo-admin地址:https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.0 (注:2.6.1开始的版本没有dubbo-admin)算法

在dubbo-admin目录下,构建admin war 包apache

mvn pakcage -Dmaven.skip.test=true

构建完成后进入生成的target文件夹,找到dubbo-admin-2.6.0.war,把它放到tomcat的webapps目录下,启动tomcat,自动生成dubbo-admin-2.6.0文件夹tomcat

2.配置

修改在dubbo-admin-2.6.0/WEB-INF的dubbo.propertiesapp

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

第一行注册中心地址要与服务程序配置文件中的配置一致。
第二行配置root帐号下的密码。
第二行配置guest帐号下的密码。
注:第2、三行的意思不是登陆帐号为root、密码为guest,它俩都是密码,只是在不一样的帐号状况下。源代码写了一个if语句,判断是root帐号仍是guest帐号,没有没得帐号的。(当初也算是粗心没看清,折腾半天没登陆上)负载均衡

3.启动

启动zookeeper,重启tomcat
访问dubbo-admin-2.6.0(它就是个web项目),输入帐号密码便可登陆
在这里插入图片描述
演示demo课参考(《Dubbo调用示例》)[],把注册中心从redis换成zookeeper,再改下IP端口就好了
启动服务提供者Provider和服务消费者Consumer。
在页面admin的SEARCH搜索对应的接口名就能看到注册信息了
在这里插入图片描述webapp

demo:https://github.com/soarsnowman/dubbo.git