duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

本文继续介绍Dubbo服务集成Zookeeper 注册中心,实现Dubbo服务的注册和动态感知。

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

Dubbo开发实践:Spring Boot 2.3.7集成Apache Dubbo 3.x快速入门-1

Dubbo开发实践:Spring Boot 2.3.7集成Apache Dubbo 3.x快速入门-2

Dubbo开发实践:Spring Boot 2.3.7集成Apache Dubbo 3.x快速入门-3

Dubbo开发实践:使用Zookeeper 作为Dubbo服务的注册中心-1

一、启动dubbo服务提供者

首先启动dubbo服务提供者,也就是user-service模块。下图是dubbo服务提供者启动时输出日志,显示建立了dubbo服务到Zookeeper 之间的连接。

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

当dubbo服务启动时,会去Zookeeper 服务器上的 /dubbo/com.archnote.api.UserService 目录下创建当前服务的URL,其中 com.archnote.api.UserService 是发布服务的接口全路径名称,providers 表示服务提供者的类型,dubbo://ip:port 表示该服务发布的协议类型,以及访问地址。

其中,URL是临时节点,其他皆为持久化节点,如下图所示:

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

在这里使用临时节点的好处在于:如果注册该节点的服务器宕机了,那么这个服务器的URL 地址就会从Zookeeper 服务器上被移除。

dubbo服务的注册是以接口(interface)为最小粒度的,在dubbo中将其抽象为一个URL:

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

协议代表提供服务的协议,如果注册了 dubbo 服务,这里就是 dubbo://。

ip、port 代表是哪台机器的哪个端口提供服务。

interface 代表了注册的接口名,它直接对应到代码中需要暴露服务的 interface。

参数代表了服务的一些参数,可能是元数据,也可能是配置信息。

二、启动dubbo 服务消费者

dubbo服务消费者就是 user-consumer 模块,如图所示,显示dubbo服务消费者和Zookeeper 服务建立了连接。

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

在dubbo 服务消费者启动时,会对 /dubbo/com.archnote.api.UserService 节点下的子节点注册Watcher 监听,这样便可以感知到服务提供方节点的上下线变化,从而防止请求发送到已经下线的服务器,造成访问失败。

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

服务消费者会在 /dubbo/com.archnote.api.UserService/consumers 下写入自己的URL,这样做的目的是可以在监控平台上看到某个dubbo 服务正在被哪些消费者调用。

dubbo 服务的消费者如果需要调用 UserService 服务,那么它就会先去 /dubbo/com.archnote.api.UserService/providers 路径下获得所有该服务的提供方 URL 列表,然后通过负载均衡算法,选择一个URL 进行访问。

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

本地调用远程的方法时,只需要配置一个@DubboReference注解,然后直接使用 interface 来调用,我们不必去实现这个 interaface,dubbo 自动帮我们生成了一个代理进行 RPC 调用,屏蔽了通信的细节,让我们有种像调用本地方法一样调用远程方法的感觉,这也是 dubbo 的优势。

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

三、访问Controller REST API

现在可以访问user-consumer中controller 对外暴露的REST API,如图所示,测试是否可以获取预期的结果。

duzookeeper和dubbo一块搭建集群吗zookeeper和dubbo一块搭建集群吗o zookeeper集群配置(zookeeper和dubbo一块搭建集群吗)

如上图所示,成功获得dubbo服务的返回结果。

Spring Cloud Alibaba微服务实战技术专栏,从项目实践出发,包括Spring Cloud Alibaba、Nacos、Gateway、Sentinel、Log日志、分布式全局唯一ID、DDD领域驱动设计、Maven等等技术内容,可帮助你对Spring Cloud 微服务技术栈有更加全面和直观的了解。

情趣用品,延时产品,各种都有,添加 微信:yztt15 备注:情趣

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 245450443@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.i1026.com/38261.html