spring整合dubbo-2.5.3(使用TCP广播或者zookeeper 暴露和发现服务)
来源:互联网 发布:大数据知识框架 编辑:程序博客网 时间:2024/05/16 05:25
dubbo官方文档,写的很详细
dubbo需要的jar
dubbo-2.5.3.jar
javassist-3.15.0-GA.jar
netty-3.2.5.Final.jar
zkclient-0.1.jar
zookeeper-3.5.1-alpha.jar
dubbo消费提供者
接口package com.lp.dubbo.demo;import java.io.Serializable;public interface ProviderDemoService { public String sayHello(String name); public User getUser(); static class User implements Serializable{ private static final long serialVersionUID = 1L; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "name=" + name + ",age=" + age; } }}接口实现类package com.lp.dubbo.demo;public class ProviderDemoServiceImpl implements ProviderDemoService { @Override public String sayHello(String name) { return "Hello " + name; } @Override public User getUser() { User user = new User(); user.setName("lp"); user.setAge(26); return user; }}配置文件dubbo-provider.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"> <!-- 具体的实现bean --> <bean id="demoService" class="com.lp.dubbo.demo.ProviderDemoServiceImpl" /> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="xixi_provider" /> <!-- 使用multicast广播注册中心暴露服务地址 --> <dubbo:registry address="multicast://224.1.1.1:12345" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20881" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="com.lp.dubbo.demo.ProviderDemoService" ref="demoService" /></beans>测试代码package com.lp.dubbo.demo;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;public class ProviderTest { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("dubbo-provider.xml"); //保证主线不会死掉 System.in.read(); // 按任意键退出 }}
dubbo 服务消费者
接口(与服务提供者的接口是一模一样的)package com.lp.dubbo.demo;import java.io.Serializable;public interface ProviderDemoService { public String sayHello(String name); public User getUser(); static class User implements Serializable{ private static final long serialVersionUID = 1L; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "name=" + name + ",age=" + age; } }}配置文件 dubbo-consumer.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="consumer-of-helloworld-app" /> <!-- 使用multicast广播注册中心发现服务地址 --> <dubbo:registry address="multicast://224.1.1.1:12345" /> <!-- 生成远程服务代理,可以和本地bean一样使用demoService --> <dubbo:reference id="demoService" interface="com.lp.dubbo.demo.ProviderDemoService" /></beans>测试代码package com.lp.dubbo.demo;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.lp.dubbo.demo.ProviderDemoService.User;public class ConsumerTest { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("dubbo-consumer.xml"); ProviderDemoService demoService = (ProviderDemoService)context.getBean("demoService"); // 获取远程服务代理 User user = demoService.getUser(); System.out.println(user); }}
进行测试
先运行 ProviderTest, 再 运行 ConsumerTest。
输出结果
name=lp,age=26
上面的xml配置是使用 TCP广播进行 服务暴露和服务发现的,其实可以使用zookeeper实现暴露和服务发现,但是需要安装zookeeper,zookeeper安装教程。
如果你的zookeeper是集群,将
<dubbo:registry address="multicast://224.1.1.1:12345" />替换为<dubbo:registry protocol="zookeeper" address="192.168.17.129:2181,192.168.17.129:2182,192.168.17.129:2183" /> 或者<dubbo:registry address="zookeeper://192.168.17.129:2181?backup=192.168.17.129:2182,192.168.17.129:2183" />服务提供者和服务消费者做相同的修改
如果你的zookeeper是单机的,将
<dubbo:registry address="multicast://224.1.1.1:12345" />替换为<dubbo:registry address="zookeeper://224.1.1.1:12345" />服务提供者和服务消费者做相同的修改
dubbo还有很多功能,自己也在学习中,更多的信息请查看dubbo官方文档。
2 0
- spring整合dubbo-2.5.3(使用TCP广播或者zookeeper 暴露和发现服务)
- Dubbo框架初探【用Spring配置声明暴露服务(可以使用multicast广播注册中心暴露服务地址或者使用zookeeper注册中心暴露服务地址)、加载Spring配置,启动服务】
- Dubbo框架初探【用Spring配置声明暴露服务(可以使用multicast广播注册中心暴露服务地址或者使用zookeeper注册中心暴露服务地址)、加载Spring配置,启动服务】
- Dubbo Zookeeper与Spring或者struts2整合和使用
- Dubbo与Zookeeper、Spring整合和使用
- Dubbo与Zookeeper、Spring整合和使用
- Dubbo与Zookeeper、Spring整合和使用
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- spring 、zookeeper(dubbo)整合
- spring 、zookeeper(dubbo)整合
- spring 、zookeeper(dubbo)整合
- opencv Mat IplImage*相互转换
- Java编程入门(词汇表)
- VirtualBox四种网络连接方式的区别联系
- 关于Tuxedo NLS问题
- Node.js Stream(流)
- spring整合dubbo-2.5.3(使用TCP广播或者zookeeper 暴露和发现服务)
- iOS蓝牙4.0 CoreBluetooth框架开发
- Android: Your project contains error(s),please fix them before running your application问题
- centos7 部署svn服务器
- Zookeeper安装部署
- cocoa pods 安装教程
- RGB颜色对照表
- servlet&&jsp
- CoreOS部署及应用