Dubbo+ZooKeeper 微服务开发

Dubbo+ZooKeeper 微服务开发

1. 准备

  • 相关框架的版本,版本号推荐按下表配置,否则会出现dubbo和zk通信协议报错等各种异常情况
name version 类型
Zookeeper 3.9.2 软件
Dubbo-Admin 20240824 软件
spring-boot 3.3.2 依赖库
spring-cloud 2023.0.3 依赖库
spring-cloud-alibaba 2023.0.1.2 依赖库
dubbo-spring-boot-starter 3.3.0-beta.2 依赖库
cubator-framework 5.7.0 依赖库
cubator-recipes 5.7.0 依赖库
curator-x-discovery-server 5.7.0 依赖库

1.1 Zookeeper搭建

本案例中Zookeeper仅作为服务发现组件使用,此处只部署单机zk

  • 基于Docker部署ZK服务
docker run -itd --name zk_server1 --network zk_net -p 2181:2181 -p 2888:2888 -p 3888:3888 zookeeper

1.2 Dubbo-Admin搭建

Dubbo-Admin是一个基于Zookeeper的服务监控项目,主要用于实时查看微服务的注册状态

  • 在Github上下载dubbo-admin项目

  • 启动dubbo-admin server服务

    • CMD下进入dubbo-admin根目录,执行mvn clean package生成各模块的jar包
    • 打包成功后进入dubbo-admin-distribution/target目录,运行dubbo-admin-x.x.x-SNAPSHOT.jar
  • 启动dubbo-admin-ui服务

    • 执行npm install
    • 执行npm run serve
    • 成功后访问 npm run serve打印的访问地址信息
  • 至此,dubbo-admin启动成功,如下图Dubbo-Admin-UI

1.3 基于Dubbo开发可通信的Order/User微服务

1.3.1 common-interface 公共接口模块开发

Dubbo推荐将RPC调用的接口统一放在一个interface模块以供服务提供者和服务消费者使用

  • common-interface模块 pom配置
	<properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.skymaple</groupId>
            <artifactId>dsd-common</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • RPC接口定义
public interface UserService {
    //该接口用于获取用户的发货地址信息,Address是实现了序列化接口的数据实体类
    public List<Address> getUserAddress();
}
1.3.2 User微服务开发(服务提供者)

该服务主要用于被Order服务调用

  • user-service模块 pom配置
	<properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <dependencies>
        <!-- dubbo -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.skymaple</groupId>
            <artifactId>dsd-interface</artifactId>
            <v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值