dubbo与springboot的集成
1.添加dubbo-spring-boot-starter依赖
<!-- dubbo依赖 --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency>
2.添加zookeeper依赖
<dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.6</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency>
3.添加zkclient依赖
<dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency>
4.新建个普通的java工程,用来定义服务(API接口),如下:
package com.example.dubboTestApi.api;public interface SayHelloApi {String say(String name); }
5.新建一个springboot类型的服务实现工程,具体见springboot创建功能文章
6.配置文件修改:
#WEB服务端口 server.port=8081## dubbo 配置 spring.dubbo.application.id=live-dubbo-provider spring.dubbo.application.name=live-dubbo-provider spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 spring.dubbo.server=true spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880
7.启动类修改,增加@EnableDubboConfiguration注解
@EnableDubboConfiguration @SpringBootApplication public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);} }
8.服务实现,先添加API接口依赖
<dependency><groupId>com.example.dubboTestApi</groupId><artifactId>dubboTestApi</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
注意这里加了一个retries = 0,默认情况下超时时dubbo会自动重掉三次,这样的重复调用很容易导致一些问题,所以这里用retries = 0来关闭超时重试功能。
@Service(interfaceClass = SayHelloApi.class,retries = 0) @Component public class SayHelloApiService implements SayHelloApi{@Overridepublic String say(String name) {if(StringUtils.isBlank(name)){return "error,name is blank";}return name + ",hello dubbo api";}}
9.新建一个springboot类型的服务调用工程,具体见springboot创建功能文章
10.添加dubbo,zookeeper,zkclient相关依赖。
11.配置文件修改
## WEB服务端口 server.port=8082## Dubbo 配置 spring.dubbo.application.name=live-dubbo-consumer spring.dubbo.application.id=live-dubbo-consumer spring.dubbo.protocol.port=20800 spring.dubbo.protocol.name=dubbo spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
12.修改启类:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;@EnableDubboConfiguration @SpringBootApplication public class DubboConsumerTestApplication {public static void main(String[] args) {SpringApplication.run(DubboConsumerTestApplication.class, args);} }
13.添加api接口依赖
<dependency><groupId>com.example.dubboTestApi</groupId><artifactId>dubboTestApi</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
14.创建使用api例子
import org.springframework.stereotype.Component; import com.alibaba.dubbo.config.annotation.Reference; import com.example.dubboTestApi.api.SayHelloApi;@Component public class DubboConsumerTest {@Referenceprivate SayHelloApi sayHelloApi;public String testSay(){System.out.println(sayHelloApi.say("dubbo"));return "dubbo test success";}}
15.另外,为了便于理解,上面分成三个项目,API定义,服务提供,服务消费 。但是一个应用,既可以提供服务,也可以调用其他项目提供的服务。,一般也是这样的情况。
16.注意事项
默认情况下,服务端没启动,消费端是不能启动的。可以配置一下让消费端启动的时候不去检查服务是否存在。
spring.dubbo.reference.check=false
另外,dubbo默认超时会重试两次,这样的重试有时会产生很大问题,所以建议关闭。关闭有两种方式:
在服务上加注解:
@Service(interfaceClass = AccountUpdateApi.class,retries = -1)
注意这里重试次数写成-1,经测试,dubbo版本(2.6.0)写成0无效。
另一种方式,配置文件:
spring.dubbo.provider.retries=-1
17.安装dubbo admin后(安装非常简单,直接将war包放在tomcat下运行即可),可以在页面查看服务情况
需要项目代码,可以发邮件zhuyuehua110@163.com
转载于:https://www.cnblogs.com/zhuyuehua/p/9405495.html
dubbo与springboot的集成相关推荐
- springboot项目集成docker
文章目录 一.docker常用命令 0.拉取镜像到本地仓库 1.查看所有镜像 2.创建一个新的容器并运行,返回的是容器的ID -- CONTAINER ID: 3.查看运行中的docker实例 4.查 ...
- springboot的jsp应该放在哪_在springboot中集成jsp开发
springboot就是一个升级版的spring.它可以极大的简化xml配置文件,可以采用全注解形式开发,一个字就是很牛. 在springboot想要使用jsp开发,需要集成jsp,在springbo ...
- springboot+mybatis集成自定义缓存ehcache用法笔记
今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助! 一.ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架,属 ...
- Springboot/Cloud集成Sentinel 和 入门实战
文章目录 一.Springboot/Cloud集成Sentinel 1. spring-cloud-alibaba依赖 2. 引入 Sentinel starter 3. 配置application. ...
- springboot nacos_springboot集成nacos
1.现在nacos进行配置添加 2.springboot项目集成nacos nacos上有说明,根据不同的工程进行配置,如下图 集成nacos客户端包 com.alibaba.boot nacos-c ...
- SpringBoot 2 集成微信扫码支付
前言 该文主要是手把手教你如何在SpringBoot 中集成微信扫码支付,以及集成的过程需要注意的问题事项.另外需要感谢 vbirdbest 关于微信支付和支付宝支付相关包博客总结.因为文中很多地方参 ...
- ❤️《分布式 Dubbo+Zookenper+SpringBoot》(建议收藏)❤️
分布式 Dubbo+Zookenper+SpringBoot 文章目录 分布式 Dubbo+Zookenper+SpringBoot 1.分布式理论 1.什么是分布式系统? 2.Dubbo文档 3.单 ...
- MyBatis系列之--Java 项目(非SpringBoot)集成MyBatis
MyBatis系列之--Java 项目(非SpringBoot)集成MyBatis 对MyBatis简单介绍 核心接口SqlSessionFactory 实战 1. Maven创建Java项目 2. ...
- springboot项目集成大数据第三方dolphinscheduler调度器
文章目录 摘要 项目背景 功能要求 功能说明 1.1用例图 1.2业务流程分析 1.3业务ER图 1.4 管理任务流程图 1.5功能设计详细说明点 1.6页面原型 三.本人相关其他文章链接 摘要 ①d ...
最新文章
- html文件 excel,怎么把html文件转成excel,excel表格代码
- 目标文件里面到底有什么(2)?
- 洛谷 - P3389 【模板】高斯消元法(高斯消元解方程)
- JavaScript之模仿块级作用域
- Linux内核安装-5.9.1为例
- 大数据可视化分析方法与流程
- 关于CUDA与CUDNN适配版本,以及安装中出现Bug的分析
- 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
- Python小白的数学建模课-11.偏微分方程数值解法
- python 股票收益数据统计(柱状图)
- 2019年电大计算机应用基础操作题,2019年电大《计算机应用基础》(操作题解题指导.docx...
- 2008服务器安全修复,Windows 2008操作系统漏洞临时修复方法
- 根据周次显示日期范围_刚刚!总投资34亿元!京东方投建12英寸OLED微显示器件生产线...
- 一键安装与配置gitlab(脚本)
- C语言fgets()函数
- Day12 File 读取流
- 直流电机 M PWM 调速原理
- C语言运算符逻辑运算符位运算符
- Spring boot Whitelabel Error Page解决方法(弱鸡方法,非全部适用)
- 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问...