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的集成相关推荐

  1. springboot项目集成docker

    文章目录 一.docker常用命令 0.拉取镜像到本地仓库 1.查看所有镜像 2.创建一个新的容器并运行,返回的是容器的ID -- CONTAINER ID: 3.查看运行中的docker实例 4.查 ...

  2. springboot的jsp应该放在哪_在springboot中集成jsp开发

    springboot就是一个升级版的spring.它可以极大的简化xml配置文件,可以采用全注解形式开发,一个字就是很牛. 在springboot想要使用jsp开发,需要集成jsp,在springbo ...

  3. springboot+mybatis集成自定义缓存ehcache用法笔记

    今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助! 一.ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架,属 ...

  4. Springboot/Cloud集成Sentinel 和 入门实战

    文章目录 一.Springboot/Cloud集成Sentinel 1. spring-cloud-alibaba依赖 2. 引入 Sentinel starter 3. 配置application. ...

  5. springboot nacos_springboot集成nacos

    1.现在nacos进行配置添加 2.springboot项目集成nacos nacos上有说明,根据不同的工程进行配置,如下图 集成nacos客户端包 com.alibaba.boot nacos-c ...

  6. SpringBoot 2 集成微信扫码支付

    前言 该文主要是手把手教你如何在SpringBoot 中集成微信扫码支付,以及集成的过程需要注意的问题事项.另外需要感谢 vbirdbest 关于微信支付和支付宝支付相关包博客总结.因为文中很多地方参 ...

  7. ❤️《分布式 Dubbo+Zookenper+SpringBoot》(建议收藏)❤️

    分布式 Dubbo+Zookenper+SpringBoot 文章目录 分布式 Dubbo+Zookenper+SpringBoot 1.分布式理论 1.什么是分布式系统? 2.Dubbo文档 3.单 ...

  8. MyBatis系列之--Java 项目(非SpringBoot)集成MyBatis

    MyBatis系列之--Java 项目(非SpringBoot)集成MyBatis 对MyBatis简单介绍 核心接口SqlSessionFactory 实战 1. Maven创建Java项目 2. ...

  9. springboot项目集成大数据第三方dolphinscheduler调度器

    文章目录 摘要 项目背景 功能要求 功能说明 1.1用例图 1.2业务流程分析 1.3业务ER图 1.4 管理任务流程图 1.5功能设计详细说明点 1.6页面原型 三.本人相关其他文章链接 摘要 ①d ...

最新文章

  1. html文件 excel,怎么把html文件转成excel,excel表格代码
  2. 目标文件里面到底有什么(2)?
  3. 洛谷 - P3389 【模板】高斯消元法(高斯消元解方程)
  4. JavaScript之模仿块级作用域
  5. Linux内核安装-5.9.1为例
  6. 大数据可视化分析方法与流程
  7. 关于CUDA与CUDNN适配版本,以及安装中出现Bug的分析
  8. 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
  9. Python小白的数学建模课-11.偏微分方程数值解法
  10. python 股票收益数据统计(柱状图)
  11. 2019年电大计算机应用基础操作题,2019年电大《计算机应用基础》(操作题解题指导.docx...
  12. 2008服务器安全修复,Windows 2008操作系统漏洞临时修复方法
  13. 根据周次显示日期范围_刚刚!总投资34亿元!京东方投建12英寸OLED微显示器件生产线...
  14. 一键安装与配置gitlab(脚本)
  15. C语言fgets()函数
  16. Day12 File 读取流
  17. 直流电机 M PWM 调速原理
  18. C语言运算符逻辑运算符位运算符
  19. Spring boot Whitelabel Error Page解决方法(弱鸡方法,非全部适用)
  20. 【Python+C#】手把手搭建基于Hugging Face模型的离线翻译系统,并通过C#代码进行访问...

热门文章

  1. Vue-cli代理解决跨域问题
  2. SpringBoot 2.0 编程方式配置,不使用默认配置方式
  3. 九、linux文件系统
  4. 律理(四)----关于“用韵的疏密和宽严”
  5. Android 开发笔记 ListView异步加载图片
  6. 高维、相依和不完全数据的统计分析(二)
  7. 自己封装线程(Demo)
  8. DataGrid中的高级ToolTip
  9. UICollectionViewController的用法1
  10. hadoop2.2.0 yarn-site.xml--IPC Configs