springboot使用dubbo和zookeeper
2019-11-17 yls
创建服务接口模块
接口工程只提供接口,不提供实现,在后面的提供者和消费者中使用
在使用接口的模块中只需要写具体实现类,避免了在每个模块中重复编写接口
在接口中引入依赖包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
创建一个实体类,一定要实现Serializable接口,否则dubbo协议之间无法传输
@Data
@AllArgsConstructor
public class User implements Serializable {
private String name;
}
创建接口
public interface UserService {
List<User> getAll();
List<User> getAll2();
}
创建服务提供者
引入依赖
<!--引入创建的接口服务-->
<dependency>
<groupId>com.yls</groupId>
<artifactId>common-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--由于服务提供者不是web项目
,只需引入spring-boot-starter,不用引入spring-boot-starter-web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency> <!--dubbo-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
修改配置文件
#服务名称
dubbo.application.name=provider1
#注册中心地址
dubbo.registry.address=39.97.234.52:2181,39.97.234.52:2182,39.97.234.52:2183
#注册中心类型
dubbo.registry.protocol=zookeeper #版本号
dubbo.application.version=3
# Dubbo Protocol
#协议名称
dubbo.protocol.name=dubbo
#服务暴露端口
dubbo.protocol.port=20880
实现服务接口
//暴露服务
//这里的@Service是Dubbo提供的,不是spring中的
//version必填
@Service(version = "${dubbo.application.version}")
@Component
public class UserImpl implements UserService {
@Override
public List<User> getAll() {
User user1 = new User("张三");
User user2 = new User("lisi");
List<User> list = Arrays.asList(user1, user2);
return list;
}
}
启动服务
//@EnableDubbo等价于在配置文件中配置dubbo.scan.base-packages
//扫描实现类所在的包,注册Bean
@EnableDubbo
@SpringBootApplication
public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class,args);
}
}
创建消费者
引入依赖
<!--消费者是web项目-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!--dubbo-->
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency> <!--引入创建的接口服务-->
<dependency>
<groupId>com.yls</groupId>
<artifactId>common-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
修改配置文件
#注册中心
dubbo.registry.address=39.97.234.52:2181,39.97.234.52:2182,39.97.234.52:2183
dubbo.registry.protocol=zookeeper
#dubbo应用名称
dubbo.application.name=consumer1
实现消费接口
//服务消费者的Service是spring的
@Service
public class OrderImpl implements OrderService { //使用dubbo提供的@Reference访问远程服务
//version对应服务提供者的version
@Reference(version = "3")
private UserService userService; @Override
public List<User> init() {
List<User> list = userService.getAll();
list.forEach(item -> System.out.println(item.getName()));
return list;
}
}
创建controller
@Controller
public class OrderController { @Autowired
private OrderService orderService; @ResponseBody
@RequestMapping("/init")
public List<User> init() {
return orderService.init();
}
}启动服务消费者
@EnableDubbo
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
dubbo相关补充
dubbo使用本地缓存方式,如果注册中心全部宕机,dubbo也能正常工作,就算没有注册中心,dubbo也能通过dubbo直连通信
//使用dubbo提供的@Reference访问远程服务
//version对应服务提供者的version
//url:如果没有注册中心,可以通过url配置服务提供者的dubbo协议端口,进行dubbo直连
@Reference(version = "3",url ="127.0.0.1:20880" )
private UserService userService;
springboot使用dubbo和zookeeper的更多相关文章
- Springboot整合Dubbo和Zookeeper
Dubbo是一款由阿里巴巴开发的远程服务调用框架(RPC),其可以透明化的调用远程服务,就像调用本地服务一样简单.截至目前,Dubbo发布了基于Spring Boot构建的版本,版本号为0.2.0,这 ...
- SpringBoot整合Dubbo配合ZooKeeper注册中心
安装ZooKeeper 我这里使用zookeeper作为服务注册中心,版本3.4.9,下载地址: http://mirrors.hust.edu.cn/apache/zookeeper/zookeep ...
- SpringBoot分布式 - Dubbo+ZooKeeper
一:介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. Dubbo是Alib ...
- springboot整合dubbo\zookeeper做注册中心
springboot整合dubbo发布服务,zookeeper做注册中心.前期的安装zookeeper以及启动zookeeper集群就不说了. dubbo-admin-2.5.4.war:dubbo服 ...
- springboot整合dubbo+zookeeper最新详细
引入 最近和小伙伴做一个比赛,处于开发阶段,因为涉及的服务比较多,且服务需要分开部署在不同的服务器上,讨论之后,打算采用分布式来做,之前学习springboot的时候,部分章节涉及到了springbo ...
- SpringBoot(十一) Dubbo分布式与Zookeeper
Dubbo简介 1.Dubbo简介 1. Dubbo是什么? dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上 ...
- springboot+mybatis+dubbo+aop日志第一篇
本篇文章主要讲述项目搭建过程,不会涉及过多的基础知识,本项目是作者对前段时间学习的一个总结,主要使用到技术有:maven父子工程.springboot.mybatis.dubbo.zookeeper. ...
- 基于springboot构建dubbo的入门demo
之前记录了构建dubbo入门demo所需的环境以及基于普通maven项目构建dubbo的入门案例,今天记录在这些的基础上基于springboot来构建dubbo的入门demo:众所周知,springb ...
- springboot整合dubbox与zookeeper
springboot中dubbo依赖的引入和配置(application.properties)参见:https://blog.csdn.net/wohaqiyi/article/details/72 ...
随机推荐
- VMware workstation Windows 10虚拟机安装步骤
1. 在首页点击创建新的虚拟机 2. 选择典型,下一步 3.选择稍后安装操做系统,下一步. 4. 选择第一个Microsoft Windows,版本选择如图. 5. 选择安装位置,我放在D盘. 7. ...
- 利用ansible书写playbook在华为云上批量配置管理工具自动化安装ceph集群
首先在华为云上购买搭建ceph集群所需云主机: 然后购买ceph所需存储磁盘 将购买的磁盘挂载到用来搭建ceph的云主机上 在跳板机上安装ansible 查看ansible版本,检验ansible是否 ...
- Spring Boot构建的Web项目如何在服务端校验表单输入
本文首发于个人网站:Spring Boot构建的Web项目如何在服务端校验表单输入 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC ...
- Spring cloud 学习笔记
前奏 1. 什么是微服务? 微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,==每一个微服务提供单个业务功能的服务==,一个服务做一件事,从技术角度看就是一种 ...
- 本地客户端(自己的电脑)连接远程Oracle数据库(服务器端),客户端安装步骤
如果本地自己的电脑没有安装Oracle(服务器端数据库),那就要单独安装HA-Instant Client-v11.2.0.3.0.exe(oracle_client客户端) 如果本地安装了Oracl ...
- ArangoDB图数据库--总参
参考文章: ArangoDB原生多模型数据库(百科) ArangoDB官网 ArangoDB数据库入门 arangodb-vs-cassandra arangodb-vs-mongodb2 Arang ...
- [springboot 开发单体web shop] 1. 前言介绍和环境搭建
前言介绍和环境搭建 简述 springboot 本身是为了做服务化用的,我们为什么要反其道使用它来开发一份单体web应用呢? 在我们现实的开发工作中,还有大量的业务系统使用的是单体应用,特别是对于中小 ...
- MacOS 系统 文件夹解析
Mac OS X,基于UNIX核心的系统,增强了系统的稳定性.性能以及响应能力. 通过对称多处理技术充分发挥双处理器的优势,提供无与伦比的2D.3D和多媒体图形性能以及广泛的字体支持和集成的PDA功能 ...
- Android 禁止截屏、录屏 — 解决PopupWindow无法禁止录屏问题
项目开发中,为了用户信息的安全,会有禁止页面被截屏.录屏的需求. 这类资料,在网上有很多,一般都是通过设置Activity的Flag解决,如: //禁止页面被截屏.录屏 getWindow().add ...
- Java 导出数据库表信息生成Word文档
一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...