【详解Zookeeper-Dubbo五、】Dubbo初始-配置

前言

如果看此文章请先看:讲了zk
https://mp.****.net/mdeditor/82751168#

框架图

这是judy画的dubbo与zk结合的图,通过图可以看出dubbo分为消费者和服务提供者,所以跟具前面说的分布式架构一个是wed端的一个是service端,所以web端肯定是消费者,而我们的service端则是服务端

在web于service进行通信的时候使用的是zk注册中心注册。首先声明我们不使用zk也是可以的,因为dubbo直连他们也可以是互相工作的,但是由于服务之间乱调用所以我们有了引入了zk,来进行管理,我么可以知道那个接口可以用,但是是web发生了问题还是service发生了问题,但是调用的谁的接口
【详解Zookeeper-Dubbo五、】Dubbo初始-配置

Dubbo属性配置

我们一般是在项目的web和service使用dubbo然后做相应的配置。下面有关于dubbo的四种配置方式,
需求:在这里插入图片描述
在开发以及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这个时候需要点对点直连,然后不走zookeeper

线上要求点对点联调

  • 第一种方式
    使用dubbo:reference 中配置url指向提供者,然后绕过注册中心,也可以使用多个地址分号隔开
    <dubbo:reference id=“xxxservice” interface=“com.alibaba.xxx.XxxService” url="“dubbo://localhost:20890”/>

  • 第二种方式:测试阶段使用
    在jvm启动参数中加入-D参数映射服务地址
    java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890

  • 第三种方式:如何服务多的话可以用配置文件的形式
    指定配置文件,
    java -Ddubbo.resolve.file=xxx.properties
    但是dubbo默认情况下会直接去C:\Users\Administrator,下面去找,不用再idea里面去配置,所以非常方便
    【详解Zookeeper-Dubbo五、】Dubbo初始-配置

  • 第四种方式通过注解的方式

服务提供方
》1:Dubbo配置文件中增加Dubbo注解扫描,这句话的意思是开启dubbo注解扫描。如果不填package则扫描的是整个当前applicationContext中所有的类
<dubbo:annotation package=“com.XXX.XX.XX”>
》2:service实现类上添加Dubbo.service 注解
import com.alibaba.dubbo.config.annotation.Service;

@Service
public class DubboServiceImpl implements DubboService {
}

服务消费方

1dubbo配置文件中增加Dubbo注解扫描(前提是dubbo服务方也是注解的形式)

<dubbo:annotation package=“com.bounter” />

2spring mvc 配置中引入dubbo配置,解决dubbo注解不兼容问题(很关键,不然控制器中引入服务会报空指针)

3控制器引入Dubbo服务后,就可以使用哦
@Reference
private DubboService dubboservice

Dubbo-----'消费方’注解引用’提供方’的接口时报空指针
https://blog.****.net/hekewangzi/article/details/52301542?utm_source=itdadao&utm_medium=referral

Duboo消费者和提供者配置

消费者使用的标签是dubbo:service
提供者使用的标签是dubbo:reference
【详解Zookeeper-Dubbo五、】Dubbo初始-配置