dubbo与springboot的搭配使用

老渣      2022-04-23     744

关键词:

1.版本匹配问题

dubbo官网上是有说明的,也有具体的例子。https://github.com/apache/incubator-dubbo-spring-boot-project

1.x版本的springboot需要对应0.1版本的dubbo-spring-boot-starter跟较低版本的dubbo。

2.x版本的springboot对应0.2版本的dubbo-spring-boot-starter跟2.6.x版本的dubbo。

至于zookeeper倒是没有明确规定。

2.包说明

        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

zkclient包服务提供者有就行了,服务消费者可以不打。

其他的,依照官网,需要打的starter也有不同:

2.x的话要打三个包:

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

        <!-- Dubbo -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.5</version>
        </dependency>
        <!-- Spring Context Extras -->
        <dependency>
            <groupId>com.alibaba.spring</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>1.0.2</version>
        </dependency>

1.x的话只打那个starter就可以了(注意要0.1.0的)。

还有,0.2.1的包经常搜不到,所以我打了0.2.0的,但是官网最新的是0.2.1。

3.不同版本的配置

体现在dubbo的service、reflect、跟配置信息的不同。

1.x版本:

服务提供者:

# dubbo springboot 配置
dubbo.application.name=dubbo-provider
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.scan.base-packages=com.chriswei.bean
@Service
@Component
public class helloProviderimpl implements helloProvider {}

服务消费者:

# dubbo springboot 配置
dubbo.application.name=live-dubbo-comsumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
public class HelloConsumer {
    @Reference
    private helloProvider hello;
}

1.x版本这么匹配就算是能用了,控制台会打印出你发布出去的服务,以包全名形式,当然你可以打开zkCli.cmd,输入ls /查看一下你的服务发布出去没有。

2.x版本的话,依据官方示例:

服务提供者:

# Spring boot application
spring.application.name = dubbo-provider-demo
server.port = 9090
management.port = 9091

# Base packages to scan Dubbo Components (e.g., @Service, @Reference)
dubbo.scan.basePackages  =com.chriswei.bean

# Dubbo Config properties
## ApplicationConfig Bean
dubbo.application.id = dubbo-provider-demo
dubbo.application.name = dubbo-provider-demo

## ProtocolConfig Bean
dubbo.protocol.id = dubbo
dubbo.protocol.name = dubbo
dubbo.protocol.port = 12345

## RegistryConfig Bean
dubbo.registry.id = my-registry
dubbo.registry.address = zookeeper://127.0.0.1:2181
@Service(
        version = "1.0.0",
        application = "${dubbo.application.id}",
        protocol = "${dubbo.protocol.id}",
        registry = "${dubbo.registry.id}"
)
@Component
public class helloProviderimpl implements helloProvider {}

服务消费者:

# Spring boot application
spring.application.name = dubbo-consumer-demo
server.port = 8082
management.port = 8083


# Dubbo Config properties
## ApplicationConfig Bean
dubbo.application.id = dubbo-consumer-demo
dubbo.application.name = dubbo-consumer-demo

## ProtocolConfig Bean
dubbo.protocol.id = dubbo
dubbo.protocol.name = dubbo
dubbo.protocol.port = 12345
@Service
public class HelloConsumer {
    @Reference(version = "1.0.0",
            application = "${dubbo.application.id}",
            url = "dubbo://localhost:12345")
    private helloProvider hello;
}

特别要注意dubbo://localhost:12345这个写法,这里就这么写,而不能写zookeeper://127.0.0.1:2181。

dubbo与springboot的三种整合方式

SpringBoot与dubbo整合的三种方式:1、导入dubbo-starter,在application.properties配置属性,使用@Service暴露服务,使用@Reference引用服务,使用@EnableDubbo开启dubbo注解(或者在application.properties中配置dubbo.scan.base-packages=com.lina02.gmall)2、保留 查看详情

ali的dubbo与springboot

在这只是记录:SpringBoot与ali的dubbo版本问题在springBoot1.0+的项目中,dubbo的版本应是2.6.5(不包括)以下,而dubbo与springBoot的中间件(dubbo-starter.version)应是2.0.0以下。在springBoot2.0+的项目中,dubbo的版本应是2.6.5(包括)以上,dubbo-starter.ve... 查看详情

springboot与dubbo整合遇到的坑

整合环境:dubbo2.6.2springboot2.1.5遇到的问题:服务一直无法注册到zookeeper注册中心项目结构:使用application.properties文件:配置都没问题,启动的时候也没有明显的错误;然后就去百度看到大部分都是这种配置,之后在一篇博客中... 查看详情

手把手教你dubbo与springboot常用两种方式整合

一、Dubbo整合SpringBoot的方式(1) 1)直奔主题,方式一:  pom.xml中引入dubbo-starter依赖,在application.properties配置属性,使用@Service【暴露服务】使用@Reference【引用服务】,选取的是application.properties+部分注解的方式来完成。 ... 查看详情

