dubbo发布web服务实例
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
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.107 zk-provider
2、解压zookeeper-3.4.6到/usr/local/
[root@localhost zookeeper-3.4.]# pwd
/usr/local/zookeeper-3.4.
3、在/usr/local/zookeeper-3.4.6目录下创建目录:
[root@localhost zookeeper-3.4.]# mkdir logs
[root@localhost zookeeper-3.4.]# mkdir data
4、将/usr/local/zookeeper-3.4.6/conf目录下的zoo_sample.cfg复制一份,命名为zoo.cfg
[root@localhost conf]# pwd
/usr/local/zookeeper-3.4./conf
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
5、修改zoo.cfg文件内容如下:
[root@localhost conf]# cat zoo.cfg
tickTime=
#initLimit这个配置项是用来配置zookeeper接口客户端
initLimit=
syncLimit=
dataDir=/usr/local/zookeeper-3.4./data
dtaLogDir=/usr/local/zookeeper-3.4./logs
clientPort=
server.=zk-provider::
说明: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./data
[root@localhost data]# ls
myid
[root@localhost data]# cat myid [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.]# /usr/local/zookeeper-3.4./bin/zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper-3.4./bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
# 查看状态
[root@localhost zookeeper-3.4.]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.4./bin/../conf/zoo.cfg
Mode: standalone
# 查看输出的服务信息
[root@localhost zookeeper-3.4.]# tail -500f /usr/local/zookeeper-3.4./bin/zookeeper.out
10、配置zookeeper随机启动
[root@localhost zookeeper-3.4.]# vim /etc/rc.local
# 增加如下命令
/usr/local/zookeeper-3.4./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 转载请注明出处:[http://www.cnblogs.com/dennisit/p/4542901.html]
dubbo发布web服务实例的更多相关文章
- dubbo发布webservice服务
dubbo发布webservice服务 学习了:https://blog.csdn.net/zhangyunpengchang/article/details/51567127 https://blo ...
- dubbo 发布 RPC 服务
Dubbo 发布 RPC 服务 建立服务提供者项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> & ...
- spring boot-18.使用dubbo发布分布式服务
我们新建两个项目分别模拟服务的提供者和服务的消费者,spring boot 集成dubbo主要分为以下几个步骤: 1.安装zookeeper 推荐使用docker 安装,使用以下几个命令即可完成 (1 ...
- svn + nginx unit + python3自动化发布web服务方法
本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...
- (七)CXF之与spring整合发布web服务
一.需求分析 用spring发布服务 二.案例 2.1 引入maven依赖 <dependencies> <!-- 添加Spring支持 --> <dependency& ...
- IIS7.0发布Web服务-0001
配置错误 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的 (overrideModeDefault="Deny"),或者是通过包含 ove ...
- Jetty 发布web服务
Jetty provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, J ...
- 在Eclipse中,用XFire发布web服务
配置及相关说明见http://www.cnblogs.com/xshy3412/archive/2007/09/29/910848.html 仅确定发布xfire需要的最基本的jar activati ...
- VS2015发布web服务
一.IIS中 ①添加网站 二.VS2015 ①右键解决方案→发布: ②自定义,设置配置文件名称: ③ ④发布 三.IIS中浏览(图片的ip地址是自己,上面的ip是截图别人的,所以不一样)
随机推荐
- 多线程JAVA篇(一)
解析AsyncTask源码之前,首先讲述与之相关的Java线程知识: 知识点清单 1.Thread类 2.Runnable接口 3.Callable接口 4.synchronized关键字 5.vol ...
- SQL语句一次INSERT多条记录的方法
1.SQL Server或MySQL中: INSERT INTO `userTable` (`user_id`, `user_name`) VALUES (, 'dsf'), (, 'fgy'), ( ...
- APNS推送通知消息负载内容和本地格式字符串
来源:http://hi.baidu.com/tangly888/blog/item/62948520121870559358074f.html 翻译苹果文档 地址: 翻译:tangly http: ...
- 正确理解DTO、值对象和POCO
今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和POCO之间的区别. 所谓DTO就是数据传输对象(Data Transfer Objec ...
- 企业模式之Unit Of Work模式
在开始UnitOfWork模式之前有必要回顾下我们耳熟能详的Data Access Object(DAO)模式,即数据访问对象.DAO是一种简单的模式,我们构建应用的时候经常会使用到它,它的功能就是将 ...
- 省市区县镇级联数据JS版
前言:网站开发经常会涉及到报名,报名通常就会有地区级联的要求.如下所示.做这个功能就必须要有数据支撑.昨天努力了一天,从网上鼓捣了一份数据.分享下.纯技术性分享,非盈利的.如果有侵权的地方请知会,马上 ...
- IOS笔记之UIKit_UIAlertView、UIActionSheet
//首先必须继承协议 @interface TRViewController : UIViewController<UIAlertViewDelegate,UIActionSheetDelega ...
- JqueryEasyUI浅谈---视频教程公布
http://pan.baidu.com/s/1pJqGXez 前两天我在博客园发了一个关于JqueryEasyUI浅谈本地化应用的博客,我简单的介绍了JqueryEasyUI的应用,今天我录制了了一 ...
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...
- Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater
一.实体简介 实体用于在 Microsoft Dynamics CRM 中建立业务数据模型和管理业务数据.例如,可以使用客户.市场活动和事件(案例)等实体跟踪和支持销售.市场营销和服务活动.实体具有一 ...