Spring Boot 集成Dubbo+Zookeeper实现分布式架构

1:引用dubbo和zkclient包,这里展示maven方式的引用

 dubbo:

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>dubbo</artifactId>
   <version>2.6.0</version>
 </dependency>

 zkclient:

<dependency>
   <groupId>com.101tec</groupId>
   <artifactId>zkclient</artifactId>
   <version>0.10</version>
</dependency>

2:dubbo-provider.xml 提供者xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="${dubbo.application.name}"/>
    <!-- 使用 zookeeper 注册中心暴露服务 -->
    <dubbo:registry address="${dubbo.registry.address}"/>
    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}"/>
    <!-- 调用超时 -->
    <dubbo:provider timeout="5000"/>
    <!-- 监控中心 -->

    <!--<dubbo:monitor protocol="registry"/>-->

    <!-- 要暴露的服务接口 -->
    <dubbo:service interface="com.test.api.service.DemoService" ref="demoServiceImpl"/>
</beans>

3:dubbo-consumer.xml 消费者xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 消费方应用信息,用于计算依赖关系 -->
    <dubbo:application name="${dubbo.application.name}"/>
    <!-- 使用 zookeeper 注册中心发现服务 -->
    <dubbo:registry address="${dubbo.registry.address}"/>
    <!-- 调用超时 -->
    <dubbo:provider timeout="5000"/>
    <!-- 监控中心 -->

    <!--<dubbo:monitor protocol="registry"/>-->

    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="demoService" interface="com.test.api.service.demoService"/>

</beans>

4:加载配置

application.properties:

提供者:
dubbo.application.name=${spring.application.name}
dubbo.config.location=classpath:dubbo/dubbo-provider.xml
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.port=20880
消费者:
dubbo.application.name=${spring.application.name}
dubbo.config.location=classpath:dubbo/dubbo-consumer.xml
dubbo.registry.address=zookeeper://127.0.0.1:2181


启动类用注解方式加载dubbo-provider.xml和dubbo-consumer.xml配置:

@SpringBootApplication
@ImportResource("${dubbo.config.location}")
public class TestApplication {
   public static void main(String[] args) {
      SpringApplication.run(TestApplication.class, args);
   }

}

5:启动zookeeper

zookeeper配置文件zoo.cfg配置如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=D:/Program Files/zookeeper-3.5.2-alpha/data

dataLogDir=D:/Program Files/zookeeper-3.5.2-alpha/logs 

clientPort=2181

到此结束,先启动服务提供者,再启动服务消费者,消费者就可以调用提供者的服务了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot集成DubboZookeeper非常简单,下面是详细的步骤: 1. 创建一个Spring Boot项目。 2. 在pom.xml文件中添加DubboZookeeper依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.5.5</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> ``` 3. 在application.properties文件中配置DubboZookeeper: ```properties # Dubbo配置 dubbo.application.name=dubbo-demo dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 # Zookeeper配置 zookeeper.session.timeout=60000 zookeeper.connection.timeout=15000 zookeeper.retry.count=3 zookeeper.retry.interval=1000 zookeeper.namespace=dubbo ``` 4. 创建Dubbo服务接口和实现类: ```java public interface HelloService { String sayHello(String name); } @Service public class HelloServiceImpl implements HelloService { @Override public String sayHello(String name) { return "Hello, " + name + "!"; } } ``` 5. 在启动类上添加@EnableDubbo注解启用Dubbo: ```java @SpringBootApplication @EnableDubbo public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 6. 启动Zookeeper服务。 7. 运行Spring Boot应用程序,测试Dubbo服务是否正常工作。 以上就是在Spring Boot集成DubboZookeeper的步骤。如果您遇到任何问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值