dubbo简单配置
来源:互联网 发布:mac 安装sass出错 编辑:程序博客网 时间:2024/04/28 08:02
dubbo模块结构图:
1.下载zookeeper-3.4.5.tar.gz,并解压到本地。
我的本地地址为:
D:\zookeeper-3.4.5
2.配置zookeeper:
在zookeeper文件夹下打开conf,创建zoo.cfg,内容如下:
tickTime=200000
initLimit=10
syncLimit=5
dataDir=D:\\zk\\tmp\\zookeeper
dataLogDir=D:\\zk\\logs\\zookeeper
clientPort=8083
1.tickTime:Client-Server通信心跳时间
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
2.initLimit:Leader-Follower初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=5
3.syncLimit:Leader-Follower同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=2
4.dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/home/michael/opt/zookeeper/data
5.clientPort:客户端连接端口
客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=8083
6.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
这个配置项的书写格式比较特殊,规则如下:
server.N=YYY:A:B
server.1=itcast05:2888:3888
server.2=itcast06:2888:3888
server.3=itcast07:2888:3888
7.ZK为什么设置为奇数个?
zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2 -> 0; 3 -> 1; 4 - >1; 5 -> 2; 6 -> 2会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。
3.启动zookeeper:
在zookeeper文件夹下打开bin目录,双击zkServer.cmd.
如果双击后出现闪退现象,请在zkServer.cmd末尾行加上pause阻止cmd退出,并查看原因。
服务消费方和服务提供方引入dubbo,并防止引用dubbo自己的低版本spring,pom如下:
<!-- dubbo配置开始(并去掉spring低版本依赖开始 ) --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion><exclusion><artifactId>netty</artifactId><groupId>org.jboss.netty</groupId></exclusion></exclusions></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.6</version></dependency><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency><!-- dubbo配置结束 -->
dubbo服务提供方配置:
在服务方工程的applicationContext.xml所在resource资源下创建dubbo-provider.xml,内容如下:
<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="tdemo" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://127.0.0.1:8083" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 服务提供方 --> <dubbo:service interface="com.tanlei.service.TestDubboService" ref="testDubboService" /> </beans>
然后在applicationContext.xml中引入dubbo-provider.xml,如下:
<!-- 引入dubbo配置文件 -->
<import resource="dubbo-provider.xml"></import>
dubbo服务消费方配置:
在消费方工程的applicationContext.xml所在resource资源下创建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="CognosPro"></dubbo:application> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://127.0.0.1:8083" /> <!-- 要引用的服务 --> <dubbo:reference interface="com.tanlei.service.TestDubboService" id="testDubboService"></dubbo:reference> </beans>
然后在applicationContext.xml中引入dubbo-consumer.xml,如下:
<!-- 引入dubbo配置文件 -->
<import resource="dubbo-consumer.xml"></import>
我们将接口做为一个jar工程,该jar工程只提供接口和实体类:
pom如下,说明是一个jar工程:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.tanlei</groupId><artifactId>testservice</artifactId><version>0.0.1-SNAPSHOT</version><name>testservice</name><description>测试</description><packaging>jar</packaging></project>
然后在服务提供方,我这里是tdemo中引入该jar工程,pom如下:
接口具体实现也在该服务提供方:
服务消费方引入jar工程testservice,pom如下:
服务消费方试用testservice的接口:
访问上面的接口,如果访问成功,说明基本调用成功。
- Dubbo简单配置使用
- dubbo简单配置
- maven+springmvc+dubbo的简单配置
- dubbo的简单配置及原理
- 分布式zookeeper+dubbo的简单配置使用
- dubbo 配置
- dubbo配置
- dubbo配置
- dubbo 配置
- Dubbo配置
- dubbo配置
- Maven+SpringMVC+Dubbo 简单的入门demo配置
- Maven+SpringMVC+Dubbo+zookeeper 简单的入门demo配置
- Maven+SpringMVC+Dubbo 简单的入门demo配置
- Maven+SpringMVC+Dubbo 简单的入门demo配置
- dubbo控制中心部署,权重配置,以及管控台中各个配置的简单查看
- dubbo简单环境搭建
- Dubbo简单介绍
- Socket通信原理探讨
- Vysor安装、破解及黑屏问题
- java获取金额小数位数
- iOS 富文本风格NSMutableParagraphStyle、定制UITextView插入图片和定制复制
- ios中交换button的图片和文字的位置
- dubbo简单配置
- erminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequ
- 测试菜鸟在测试过程发现问题并整理的问题分析解决方案
- 关于企业内部竞聘的思考(转)
- 译文:在闭包中使用循环变量是有害的
- java用户角色权限设计
- 通过node的pipe实现请求代理
- Android Xml解析之Pull
- Android Studio导入SlidingMenu