-
先了解一下:
Dubbo也是一套微服务框架,他与SpringCloud的区别就是,他支持多种协议,而SpringCloud只支持Http协议。 Zookeeper是一个开源的分布式应用程序协调服务,分布式应用程序可以基于Zookeeper实现数据发布/订阅、负载均衡、分布式协调/通知、集群管 理、分布式锁和分布式队列等功能。(注册中心) Dubbo的消费者和生产者是分开的 :它的消费者包含项目中的controller和页面;生产这包含项目的service和dao;这样拆分可以减轻服务站点压力
2.使用
-
先写一个生产者 productor 额外引入依赖
<dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>springbootstarterdubbo</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4jlog4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency>
-
配置文件
spring.dubbo.application.name=provider 服务名称 spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 注册中心地址 spring.dubbo.protocol.name=dubbo dubbo 协议 spring.dubbo.protocol.port=20880 spring.dubbo.scan=com.jaycekon.dubbo.service 声明需要暴露的服务接口 #yml 文件 spring: application: name: tree_dubbo dubbo : application: name : tree_dubbo_provider registry: address: zookeeper://127.0.0.1:2181 protocol : name: dubbo port: 20880 scan: com.jk.service
-
-
暴露service之后 ,在是service层加@service 该注解注意使用dubbo注解 ,导错了就很难找到
-
单独启动 zookeeper 解压后的bin下 (cmd.exe)
-
浏览器登录 127.0.0.1:2181 可以查看
-
建一个消费者
pom.xml 文件导入依赖后spring: application: name: servername dubbo: application: name: tree_consumer registry: address: zookeeper://127.0.0.1:2181 scan: com.jk.service
-
实现类中 使用@Reference 注解注入公共接口
-
再新建一个公共项目可以是maven项目,公共部分都放在这里,使用maven命令install 打jar包,将依赖引入到生产者、消费者的pom.xml中。
-
注意:
-
1.把热部署依赖去掉(出错可能会是这个) 2. 实体对象需要序列化 3.修改D:\SoftWare\zookeeper-3.4.8\conf下的:zoo_sample.cfg文件名,改 为:zoo.cfg 4. zoo.cfg 文件中 dataDir=E:\\jinke\\study\\zookeeper-3.4.12\\data dataDirLog=E:\\jinke\\study\\zookeeper-3.4.12\\log 5.dubbo 控制台可搭 可不搭 解压到Tomcat webapp Root下;(得启动Tomcat)