SpringBoot-分布式整合

SpringBoot-分布式整合,第1张

概述分布式 1. Dubbo 2. 整合Dubbo Zookeeper SpringBoot 1. 提供者提供服务 1. 导入依赖 <!--导入依赖 dubbo + zookeeper--& 分布式

目录分布式1. Dubbo2. 整合Dubbo Zookeeper SpringBoot1. 提供者提供服务1. 导入依赖2. 配置文件3. 注册服务2. 消费者如何消费1. 导入依赖2. 配置文件3. 从远程注入服务3. 注意

1. dubbo

2. 整合dubbo Zookeeper SpringBoot1. 提供者提供服务1. 导入依赖
<!--导入依赖 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-分布式整合所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1216979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存