dubbo图形化界面搭建_Dubbo到底在zookeeper中存了什么

Dubbo是阿里巴巴开源的分布式RPC框架,其中有一个用于服务发现的注册中心,可以使用zookeeper组件。Dubbo的简单使用看我的第一篇文章。

追梦程序员:第一个Dubbo应用​zhuanlan.zhihu.com
zhihu-card-default.svg

60e2953558e28f6084784c5cb9af8bf4.png

服务提供者启动时要向注册中心注册自己的服务,消费者想要使用这个服务,必须向注册中心订阅这个服务,注册中心会将服务地址列表返回给消费者。更重要的是,注册中心使用心跳机制检测服务提供者的存活状态,有变化就会通知消费者,这一机制使得服务的迁移、扩容很方便。

第一步:启动服务

为了进一步加深理解,我们来看看在zookeeper中到底存放了什么样的数据。为此我做了一些实验,实验配置如下:

一台window:用于启动多个消费者和一个服务提供者。

一台linux:用于启动zookeeper,和一个服务提供者。

我有两个服务,分别是GreetingsService和AddService,代码如下:

package service;

/**
 * 定义一个服务契约
 * Dubbo使用 Java 的 Interface 作为服务契约
 * @author Administrator
 */
public interface GreetingsService {
    String sayHi(String name);
}
package service1;

/**
 * 两个数相加的服务
 * @author Administrator
 */
public interface AddService {
    int add(int a, int b);
    
}

我在linux上启动了GreetingsService服务,linux的IP为39.108.67.176。这里有一个坑,就是如果没有设置主机名到公网IP的映射,dubbo会使用内网IP发送到zookeeper,但这样外部客户端是无法访问这个服务的,解决方案如下:

CSDN-专业IT技术社区-登录​blog.csdn.net

我在window上启动了AddService服务,window的IP为192.168.43.13。

所有服务的消费者都是在window下启动的,运行效果如下:

be554c4b909615c549b6e8397b77ae9c.png

第二步:查看zookeeper

利用ZooInspector工具图形化显示zookeeper中存放的数据。

af520417b620095c41abac9fd0b2c76e.png

通过观察可以得出如下结论:

  • zookeeper为dubbo的每个服务维护一个目录,目录名称为全限服务名(包名.接口名)
  • 每个服务目录里存放了消费者、提供者、配置等信息。可以看到AddService的提供者的ip为192.168.43.13。
  • zookeeper使用心跳机制检测提供者和消费者的存活状态,你可以关闭某个服务者或者消费者,然后刷新界面,会看到对应的变化。

好了,我们的大致目的就可以达到了,还有一个就是具体的字段细节,这个考大家去了解。为了帮助大家更好的复现,可以从如下git仓库拉取提供者和消费者的工程代码。

dubbo-examples​github.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值