【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

时间:2024-03-26 18:13:30

第一,概述

总所周知,dubbo是一款分布式架构。其特性也没什么好说的,大概言之无非下面三项

1. 远程通信——向本地调用一样调用远程方法。

2. 集群容错

3. 服务自动发现和注册,可平滑添加或者删除服务提供者。

 

详解:我们常常使用 Springboot 暴露 HTTP 服务,并走 JSON 模式。但慢慢量大了,一种 SOA 的治理方案。这样可以暴露出 Dubbo 服务接口,提供给 Dubbo 消费者进行 RPC 调用。下面说下怎么配置

第二,dubbo源码下载

1,dubbox

目前dubbo最新版为2.8.4,为当当网维护的dubbox,下载地址如下

https://github.com/dangdangdotcom/dubbox/tree/dubbox-2.8.4

 

【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

2,zookeeper启动,本文假定读者已经完成zookeeper的获取

https://gitee.com/paladins/design2.0/blob/master/zookeeper/zookeeper-3.4.13.tar.gz

2.1 将配置文件改为zoo.cfg

【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

2.2为zookeeper配置环境变量后,启动

【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

2.3 启动成功界面

【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

 

第三,编译

1,编译dubbox-2.8.4 所有目录得到dubbo-2.8.4.jar

1.1 执行mvn install命令

【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

1.2 进入target目录得到需要的jar包

【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

2,maven安装dubbo-2.8.4.jar,命令如下

mvn install:install-file -Dfile=dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar -DgeneratePom=true 

 

pom.xml三维坐标

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.8.4</version>
</dependency>

2,编译dubbo-admin得到管理控制台war,部署到tomcat监控服务节点。

2.1 在admin目录里得到war包

【dubbo笔记系列之第一篇】dubbo下载安装与环境搭建

 

第四,服务配置

1,获得暴露本地服务dubbo:service 

<dubbo:service interface="com.test.UserCenterService" ref="userCenterServiceImpl" timeout="30000" register="true" />
                    <!-- 和本地bean一样实现服务  -->
                    <bean id="userCenterServiceImpl" class="com.test.UserCenterServiceImpl" />

2,调用远程服务

<dubbo:reference interface="com.test.UserService" id="userService" check="false"></dubbo:reference>

第五,zookeeper配置

1,服务名配置

<dubbo:application name="${eda.application}" />

2,zookeeper配置

<dubbo:registry address="zookeeper://${zk.address}" register="${dubbo.register}" check="false" subscribe="true" />

3,协议路径与异常

<dubbo:protocol name="rest" port="${dubbo.port}" contextpath="${dubbo.contextPath}" extension="com.test.Exception" />
 

第六,代码示例

1,dobboconsumer.xml可以默认不配置

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans          
    http://www.springframework.org/schema/beans/spring-beans.xsd          
    http://code.alibabatech.com/schema/dubbo          
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
</beans>

2,dubboprovider.xml需要配置

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans          
    http://www.springframework.org/schema/beans/spring-beans.xsd          
    http://code.alibabatech.com/schema/dubbo          
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
   
    <!-- 提供方应用信息,用于计算依赖关系 -->  
    <dubbo:application name="AMS-Service"/>
   
    <!--  使用zookeeper注册中心暴露服务地址   -->
    <dubbo:registry address="zookeeper://${zk.address}" register="${dubbo.register}" check="false" subscribe="true" />

    <!--  用dubbo协议在20880端口暴露服务   -->
    <!-- <dubbo:protocol name="dubbo" port="20880" />   -->
    <dubbo:protocol name="rest" server="tomcat" port="${dubbo.port}" contextpath="${dubbo.contextPath}" extension="com.upsoft.sep.bp.common.exception.SepException"/>

</beans>  

 

第七,资源下载

1,dubbo-2.8.4.jar

2,dubbo-admin-2.8.4.war