您的位置:首页 > 其它

Dubbo学习笔记(二) 环境配置

2017-03-17 17:18 423 查看

Dubbo学习笔记(二) 环境配置:

Dubbo支持的注册策略

Dubbo支持四种容器,包括Zookeeper, Redis, Multicast, Simple。其中推荐生产使用的是Zookeeper, Redis. 本次我们使用Zookeeper, Redis, Multicast。通讯协议支持Dubbo协议, Rmi协议等。本次我们使用Dubbo协议, Rmi协议.

环境配置

IPSystemService
192.168.23.128CentOsZookeeper, DubboProvider
192.168.23.2WindowsDubboConsumer

搭建环境:

搭建Zookeeper环境

上传zookeeper的压缩文件

tar zxvf zookeeper-3.3.3.tar.gz
cd zookeeper-3.3.3
cp conf/zoo_sample.cfg conf/zoo.cfg


配置zoo.cfg(这里只用单机的配置)

#改掉其中的dataDir即可,自定义想要存储文件的位置

dataDir=/dubbo/zookeeper/


启动

./bin/zkServer.sh start

# 停止

./bin/zkServer.sh stop


官方说明, 还是蛮详细的。

搭建Redis环境

上传redis压缩文件

解压, 然后启动(很简单,略)

搭建Multicase

这个注册中心有如下特点:

* 不需要启动任何中心节点,只要广播地址一样,就可以互相发现。

* 组播受网络结构限制,只适合小规模应用或开发阶段使用。

* 组播地址段: 224.0.0.0 - 239.255.255.255

提供方启动时广播自己的地址,消费放启动时订阅请求,收到服务方提供的地址后,进行连接并RPC调用。

协议的特点

Dubbo协议特点

ubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。

Dubbo缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。

Rmi协议:

RMI协议采用JDK标准的java.rmi.*实现,采用阻塞式短连接和JDK标准序列化方式。

如果正在使用RMI提供服务给外部访问(公司内网环境应该不会有攻击风险),同时应用里依赖了老的common-collections包(dubbo不会依赖这个包,请排查自己的应用有没有使用)的情况下,存在反序列化安全风险。

请检查应用:

将commons-collections3 请升级到3.2.2版本:https://commons.apache.org/proper/commons-collections/release_3_2_2.html

将commons-collections4 请升级到4.1版本:https://commons.apache.org/proper/commons-collections/release_4_1.html

新版本的commons-collections解决了该问题

果服务接口继承了java.rmi.Remote接口,可以和原生RMI互操作,即:

提供者用Dubbo的RMI协议暴露服务,消费者直接用标准RMI接口调用,

或者提供方用标准RMI暴露服务,消费方用Dubbo的RMI协议调用。

如果服务接口没有继承java.rmi.Remote接口,

缺省Dubbo将自动生成一个com.xxx.XxxServiceRemote的接口,并继承java.rmi.Remote接口,并以此接口暴露服务,但如果设置了,将不生成Remote接口,而使用Spring的RmiInvocationHandler接口暴露服务,和Spring兼容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: