dubbo与zookeeper的使用

远程调用分析
dubbo的使用方法,配置超时时间。
zookeeper的安装
dubbo的监控中心
Restful编码风格:的url是没有后缀的。
 
什么是服务中间件,有什么作用?
工程改造为基于soa架构:服务层与表现层分离,服务层只处理业务逻辑,表现层使用springMVC实现,所有的数据都是通过调用服务层来获取,不直接操作数据库。Dao层和server层作为一个独立的工程存在,打成war包部署到单独的服务器上。
 
服务需要对外暴露:
服务所在主键的的ip和端口,其实就是在注册中心注册,别人才能访问到。
 
Dubbo就是资源调度和治理中心的管理工具。
dubbo是服务中间件,为什么需要使用dubbo?
理顺调用关系:表现层----dubbo----服务层,统计出调用次数与调用关系。
Dubbo作用:管理服务,系统之间通讯。
当我们初始化spring容器的时候,服务就发布了,服务在spring的配置文件中进行了注册。
服务层发布服务,表现层调用服务(如何发布服务,如何调用服务?)。
 
由于宜立方商城是基于soa的架构,表现层和服务层是不同的工程。所以要实现商品列表查询需要两个系统之间进行通信。
如何实现远程通信?
1、Webservice:效率不高基于soap协议。项目中不推荐使用。
2、使用restful形式的服务:http+json。很多项目中应用。如果服务太多,服务之间调用关系混乱,需要治疗服务

3、使用dubbo。使用rpc协议进行远程调用,直接使用socket通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数



节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
调用关系说明:
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Dubbo使用方法
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。
1)将服务定义部分放在服务提供方remote-provider.xml,并在提供方增加暴露服务配置<dubbo:service>

2)将服务引用部分放在服务消费方remote-consumer.xml,在消费方增加引用服务配置<dubbo:reference>。

发布服务:
<!-- 和本地服务一样实现远程服务 -->
<bean id="xxxService" class="com.xxx.XxxServiceImpl" />
<!-- 增加暴露远程服务配置 -->
<dubbo:service interface="com.xxx.XxxService" ref="xxxService" />

调用服务:
<!-- 增加引用远程服务配置 -->
<dubbo:reference id="xxxService" interface="com.xxx.XxxService" />
<!-- 和本地服务一样使用远程服务 -->
<bean id="xxxAction" class="com.xxx.XxxAction">
	<property name="xxxService" ref="xxxService" />
</bean>
    <!-- 使用dubbo发布服务 -->
    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="e3shop" />
    <dubbo:registry protocol="zookeeper" address="192.168.88.129:2181" />
    <!-- 用dubbo协议在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880" />
    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="cn.e3mall.service.ItemService" ref="itemServiceImpl" />
<!-- 引用dubbo服务 -->
<dubbo:application name="e3shopweb"/>
<dubbo:registry protocol="zookeeper" address="192.168.88.128:2181"/>
<dubbo:reference interface="cn.e3mall.service.ItemService" id="mItemService" />
Zookeeper介绍(集群管理工具)
注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。
Zookeeper是Apacahe Hadoop的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用。
Zookeeper:
1、可以作为集群的管理工具使用。
2、可以集中管理配置文件
 
Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。
安装步骤:
第一步:安装jdk
第二步:把zookeeper的压缩包上传到linux系统。
第三步:解压缩压缩包
tar -zxvf zookeeper-3.4.6.tar.gz
第四步:进入zookeeper-3.4.6目录,创建data文件夹。
第五步:把zoo_sample.cfg改名为zoo.cfg
[root@localhost conf]# mv zoo_sample.cfg zoo.cfg
第六步:修改data属性:dataDir=/root/zookeeper-3.4.6/data
第七步:启动zookeeper
[root@localhost bin]# ./zkServer.sh start
关闭:[root@localhost bin]# ./zkServer.sh stop
查看状态:[root@localhost bin]# ./zkServer.sh status
注意:需要关闭防火墙
 
发布服务:
1、在e3-manager-Service工程中添加dubbo依赖的jar包。
2、在spring的配置文件中添加dubbo的约束,然后使用dubbo:service发布服务。
引用服务:
修改springmvc.xml,在springmvc的配置文件中添加服务的引用。
 
Dubbo监控中心
需要安装tomcat,然后部署监控中心即可。
1、部署监控中心:
cp dubbo-admin-2.5.4.war apache-tomcat-7.0.47/webapps/dubbo-admin.war
2、启动tomcat
3、访问http://192.168.25.167:8080/dubbo-admin/
用户名:root密码:root
 
如果监控中心和注册中心在同一台服务器上,可以不需要任何配置。
如果不在同一台服务器,需要修改配置文件:
/root/apache-tomcat-7.0.47/webapps/dubbo-admin/WEB-INF/dubbo.properties

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值