代码语言:javascript复制
motan提供了直连的方式访问服务,
但是存在单点故障问题,接下来介绍
motan使用zk作为注册中心,
来提供服务注册和服务订阅:
(依赖上一篇的项目)
一、环境准备
代码语言:javascript复制我们在常用的spring配置文件中加入
motan节点会出现校验错误,就算加入
schema头也是不行的,类似dubbo,
我们需要把motan的xsd加入到
eclipse的xml catalog中:1.在motan-core包中找到
motan.xsd文件,并拷贝内容
存储到指定目录
代码语言:javascript复制2.eclipse中打开windows->
preference->xml catalog
代码语言:javascript复制新增entires,选择刚刚保存的
motan.xsd,选定key type为
Schema location,key为
http://api.weibo.com/schema/motan.xsd保存
代码语言:javascript复制3.选择项目重新校验,错误消失
二、服务端修改配置和启动
代码语言:javascript复制需要把服务注册到zk上,需要在
motan-provider.xml中添加zk配置
代码语言:javascript复制regProtocol="zookeeper"
表示使用zk作为注册中心,
name="zkRegistry"
表示当前motan注册中心名称,
address="192.168.0.112:2181"
表示zk的地址和端口接着在具体服务暴露添加
registry="zkRegistry",
即将该服务注册到zk**注意**:低版本的motan中
存在bug,启动motan服务的
时候需要添加一行代码
代码语言:javascript复制1
代码语言:javascript复制MotanSwitcherUtil.setSwitcherValue
(MotanConstants.REGISTRY_HEARTBEAT_SWITCHER, true);
代码语言:javascript复制高本版中已经修复该bug
三、客户端配置及改进
代码语言:javascript复制既然服务提供方将服务注册到zk,
那么消费方也需要到zk上订阅
motan服务,
需要修改motan-consumer.xml如下:
代码语言:javascript复制属性配置和提供方类似,
registry="zkRegistry"
表示到zk订阅服务,而不是通过
url直连motan服务同样,如果是低版本,
也需要在消费方启动
的时候加入一行代码,
代码语言:javascript复制这样我们就简单的实现了
motan zk,使用zk作为
注册中心,这样我们就可以
实现更强大的功能,
新浪微博目前每天motan
提供上亿次的内部调用,
据说性能要强于dubbo。
ps:以上实例在本地跑起来
没有问题,如果能够给
各位看官带来帮助,
是我莫大的荣幸, 感谢支持和拍砖