dubbo从入门到精通与springboot集成的三种方式(十一)(代码片段)

1 方式一(注解方式)导入dubbo-starter,在application.properties配置属性,使用@Service【暴露服务】使用Reference【引用服务】新版本的dubbo 是@DubboService 和@DubboReference然后在启动类上面 标 @EnableDubbo 开启基于注解的du... 查看详情

springboot整合dubbo

SpringBoot整合Dubbo一、Dubbo  Dubbo是一款高性能、轻量级的开源JavaRPC框架,  它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。    关键点介绍:  1.注册与发现  ... 查看详情

rabbitmq与springboot搭配实现监听

...实例,后面自己补了一个demo,便于理解。demo中主要利用springboot的配置方式,一、消费者(也就是watcher)配置配置都采用spring的注解进行配置1、创建连接  @BeanpublicConnectionFactorycreateConnectionFactory(){Cachin 查看详情

springboot与dubbo整合入门(三种方式)(代码片段)

Springboot与Dubbo整合三种方式详解整合环境:jdk:8.0dubbo:2.6.2springboot:2.1.5项目结构:1、搭建项目环境:  (1)创建父项目与三个子项目,创建项目时,都使用springinitializr,创建时,父项目中注意的一点:    (2)创建三个子... 查看详情

springboot整合dubbo

通过三个工程演示整合过程工程一:API工程:服务端与客户端共同需要引入的工程  pom:无特殊依赖,下边内容供服务端与客户端引用此工程使用<groupId>com.boot.dubbo.demo</groupId><artifactId>dubbo-api</artifactId><v... 查看详情

springboot与jax-rs框架jersey的完美搭配

...JAX-RS框架添加Jeresy2.x的依赖build.gradle文件内容:创建一个springboot项目在IDE里一路nextSpringBoot启动APP注册jerseyservlet这和原来在web.xml配置的是一样的,设置Mapping,设置init初始化参数,对应的servletclassname.所有的rest/*请求都将被ServletContain... 查看详情

springboot与dubbo整合

1.添加依赖 <!--SpringBootDubbo依赖--> <dependency> <groupId>io.dubbo.springboot</groupId> <artifactId>spring-boot-starter-dubbo</artifactId> <version>$dubbo 查看详情

分布式事务:springboot+dubbo+seata+nacos实现案例

案例源码使用SpringBoot2.3.2+Dubbo2.7.6+Mybatis1.3.2+Nacos1.3.2+Seata1.3.0整合来实现Dubbo分布式事务管理,使用Nacos作为Dubbo和Seata的注册中心和配置中心,使用MySQL数据库和MyBatis来操作数据库。案例说明项目包含四个模块,consumer模块依赖其他... 查看详情

微服务学习三:springboot与springcloud集成之eurake的使用(server端,client端)

这个多亏了网站上的一个大神的博客:http://blog.csdn.net/forezp/article/details/70148833强烈推荐学习:1、springcloud是什么,这个大家百度吧,我一会也说不明白,但是比dubbo更强大,包含了dubbo的内容,也包含了比dubbo更多的内容。2、什... 查看详情

dubbo源码dubbo与springboot整合时是如何管理bean的?(代码片段)

目录前言一、ImportBeanDefinitionRegistrar二、@EnableDubboConfig与@DubboComponentScan三、DubboConfigConfigurationRegistrar与DubboComponentScanRegistrar扫描并注册ServiceBean扫描并注册ReferenceBean四、@EnableDubbo五、要点总结前言        本文由于... 查看详情

springboot项目关于文件的上传与下载

springboot页面需要实现文件的上传与下载贴出部分代码html代码文件的下载<formtarget="name"id="download_dubbo_form"name="download_dubbo_form"method="post"action="/jfpointscore-test/download"><buttonid="download_dubbo_config 查看详情

springboot+dubbo简单分布式rpc调用demo(代码片段)

使用springboot+dubbo搭建RPC入门案例本文背景简述:最近在学习公司的一套RPC框架,初步接触的时候感觉挺复杂的。但是知道其原理肯定是和dubbo很相似的,毕竟都是RPC框架嘛,只是各自使用的范围和使用者群体有些不同罢了。于是... 查看详情

dubbo整合springboot

目前的dubbo已支持和springboot集成,还是之前的例子,这次我们通过springboot容器来实现。借此了解一下基于springboot容器启动的dubbo的配置及使用。1.准备工作创建一个Maven空项目,作为项目的父工程,此工程的子项目基于SpringBoot2.0... 查看详情

dubbo入门学习-----dubbo整合springboot(代码片段)

springboot节省了大量的精力去配置各种bean,因此通过一个简单的demo来整合springboot与dubbo一、创建boot-user-service-provider本篇博文基于上篇中的dubbo项目,整体工程如下:1、pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven... 查看详情