关于dubbo的一个demo

一、概述

      Dubbo是阿里爸爸SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,广泛应用于阿里巴巴集团的各成员站点。


二、Dubbo能啥?

  • 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
  • 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
  • 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
三、Demo示例代码
1、服务提供者基于spring的dubbo配置(dubbo.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p"
	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="bms-facade"/>
	
	<!-- 使用multicast广播注册中心暴露服务地址   
        <dubbo:registry address="multicast://224.5.6.7:1234" />-->  
    
        <!-- 使用zookeeper注册中心暴露服务地址,禁用订阅配置(只注册) -->  
        <dubbo:registry id="zookeeper1" address="zookeeper://127.0.0.1:2181" subscribe="false" />  
	<dubbo:registry id="zookeeper2" address="zookeeper://127.0.0.1:2185" default="false" />    
    
        <!-- 用dubbo协议在20880端口暴露服务 -->  
        <dubbo:protocol name="dubbo" port="20880" /> 
    
        <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->
	<dubbo:annotation package="org.bms.facade" />
	
        <!-- 声明要暴露的服务接口 
        <bean id="testFacade" class="org.bms.facade.TestFacade"></bean>
	<dubbo:service interface="org.bms.apis.interfaces.ITest" ref="testFacade" version="0.0.1"/>
	--> 
</beans>

2、服务提供者
 
@Service(owner="cyj",cache="",version="0.0.1")
public class TestFacade implements ITest{

	@Override
	public ResultObj sayHello() {
		// TODO Auto-generated method stub
		System.out.println("...我是Provider..");
		ResultObj rObj = new ResultObj();
		rObj.setResultName("你好,我是Provider!");
		return rObj;
	}
	


}
3、服务消费者基于spring的dubbo配置(dubbo.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p"
	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="bms-controller"/>
	
	<!-- 使用multicast广播注册中心暴露服务地址   
    <dubbo:registry address="multicast://224.5.6.7:1234" />-->  
    
    <!-- 使用zookeeper注册中心暴露服务地址   
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />  -->
    <dubbo:registry id="zookeeper1" address="zookeeper://127.0.0.1:2181" />
    <dubbo:registry id="zookeeper2" address="zookeeper://127.0.0.1:2185" default="false" />
    
    <!-- 用dubbo协议在20880端口暴露服务 -->  
    <dubbo:protocol name="dubbo" port="20880" /> 
   	
    <dubbo:reference interface="org.bms.apis.interfaces.ITest" id="iTest" version="0.0.1"/>  
</beans>
4、服务消费者
@Controller
@RequestMapping("/test")
public class TestController {
	
	
	@Resource
	private ITest iTest;
	
	@RequestMapping("/index.htm")
	public String test(Model model){
		ResultObj rObj = (ResultObj) iTest.sayHello();
		model.addAttribute("rObj", rObj);
		return "/index";
	}
	
}

这是我近段时间玩dubbo集成的一个小demo,经测试,可以跑起来,测试页面如下:
谨以此文献给没接触过dubbo的初学者,方便大家交流学习。
本人水平有限,写的东西粗俗不堪,如有错漏之处,请大家批评指正。

注:文中许多内容引用dubbo官方介绍文档中的内容,地址为http://dubbo.io/Home-zh.htm

附上zookeeper3.4.5下载地址:我的dubbo的demo依赖的zookeeper下载地址



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dubbo一个分布式服务框架,可以实现服务的注册与发现、远程通信、负载均衡等功能。为了学习和使用Dubbo,我们可以搭建一个Dubbo demo来进行实践。 首先,我们需要准备好开发环境。我们可以使用Maven构建项目,代码使用Java编写。可以选择任意一个Java开发工具,比如Eclipse或者IntelliJ IDEA。 接下来,我们需要下载Dubbo的安装包。可以从Dubbo的官方网站上进行下载,选择适合自己的版本。然后解压到本地目录。 然后,我们创建一个Maven项目,并在pom.xml文件中添加Dubbo的依赖。可以在Dubbo的安装包中找到pom.xml的路径,将其复制到我们的项目中。 在项目中创建一个服务提供者和一个服务消费者的模块。服务提供者是一个提供服务的服务端,服务消费者是一个调用服务的客户端。 在服务提供者模块中,我们需要定义一个接口,并实现该接口。接口定义了服务的功能,实现类为具体的业务逻辑。 在服务消费者模块中,我们需要配置Dubbo的相关信息,比如注册中心的地址以及要消费的服务提供者的接口。然后我们可以通过调用该接口的方法来使用远程服务。 最后,我们分别启动服务提供者和服务消费者模块。可以通过命令行或者在开发工具中直接运行。 通过以上的步骤,我们就成功搭建了一个Dubbo demo。我们可以在服务提供者和服务消费者之间进行远程调用,并观察调用结果。这个demo可以帮助我们理解和学习Dubbo的基本使用方法和原理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值