Dubbo使用Zookeeper注册中心

时间:2023-11-24 20:50:08

在生产环境下使用最多的注册中心为Zookeeper,当然,Redis也可以做注册中心

一、创建提供者02-provider-zk

(1) 导入依赖

https://blog.csdn.net/u012965203/article/details/96700308

复制前面的提供者工程01-provider,并更名为02-provider-zk。修改pom文件,并在其中导入Zookeeper客户端依赖curator


  1. <!-- zk客户端依赖:curator -->
  2. <dependency>
  3. <groupId>org.apache.curator</groupId>
  4. <artifactId>curator-recipes</artifactId>
  5. <version>2.13.0</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.apache.curator</groupId>
  9. <artifactId>curator-framework</artifactId>
  10. <version>2.13.0</version>
  11. </dependency>

(2) 修改spring配置文件

Dubbo使用Zookeeper注册中心

二、创建消费者02-consumer-zk

(1) 导入依赖

复制前面的消费者工程01-consumer,并更名为02-consumer-zk。修改pom文件,并在其中导入Zookeeper客户端curator依赖

https://blog.csdn.net/u012965203/article/details/96700308


  1. <!-- zk客户端依赖:curator -->
  2. <dependency>
  3. <groupId>org.apache.curator</groupId>
  4. <artifactId>curator-recipes</artifactId>
  5. <version>2.13.0</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.apache.curator</groupId>
  9. <artifactId>curator-framework</artifactId>
  10. <version>2.13.0</version>
  11. </dependency>

(2) 修改Spring配置文件

Dubbo使用Zookeeper注册中心

三、添加日志文件

提供者与消费者工程的类路径src/main/resources下添加日志文件。可以添加log4j.xml,即使用log4j2日志技术;也可以添加log4j.properties,即使用log4j日志技术


  1. log4j.appender.console=org.apache.log4j.ConsoleAppender
  2. log4j.appender.console.Target=System.out
  3. log4j.appender.console.layout=org.apache.log4j.PatternLayout
  4. log4j.appender.console.layout.ConversionPattern=[%-5p] %m%n
  5. log4j.rootLogger=info,console

(1)提供者添加日志文件

Dubbo使用Zookeeper注册中心

在提供者的src/main/resources目录中添加log4j.properties文件,运行后可以看到如下的日志输出。其中最为重要的是provider://xxxxx,这里显示的就是当前工程所提供的能够被订阅的服务描述,即服务元数据信息。另外,还可以看到当前应用与qos-server(Quality of Service服务器,即Dubbo的管控平台)进行通信的端口号为22222。

Dubbo使用Zookeeper注册中心

(2) 消费者添加日志文件

Dubbo使用Zookeeper注册中心

在提供者的src/main/resources目录中添加log4j.properties文件。运行后在控制台的日志输出中可以看到报错。其报错内容原因是,消费者连接qos-server的端口号被占用了。其与qos-server通信的端口号默认也为22222,已经被提供者给占用了。当然,原因主要是由于消费者与提供者都在同一主机,若分别存在于不同的主机也不会报错

Dubbo使用Zookeeper注册中心

解决方案spring-consumer.xml文件中修改

Dubbo使用Zookeeper注册中心