SpringBoot 整合 Dubbo 进行分布式开发
自从Dubbo支持SpringBoot后,Dubbo与Spring的整合变得更加的简单了,下面就是完整的步骤:
1. 引入依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
2. 在dubbo-api中定义model和service接口,model就是普通的POJO,service接口的代码如下:
BounterService.java
package cn.bounter.dubbo.service;
import cn.bounter.dubbo.model.Bounter;
public interface BounterService {
Bounter findById(long id);
}
3. 服务提供者实现接口并配置Dubbo
BounterServiceImpl.java
package cn.bounter.dubbo.service; import java.util.Date;
import com.alibaba.dubbo.config.annotation.Service;
import cn.bounter.dubbo.model.Bounter; //声明为Dubbo服务
@Service
public class BounterServiceImpl implements BounterService { @Override
public Bounter findById(long id) {
//模拟访问数据库
return new Bounter().setId(1L).setName("simon").setCreateTime(new Date()).setCreateBy(1L);
} }
application.properties
## Application
server.port=28080 ## Dubbo
dubbo.application.name=dubbo-provider
dubbo.registry.address=zookeeper://47.98.151.249:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.scan.basePackages=cn.bounter
4. 服务消费者配置Dubbo并调用Dubbo服务
application.properties
# Application
server.port=18080 ## Dubbo
dubbo.application.name=dubbo-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.scan=cn.bounter
BounterController.java
package cn.bounter.dubbo.controller; import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import com.alibaba.dubbo.config.annotation.Reference; import cn.bounter.dubbo.model.ResponseData;
import cn.bounter.dubbo.service.BounterService; @RestController
@CrossOrigin
@RequestMapping("/api/bounter")
public class BounterController { @Reference
private BounterService bounterService; @GetMapping("/{id}")
public ResponseData<?> get(@PathVariable Long id) {
return new ResponseData<>().success().data(bounterService.findById(id));
} }
这样当你依次启动dubbo-provider和dubbo-consumer之后,浏览器访问http://localhost:18080/api/bounter/1就可以看到效果了
需要完整代码的请移步我的Github:
https://github.com/13babybear/bounter-springboot-dubbo
SpringBoot 整合 Dubbo 进行分布式开发的更多相关文章
- SpringBoot整合dubbo(yml格式配置)
yml文件 如果只作为服务的消费者不用暴露端口号,扫描的包名根据自己service改 dubbo: application: name: springboot-dubbo-demo #应用名 regi ...
- Springboot整合Dubbo和Zookeeper
Dubbo是一款由阿里巴巴开发的远程服务调用框架(RPC),其可以透明化的调用远程服务,就像调用本地服务一样简单.截至目前,Dubbo发布了基于Spring Boot构建的版本,版本号为0.2.0,这 ...
- springboot整合dubbo\zookeeper做注册中心
springboot整合dubbo发布服务,zookeeper做注册中心.前期的安装zookeeper以及启动zookeeper集群就不说了. dubbo-admin-2.5.4.war:dubbo服 ...
- 【转】SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)
http://blog.csdn.net/a67474506/article/details/61640548 Dubbo是什么东西我这里就不详细介绍了,自己可以去谷歌 SpringBoot整合Dub ...
- Springboot整合elasticsearch以及接口开发
Springboot整合elasticsearch以及接口开发 搭建elasticsearch集群 搭建过程略(我这里用的是elasticsearch5.5.2版本) 写入测试数据 新建索引book( ...
- dubbo学习实践(4)之Springboot整合Dubbo及Hystrix服务熔断降级
1. springboot整合dubbo 在provider端,添加maven引入,修改pom.xml文件 引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache ...
- springboot整合dubbo+zookeeper最新详细
引入 最近和小伙伴做一个比赛,处于开发阶段,因为涉及的服务比较多,且服务需要分开部署在不同的服务器上,讨论之后,打算采用分布式来做,之前学习springboot的时候,部分章节涉及到了springbo ...
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一 ...
- Spring Boot整合Dubbo使用及开发笔记
一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...
随机推荐
- Emit动态代理.NetCore迁移之旅
[前言] 前面我们介绍了Aop 从静态代理到动态代理:https://www.cnblogs.com/7tiny/p/9657451.html 我们在.NetFramework平台下使用微软提供的Em ...
- debug和release版本的区别
Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试. Debug模式下生成两个文件,除了 ...
- SpringBoot使用Filter过滤器处理是否登录的过滤时,用response.sendRedirect()转发报错
1.使用response.sendRedirect("/login")时报错,控制台报错如下: Cannot call sendError() after the response ...
- python的基本流程控制
一:if判断语句 1.1 if判断语法之一 if条件: 子代码块 1.2 if判断语法之二 if条件: 子代码块 else: 子代码块 1.3 if判断语法之三 if条件: if条件: 子代码块 1. ...
- MySQL 中触发器的应用
在一个教育系统里面,有 科目表 ,章节表(每一科目对应若干大章节),小节表(每一大章节下面有若干小节),习题表(每一小节对应若干习题), 在后台管理系统中 有这样几个功能要实现,在 科目列表页面中 ...
- Active Directory: LDAP Syntax Filters
LDAP syntax filters can be used in many situations to query Active Directory. They can be used in VB ...
- Element UI——本地引入iconfont不显示
前言 前面因为本地引入Element UI导致了iconfont不显示,所以只好再去Element UI官网去扒下iconfot 步骤 进入官网 组件 | Element UI F12进入控制台,找到 ...
- Django_RBAC_demo2 升级版权限控制组件
RBAC 升级版 预期要求 前端在无权限时不在提供操作标签 更改部分硬编码 实现更加精准的权限控制 未改动前的版本 在这里 ⬇ Django_rbac_demo 权限控制组件框架模型 具体更改 数据库 ...
- nginx编译安装指定参数
--prefix=/app/nginx # 安装目录 --conf-path=/app/nginx/conf/nginx.conf # 配置文件 --sbin-path=/app/nginx/sbin ...
- 「POJ2891」Strange Way to Express Integers【数学归纳法,扩展中国剩余定理】
题目链接 [VJ传送门] 题目描述 给你\(a_1...a_n\)和\(m_1...m_n\),求一个最小的正整数\(x\),满足\(\forall i\in[1,n] \equiv a_i(mod ...