基于zookeeper的dubbo配置
2016-06-30 23:16
357 查看
[b][b][b]基于zookeeper[/b][/b]的dubbo
入门教程
[/b]
摘要:
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。
Dubbo诞生的背景:
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。
此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。
下面介绍一下dubbo的配置过程:
第一步 在spring官网下载一个spring比较全的包。 我用的还是以前的3.2版本。
第二步 新建一个web项目。将spring的包放在lib下面。
第三步 在dubbo.io官网的版本库下载dubbo的jar包。
第四步 在Apache的官网下载zookeeper的项目。 zookeeper的安装方法在上篇文章讲过了。拿出zookeeper根目录下面的zookeeper.jar就可以。
附加一些jar 工程下面有的 可以无视。slf4j-api-1.7.5.jar,slf4j-log4j12-1.7.5.jar,netty-3.7.0.Final.jar,jetty-util-6.1.26.jar,jetty-6.1.26.jar,commons-cli-1.2.jar 这些jar在zookeeper3.5的lib下面都有。直接拷贝就可以。
还有一个就是zkclient-0.1.0.jar 一定要下载I0Itec的,这个应该不是zk开发的。
新建一个接口:
新建一个实现类:
在src下面新建一个applicationContext.xml 内容如下:
最后写一个启动服务的类:
启动zookeeper。在执行启动服务的类 控制台打印了如下信息:
说明启动成功了。
下面在做客户端。同意 新建一个web项目 把服务端的jar全部拷贝到lib下面去。
新建一个接口 包名和服务端一样 这边接口 其实要在服务器那边拿过来的。
在src下面新建一个 applicationConsumer.xml文件。内容如下:
新建一个main类来测试:
打印信息如下:
这就是基于zookeeper的dubbo 配置。
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
入门教程
[/b]
摘要:
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。
Dubbo诞生的背景:
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。
此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。
下面介绍一下dubbo的配置过程:
第一步 在spring官网下载一个spring比较全的包。 我用的还是以前的3.2版本。
第二步 新建一个web项目。将spring的包放在lib下面。
第三步 在dubbo.io官网的版本库下载dubbo的jar包。
第四步 在Apache的官网下载zookeeper的项目。 zookeeper的安装方法在上篇文章讲过了。拿出zookeeper根目录下面的zookeeper.jar就可以。
附加一些jar 工程下面有的 可以无视。slf4j-api-1.7.5.jar,slf4j-log4j12-1.7.5.jar,netty-3.7.0.Final.jar,jetty-util-6.1.26.jar,jetty-6.1.26.jar,commons-cli-1.2.jar 这些jar在zookeeper3.5的lib下面都有。直接拷贝就可以。
还有一个就是zkclient-0.1.0.jar 一定要下载I0Itec的,这个应该不是zk开发的。
新建一个接口:
package com.unj.dubbotest.provider; public abstract interface DemoService { public abstract String build(String name) throws Exception; }
新建一个实现类:
package com.unj.dubbotest.provider.impl; import com.unj.dubbotest.provider.DemoService; public class DemoServiceImpl implements DemoService { public String build(String name) throws Exception { System.out.println("name is === " + name); return "你好 名称是 ------------- >>>> " + name; } }
在src下面新建一个applicationContext.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.unj.dubbotest.provider.impl.DemoServiceImpl" /> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="xixi_provider" /> <!-- 使用multicast广播注册中心暴露服务地址 <dubbo:registry address="multicast://224.5.6.7:1234" />--> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="com.unj.dubbotest.provider.DemoService" ref="demoService" /> </beans>
最后写一个启动服务的类:
package com.unj.dubbotest.provider; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Provider { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); context.start(); System.out.println("CSDN博客:DubboTest"); System.in.read(); // 按任意键退出 } }
启动zookeeper。在执行启动服务的类 控制台打印了如下信息:
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version CSDN博客:
说明启动成功了。
下面在做客户端。同意 新建一个web项目 把服务端的jar全部拷贝到lib下面去。
新建一个接口 包名和服务端一样 这边接口 其实要在服务器那边拿过来的。
package com.unj.dubbotest.provider; public abstract interface DemoService { public abstract String build(String name) throws Exception; }
在src下面新建一个 applicationConsumer.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 "> <!-- consumer application name --> <dubbo:application name="consumer-of-helloworld-app" /> <!-- registry address, used for consumer to discover services --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <dubbo:consumer timeout="5000" /> <!-- which service to consume? --> <dubbo:reference id="demoService" interface="com.unj.dubbotest.provider.DemoService" /> </beans>
新建一个main类来测试:
package com; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.unj.dubbotest.provider.DemoService; public class Main { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "applicationConsumer.xml" }); context.start(); DemoService demoService = (DemoService) context.getBean("demoService"); // get // service // invocation // proxy String hello = ""; try { hello = demoService.build("CSDN博客:DubboTest"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // do invoke! System.out.println(Thread.currentThread().getName() + " " + hello); } }
打印信息如下:
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. main 你好 名称是 ------------- >>>> CSDN博客:DubboTest
这就是基于zookeeper的dubbo 配置。
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
相关文章推荐
- Shell脚本实现自动安装zookeeper
- 基于Zookeeper的使用详解
- Dubbo-admin 不支持JDK8 解决办法
- mesos + marathon + docker部署
- 基于zk的配置管理
- 对外提供dubbo服务的最佳实践
- 搭建分布式架构2--CentOs下安装Tomcat7(环境准备)
- 搭建分布式架构4--ZooKeeper注册中心安装
- 搭建分布式架构5--ZooKeeper 集群的安装 3ff0
- dubbo-2.5.4-SNAPSHOT 小bug处理。
- Zookeeper注册中心安装
- SolrCloud4.9+zookeeper在CentOS上的搭建与安装
- dubbo + spring + mybaits 的pom文件列一
- 基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南
- dubbo使用简单说明
- Storm集群的搭建
- Zookeeper配置项说明