1 创建生产者项目,选择Web MySql Mybatis
.2 创建消费者项目,选择Web Thymeleaf
.3 生产者和消费者,实体类对象要一致、service接口要一致、除了上面指定jar包不一致,其他jar包要一致
.4 生产者和消费者项目中实体类对象必须实现序列化接口:implements Serializable
生产者:
1.导入pom jar包
com.alibaba.spring.boot
dubbo-spring-boot-starter
2.0.0
com.101tec
zkclient
0.10
2.配置dubbo服务端生产者
在application.properties中配置
#配置dubbo服务提供者
#服务名称
spring.dubbo.application.name=provider
spring.dubbo.server=true
#注册中心地址
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo 协议
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
3.配置本地zookeeper
在zookeeper/conf/zoo.cfg中配置数据目录和日志目录位置,注意目录需要手动创建
#数据位置
dataDir=D:\\zookeeper-3.3.6\\data
#日志位置
dataLogDir=D:\\zookeeper-3.3.6\\logs
4.本地启动zookeeper:在zookeeper/bin目录下文件地址栏中输入cmd,执行zkServer回车即可启动zookeeper
5.在service实现类上加上dubbo提供的Service注解
//通过dubbo提供的Service注解将接口发布出去
@Service(interfaceClass = UserService.class)
@Component spring注入需要用到
6.在application启动类中加上开启dubbo配置注解@EnableDubboConfiguration
消费者:
1.导入pom jar包
<!--dubbo 依赖 -->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<!-- zookeeper client依赖 -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
2.配置dubbo消费者
#为防止和生产者端口号冲突
server.port=8081
#配置dubbo消费者
spring.dubbo.application.name=consumer
#配置注册中心
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo协议
spring.dubbo.procotol.name=dubbo
spring.dubbo.procotol.port=20880
#消费者启动检测生产者是否已启动,当值为true时才会检测,默认为true
spring.dubbo.consumer.check=false
#roundrobin轮询机制
#random #随机机制
#leastactive #最少活跃调用数机制
spring.dubbo.reference.loadbalance=roundrobin
3.在controller中通过dubbo提供的Reference注解引用接口
@Reference
private UserService userService;
4.在application启动类中加上开启dubbo配置注解@EnableDubboConfiguration