Dubbo学习笔记(二) 环境配置
2017-03-17 17:18
423 查看
Dubbo学习笔记(二) 环境配置:
Dubbo支持的注册策略
Dubbo支持四种容器,包括Zookeeper, Redis, Multicast, Simple。其中推荐生产使用的是Zookeeper, Redis. 本次我们使用Zookeeper, Redis, Multicast。通讯协议支持Dubbo协议, Rmi协议等。本次我们使用Dubbo协议, Rmi协议.环境配置
IP | System | Service |
---|---|---|
192.168.23.128 | CentOs | Zookeeper, DubboProvider |
192.168.23.2 | Windows | DubboConsumer |
搭建环境:
搭建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兼容。
相关文章推荐
- HADOOP的学习笔记 (第三期) eclipse 配置hadoop开发环境 .
- 【OpenCV学习笔记】一、开发环境配置(windows8.1+opencv3.2.0+vs2013)
- 【Andriod 学习笔记1】--环境安装与配置
- Python 学习笔记之配置开发环境
- Scala学习笔记(二) - 环境配置
- Kinect开发学习笔记之(三)Kinect开发环境配置 (转)
- hadoop学习笔记3 hadoop2.5.2单机模式环境配置和eclipse运行
- OpenCV学习笔记——OpenCV3.1.0+VS2015开发环境配置
- VMWare之网络环境配置学习笔记
- PHP学习笔记(一)PHP环境配置
- 学习笔记二 : 系统环境配置
- Hadoop学习笔记—1.基本介绍与环境配置
- Linux学习笔记----配置JDK环境
- Java学习笔记--Lesson1(Java跨平台原理的剖析和Java环境变量的配置
- Python学习笔记1:环境配置
- Computer Vision & Image Processing - 国外opencv学习笔记01-环境配置:在Visual Studio2017中配置
- Node学习笔记——eclipse配置nodejs开发环境
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
- 安卓设备驱动开发学习笔记1——开发环境配置
- Activiti学习笔记1 — 下载与开发环境的配置