dubbo发布web服务实例
2015-05-31 22:55
567 查看
dubbo角色与调用执行过程 dubbo节点角色说明: provider: 暴露服务的服务提供方 consumer: 调用远程服务的服务消费方 registry: 服务注册于发现的注册中心 monitor: 统计服务的调用次数和调用时间的监控中心 container:服务运行容器 dubbo调用关系说明: 1、服务容器负责启动,加载,运行服务提供者 2、服务提供者在启动时,向注册中心注册自己提供的服务 3、服务消费者在启动时,向注册中心订阅自己所需的服务 4、注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者 5、服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果的调用失败,则选择另一台调用 6、服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心 注册中心: zookeeper(建议使用2.3.3以上版本) dubbo未对zookeeper服务端做任何侵入修改,只需安装原生的zookeeper服务器即可.所有注册中心逻辑适配都在调用zookeeper客户端时完成 zookeeper注册中心安装 笔者环境: a)虚拟机centos IP地址:[192.168.1.107] b)zookeeper zk版本: [zookeeper-3.4.6]
1、修改/etc/hosts文件添加host"192.168.1.107 zk-provider" 如下
[root@localhost local]# vim /etc/hosts [root@localhost local]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.107 zk-provider
2、解压zookeeper-3.4.6到/usr/local/
[root@localhost zookeeper-3.4.6]# pwd /usr/local/zookeeper-3.4.6
3、在/usr/local/zookeeper-3.4.6目录下创建目录:
[root@localhost zookeeper-3.4.6]# mkdir logs [root@localhost zookeeper-3.4.6]# mkdir data
4、将/usr/local/zookeeper-3.4.6/conf目录下的zoo_sample.cfg复制一份,命名为zoo.cfg
[root@localhost conf]# pwd /usr/local/zookeeper-3.4.6/conf [root@localhost conf]# cp zoo_sample.cfg zoo.cfg
5、修改zoo.cfg文件内容如下:
[root@localhost conf]# cat zoo.cfg tickTime=2000 #initLimit这个配置项是用来配置zookeeper接口客户端 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper-3.4.6/data dtaLogDir=/usr/local/zookeeper-3.4.6/logs clientPort=2181 server.1=zk-provider:2888:3888
说明:server.1=zk-provider:2888:3888等同于server.1=192.168.1.107:2888:3888
6、在/usr/local/zookeeper-3.4.6/data下创建myid文件,输入当前服务机器所对应的编号
[root@localhost data]# pwd /usr/local/zookeeper-3.4.6/data [root@localhost data]# ls myid [root@localhost data]# cat myid 1 [root@localhost data]#
7、将zookeeper配置到环境变量
[root@localhost data]# vim /etc/profile
在文件末尾增加
# zookeeper env export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6 export PATH=$ZOOKEEPER_HOME/bin:$PATH
保存退出,使配置生效
[root@localhost data]# source /etc/profile
8、在防火墙打开要用到得到端口2181、2888、3888
[root@localhost data]# vim /etc/sysconfig/iptables
在COMMIT之前增加如下:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
重启防火墙
[root@localhost data]# service iptables restart [root@localhost data]# service iptables status
9、启动zookeeper
[root@localhost zookeeper-3.4.6]# /usr/local/zookeeper-3.4.6/bin/zkServer.sh start JMX enabled by default Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED # 查看状态 [root@localhost zookeeper-3.4.6]# zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg Mode: standalone # 查看输出的服务信息 [root@localhost zookeeper-3.4.6]# tail -500f /usr/local/zookeeper-3.4.6/bin/zookeeper.out
10、配置zookeeper随机启动
[root@localhost zookeeper-3.4.6]# vim /etc/rc.local # 增加如下命令 /usr/local/zookeeper-3.4.6/bin/zkServer.sh start
dubbo服务发布与调用 1、服务发布
<?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="ws-server-user" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry protocol="zookeeper" address="192.168.1.107:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <bean id="userFacade" class="com.ws.server.UserFacadeImpl" /> <!-- 用户服务接口 --> <dubbo:service interface="com.ws.facade.UserFacade" ref="userFacade" /> </beans>
2、服务调用
<?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="ws-client-invoke-user" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <!-- 注册中心地址 --> <dubbo:registry protocol="zookeeper" address="192.168.1.107:2181" /> <!-- 用户服务接口 --> <dubbo:reference interface="com.ws.facade.UserFacade" id="userFacadeClient" check="false"/> </beans>
实例demo: http://files.cnblogs.com/files/dennisit/dubbo-ws.zip 转载请注明出处:[/article/4929424.html]
相关文章推荐
- [Java5新特性]反射
- 一个项目紧张结束之后
- 【百度之星初赛2】连接的管道(Kruskal最小生成树)
- http、TCP/IP协议与socket之间的区别
- 增强现实第一步:如何使用相机定标结果配置OpenGL流水线
- C#登录成功提示和登录成功后进入新的窗口界面代码:
- 使用Autolayout实现UITableView的Cell动态布局和高度动态改变
- Codeforces PROB training 31.MAY
- JavaScript之this,new,delete,call,apply
- jsp web.xml文件的作用及基本配置
- 没有理由怀疑自己 从心态开始
- 【百度之星初赛2】棋盘占领(深搜|广搜)
- 制定测试计划
- KeilMDK编译后输出信息解释
- ROM RAM NVRAM FLASH NAND
- hdu 1166 敌兵布阵
- 写给2015年的自己
- nginx优化 突破十万并发
- jax-ws入门教程
- 【数据结构】用C++编写栈及基本操作(包括入栈,出栈,获得栈顶,摧毁,清空等等)