Dubbo与springBoot整合(1)

dubbo的基本介绍:

Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

官网: http://dubbo.apache.org/

基本架构设计:

  • 服务提供者(provider):  暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务
  • 服务消费者(consumer):调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务。集群环境下,服务消费者从提供者列表中,基于软负载均衡算法,选择一台提供者进行调用,如果调用失败,再选另一台调用(重试机制)。
  • 注册中心(registry): 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长链接推送变更数据给消费者。
  • 监控中心(monitor): 服务消费者和服务提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
  • 服务运行容器(container):负责启动、加载、运行服务提供者

dubbo与springBoot环境搭建:

dubbo常用的注册中心是zookeeper,我们这里也是用zookeeper最为注册中心。

zookeeper的搭建过程可见博客: zookeeper集群搭建和常用命令

我们这里使用Idea来进行开发,先创建一个空的项目,然后在这个项目下创建服务的消费者、提供者等

1、创建公共接口和实体类:dubbo_entity(服务消费者和服务提供者两个服务的公共部分)

因为dubbo是面向接口的远程调用,所以这里需要有一个公共的接口和实体供两个服务使用。

2、创建一个springBoot web项目,作为服务的消费者dubbo_consumer:。

需要引入的主要依赖:

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

该依赖中,包含了我们需要的基本的依赖包:

在该项目下,我们创建一个接口用于测试

添加dubbo配置:

server.port=8082

# 服务名
dubbo.application.name=zsm-dubbo-consumer  
# 服务注册协议
dubbo.registry.protocol=zookeeper
# zookeeper 注册地址
dubbo.registry.address=192.168.5.183:2181 

# 分布式固定是dubbo
dubbo.protocol.name=dubbo

# 如果机器是多网卡,可能会出现 BindException: Address already in use 异常
# 这时需给服务的提供者和消费者指定两个不同的本机网卡地址
dubbo.protocol.host= 192.168.5.1

 

springBoot的启动类上需要开启dubbo支持的注解:

3、创建一个服务提供者服务dubbo_provider:这里的服务提供者,仅用于服务的RPC调用,所以可以不是web服务

需要添加的依赖:

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

注意: 这里的@service注解试dubbo中的注解,而且这里只是接口的实现,而对应的接口则提取出来作为公共部分引用。

添加dubbo配置:

# 服务名
dubbo.application.name = student-provider
# 注册中心协议
dubbo.registry.protocol = zookeeper
# 注册中心地址+端口号
dubbo.registry.address= 192.168.5.183:2181
# dubbo.registry.address = zookeeper://192.168.5.183:2181

dubbo.protocol.name = dubbo
dubbo.protocol.host= 192.168.16.1

启动类上开启dubbo的注解:同上

4、添开始编写和调用dubbo远程RPC服务

服务提供者:service实现类使用的@Service注解,要使用dubbo的注解。如上图中展示的

服务消费者:调用公共的UserService服务,需要使用@Reference注解

 

到这里,基本的dubbo远程服务调用服务搭建完成,分别启动服务消费者和服务提供者(前提先保证zookeeper服务正常且可连接),在浏览器中测试:

dubbo除了上述的功能外,还可以配置:重试次数、超时时间、服务容错、服务降级、负载均衡机制、本地存根等。dubbo官网使用示例

后面的章节中我们会逐步介绍dubbo的相关功能,还有dubbo的源码探索。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值