<!--导入依赖 dubbo + zookeeper--><!--dubbo--><!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-@R_301_773@ --><dependency> <groupID>org.apache.dubbo</groupID> <artifactID>dubbo-@R_301_773@</artifactID> <version>2.7.8</version></dependency><!--引入zookeeper--><!--zookeeper clIEnt--><!-- https://mvnrepository.com/artifact/com.github.sgroschupf/zkclIEnt --><dependency> <groupID>com.github.sgroschupf</groupID> <artifactID>zkclIEnt</artifactID> <version>0.1</version></dependency><dependency> <groupID>org.apache.curator</groupID> <artifactID>curator-framework</artifactID> <version>2.12.0</version></dependency><dependency> <groupID>org.apache.curator</groupID> <artifactID>curator-recipes</artifactID> <version>2.12.0</version></dependency><dependency> <groupID>org.apache.zookeeper</groupID> <artifactID>zookeeper</artifactID> <version>3.6.2</version> <!--由于日志会冲突,排出这个slf4j-log4j12--> <exclusions> <exclusion> <groupID>org.slf4j</groupID> <artifactID>slf4j-log4j12</artifactID> </exclusion> </exclusions></dependency>
2. 配置文件配置注册中心的地址,以及服务发现名,和要扫描的包
server.port=8001# 服务应用名字dubbo.application.name=provIDer-server# 注册中心地址dubbo.registry.address=zookeeper://127.0.0.1:2181# 哪些服务要被注册dubbo.scan.base-packages=com.wang.service
3. 注册服务接口
package com.wang.service;public interface TicketService { String getTicket();}
实现类
package com.wang.service;import com.alibaba.dubbo.config.annotation.Service;import org.springframework.stereotype.Component;//zookeeper: 服务注册与发现//使用了dubbo后,尽量不要使用Service注解(SpringBoot的Service)//这里的Service注解是dubbo的,不要导错包!@Service//可以被扫描到,在项目启动就自动注册到注册中心@Componentpublic class TicketServiceImpl implements TicketService { @OverrIDe public String getTicket() { return "得到一张票!"; }}
2. 消费者如何消费1. 导入依赖与上面相同
2. 配置文件配置注册中心的地址,配置自己的服务名
server.port=8002# 消费者去哪里拿服务,要暴露自己的名字dubbo.application.name=consumer-server# 注册中心的地址dubbo.registry.address=zookeeper://127.0.0.1:2181
3. 从远程注入服务package com.wang.service;import org.apache.dubbo.config.annotation.Reference;import org.springframework.stereotype.Service;//放到容器中,这里要用SpringBoot的@Servicepublic class UserService { //想拿到provIDer-server提供的票,要去注册中心拿到服务 //引用,Pom坐标,也可以定义与要使用的接口路径相同的接口名 @Reference TicketService TICKET_SERVICE; public voID buyTicket() { String ticket = TICKET_SERVICE.getTicket(); System.out.println("在注册中心拿到=>" + ticket); }}
3. 注意要先开启ZooKeeper和dubbo admin
提供者的@Service注解是dubbo包中的,不要导错
提供者使用@Component将类被SpringBoot托管,不要用@Service
消费者要注册到SpringBoot中,使用SpringBoot的@Service
用dubbo的@Reference引用远程调用的接口,注意,要在和远程接口路径相同的路径下定义接口
总结以上是内存溢出为你收集整理的SpringBoot-分布式整合全部内容,希望文章能够帮你解决SpringBoot-分布式整合所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)