Dubbo-使用zookeeper作为注册中心时节点的概述

本文内容很容易理解,会阐述当dubbo使用zookeeper作为注册中心时候,zookeeper节点是什么样子的

本文的代码使用的dubbo版本是2.7.x,几年前的版本了,但是不影响探究

首先我们创建一个简单的maven项目,然后写出一段dubbo provider代码(服务提供者),然后启动服务,之后观察zookeeper节点样子

pom.xml文件需要引用2个依赖,如下

cpp 复制代码
<!-- dubbo的依赖 -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.23</version>
</dependency>

<!-- 使用zookeeper作为注册中心的时候,dubbo要通过zookeeper客户端操作zookeeper,
这个curator就是zookeeper客户端,zookeeper客户端还有一个是zkClient,本文中我们
使用curator,不使用zkClient -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-remoting-zookeeper-curator5</artifactId>
    <version>2.7.23</version>
</dependency>

创建服务接口

cpp 复制代码
package aa.bb;
public interface User {

    String getUserName();
}

创建服务接口实现类

cpp 复制代码
package aa.bb;

public class UserImpl implements User {
    @Override
    public String getUserName() {
    	// 返回一段文本,陈述一段客观事实
        return "HR is a little bitch";
    }
}

创建服务提供者代码(provider)

cpp 复制代码
public class Provider {

    public static void main(String[] args) throws IOException {
        ServiceConfig<User> service = new ServiceConfig<>();
        service.setApplication(new ApplicationConfig("service_provider"));
        service.setRegistry(new RegistryConfig("zookeeper://127.0.0.1:2181"));
        service.setInterface(User.class);
        service.setRef(new UserImpl());

        ProtocolConfig protocolConfig = new ProtocolConfig();
        protocolConfig.setTelnet("invoke");// 允许使用telnet命令调用dubbo服务
        protocolConfig.setHost("127.0.0.1");
        protocolConfig.setPort(20880);
        protocolConfig.setName("dubbo");// 这个协议名必填,而且不能乱写
        service.setProtocol(protocolConfig);

        service.export();
        System.out.println("服务提供方启动成功并且已经注册到zookeeper");
        System.in.read();
    }

}

打开zookeeper,zookeeper初始节点是下面这样子的

运行上述的main函数,之后会发现zookeeper中节点的样子如下

dubbo:本文中有个代码是new RegistryConfig,这个对象有一个setGroup()方法,因为我们没有调用该方法,所以根目录是dubbo,如果我们setGroup("HR"),那么根目录就会变成HR

dubbo/aa/bb/user:表示本文中的public interface User接口服务

dubbo/aa/bb/user/providers:服务提供者的目录,你可以使用相同的代码,再打开一个IDEA或者Eclipse,然后运行这段代码,此时providers目录下面就会有2条数据

dubbo/aa/bb/user/configurators:服务提供者动态配置相关的元数据信息,后续文章单独讨论

好了本文就到这里,其实非常的简单,主要是想大概过一下dubbo注册到zookeeper之后,节点是什么样子的,要是你写dubbo,也基本就是这样设计节点,没什么出彩的,但是必须要了解一下,方便后续读dubbo注册中心模块源码的时候,知道如何创建节点的

虽然本文没有写consumers的代码,但是聪明的你应该能预见到,如果有consumers,那么应该会在dubbo/aa/bb/user/providers同级目录出现一个dubbo/aa/bb/user/consumers的新目录,没错,确实是这样

相关推荐
天远API15 小时前
零信任架构实战:基于天远风控经营异常预警构建自动化供应商店铺巡检网关
人工智能·架构·自动化·dubbo
云淡风轻~窗明几净21 小时前
角谷猜想的进展之三 移动了群山/沸騰的群山 2026-10-10
人工智能·算法·dubbo·图论
bst@微胖子2 天前
Spring AI (5) : MCP 深度实战:从工具抽取到鉴权,SSE 与 STDIO
人工智能·spring·dubbo
且随疾风前行.2 天前
UI核心 - 绘制流程(测量、布局、绘制)
ui·dubbo
饺子大魔王的男人3 天前
LitePan多网盘影音中枢:WebDAV挂载、STRM生成与缓存管理
缓存·dubbo
3Q工具箱 - BraggTroy10 天前
Vue SPA 站百度收录“全军覆没“?一次预渲染抢救的完整实战(2026 踩坑版)
vue.js·百度·dubbo
萧瑟余晖11 天前
Dubbo 综合实战与性能调优详解
架构·dubbo
萧瑟余晖12 天前
Dubbo SPI扩展机制详解
架构·dubbo
imDwAaY12 天前
Bean的生命周期
java·笔记·后端·学习·spring·dubbo
我是小白呀13 天前
17-企业Workflow引擎怎么选:定时、队列、n8n、Temporal与Camunda
java·开发语言·人工智能·dubbo·workflow