Dubbo介绍及使用教程

1、dubbo是什么

Dubbo是阿里巴巴开源的一个高性能的分布式服务框架,使得应用可以通过高性能的RPC实现服务的输入和输出,并且是soa服务治理方案,和spring框架无缝衔接。

2、rpc是什么

Rpc(Remote Procedure CallProtocol),远程过程调用协议,基于这个协议我们可以通过网络从远程计算机调用服务,并且不需要了解网络底层技术,能够为dubbo实现远程调用接口做支持。

3、dubbo核心功能

主要是三个,远程通讯,集群容错,自动发现(基于注册中心,使用消费方可以直接找到服务方)。

4、dubbo架构

这里写图片描述
Container:服务运行容器
Provideer:服务提供方
Consumer:服务消费方
Registry:注册中心
Monitor:统计服务调用次数和时间的监控中心

调用过程说明:
0、服务容器负责加载、启动服务。
1、服务提供者启动时向注册中心注册自己提供的服务
2、服务消费者启动时向注册中心订阅自己需要的服务
3、注册中心将服务提供方的地址列表发送给消费方
4、消费方通过软负载均衡方法,从地址列表中选择一个服务提供方调用服务,调用失败在选择另一台(集群容错)
5、消费方和服务方将调用次数和时间存储到内存中,定时一分钟发送给监控中心

5、dubbo使用

首先在linux上面安装好zookeeper,网上有很多相关的教程可以查看。
然后编写两个maven工程,一个作为服务提供者,一个作为服务消费者。
这里写图片描述
父工程用于管理我们的jar包版本
对于两个工程的pom文件的编写不做介绍,核心程序如下:
1、接口工程中编写一个接口
这里写图片描述
2、服务提供工程中实现这个接口
这里写图片描述
3、编写服务提供工程的spring配置文件

<!-- 发布dubbo服务 -->  
<!-- 提供方应用信息,用于计算依赖关系 -->  
<dubbo:application name="zdubbo-service" />  
<!-- 注册中心的地址 -->  
<dubbo:registry protocol="zookeeper" address="192.168.156.80:2181" />  
<!-- 用dubbo协议在20889端口暴露服务 -->  
<dubbo:protocol name="dubbo" port="20889" />  
<!-- 声明需要暴露的服务接口 -->  
 <dubbo:service interface="zdubbo.provider.service.DubboService" ref="dubboServiceImpl" timeout="300000"/>  

主要是这个工作,首先配置包扫描器,用来扫描服务类,然后发布服务,发布服务需要有服务的名称,注册中心的地址,及在哪个端口暴露服务,最后声明需要提供的服务接口。
4、通过web.xml配置容器启动监听器加载spring配置文件

<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.5"   
     id="WebApp_ID"  
     xmlns="http://java.sun.com/xml/ns/javaee"  
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
     <display-name>zdubbo-service</display-name>  
     <welcome-file-list>  
        <welcome-file>index.jsp</welcome-file>  
     </welcome-file-list>  
       <!-- 初始化spring容器 -->  
     <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath:spring/applicationContext-*.xml</param-value>  
     </context-param>  
     <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
     </listener>  
</web-app>  

5、服务消费者pom文件添加对接口jar包的引用

        <dependency>
            <groupId>com.zdubbo</groupId>
            <artifactId>zdubbo.interface</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency> 

6、编写controller类对服务进行调用
这里写图片描述
7、编写spring配置文件完成视图解析,注解配置,引用服务的配置
这里写图片描述

核心是引用服务,需要有服务应用名称,注册中心地址,和需要引用的接口即可
8、编写配置文件通过前端控制器加载spring配置文件
这里写图片描述
9、测试
这里写图片描述
这里写图片描述
调用成功!
参考程序链接:https://download.csdn.net/download/liuyuanq123/10297901

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值