springboot集成dubbo

首先看boot和dubbo版本:
在这里插入图片描述
这里介绍最新版 2.71
这个版本我试过,不用其他配置,就可以在controller正常引用服务,不会出现null指针异常。
注意:@Service,@Reference,@EnableDubbo注解都是org.apache.dubbo包下

1,引入jar包:

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.5.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<properties>
		<java.version>1.8</java.version>
		<dubbo.version>2.7.1</dubbo.version>
		<!-- 这里是因为我的pom第一行报错,如果你的没报错可以不引入 -->
		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<!-- 1,引入dubbo的starter -->
		<dependency>
	        <groupId>org.apache.dubbo</groupId>
	        <artifactId>dubbo-spring-boot-starter</artifactId>
	        <version>${dubbo.version}</version>
	    </dependency>
	    <!-- 2,引入zookeeper注册中心,包含zookeeper和curator -->
	    <dependency>
	        <groupId>org.apache.dubbo</groupId>
	        <artifactId>dubbo-dependencies-zookeeper</artifactId>
	        <version>${dubbo.version}</version>
	        <type>pom</type>
	    </dependency>
	    <!-- 3,dubbo -->
	    <dependency>
	        <groupId>org.apache.dubbo</groupId>
	        <artifactId>dubbo</artifactId>
	        <version>${dubbo.version}</version>
	        <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
	    </dependency>

2,开启springboot的dubbo功能,@EnableDubbo ?
网上介绍的是@EnableDubboConfiguration,但是 2.71版本已经没有这个类了,可怕的是连官网也是@EnableDubboConfiguration。。。
然后我用的是@EnableDubbo

这是@EnableDubbo的部分源码,渣渣表示根本看不懂源码内容,只好看看注释(灬ꈍ ꈍ灬),应该是它吧_

/**
 * Enables Dubbo components as Spring Beans, equals
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
//引入了@EnableDubboConfig
@EnableDubboConfig
@DubboComponentScan
public @interface EnableDubbo {

3,服务提供者-provider,在接口的实现类上添加@service即可

server.port=8080
#spring.application.name=dubbo-privider
dubbo.application.name=dubbo-privider-8080
#注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181
#使用dubbo协议,将服务暴露在20880端口,协议由提供方指定,消费方被动接受(订阅)
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

dubbo.consumer.check=false
# roundrobin 轮询机制, random 随机机制, leastactive 最少活跃调用数机制
#dubbo.provider.loadbalance=roundrobin

4,服务消费者-consumer,用@Reference引用服务

	@Reference
	UserService userService;

我只写了最基本的配置::

server.port=8081
#spring.application.name=dubbo-consumer

dubbo.application.name=dubbo-consumer-8081
dubbo.registry.address=zookeeper://127.0.0.1:2181
# roundrobin 轮询机制, random 随机机制, leastactive 最少活跃调用数机制
#dubbo.consumer.loadbalance=roundrobin

5,关于轮询机制
如果只在provider或者consumer设置loadbalance=roundrobin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值