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

来源:互联网 发布:mac os x安装光盘映像 编辑:程序博客网 时间:2024/06/04 18:53

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环境
  1. 上传zookeeper的压缩文件

    tar zxvf zookeeper-3.3.3.tar.gzcd zookeeper-3.3.3cp conf/zoo_sample.cfg conf/zoo.cfg
  2. 配置zoo.cfg(这里只用单机的配置)

    #改掉其中的dataDir即可,自定义想要存储文件的位置dataDir=/dubbo/zookeeper/
  3. 启动

    ./bin/zkServer.sh start# 停止./bin/zkServer.sh stop

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

搭建Redis环境

  1. 上传redis压缩文件
  2. 解压, 然后启动(很简单,略)

搭建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.XxxServiceRemotejava.rmi.RemoteRemote接口,而使用Spring的RmiInvocationHandler接口暴露服务,和Spring兼容。
0 0
原创粉丝点击