Skip to content

Latest commit

 

History

History
205 lines (142 loc) · 6.32 KB

broker.md

File metadata and controls

205 lines (142 loc) · 6.32 KB

Broker模块

本节介绍WeEvent的子模块Broker的详细安装步骤。快速安装请参见WeEvent快速安装 。在一台机器上详细安装,和通过快速安装然后把目标路径中的broker子目录打包拷贝到这台机器,效果是一样的。

BrokerWeEvent的核心子模块,负责事件的发布订阅以及对区块链FISCO-BCOS的访问。支持RESTfulJsonRPCSTOMPMQTT多种接入协议,也提供了Java SDK

如果是第一次安装WeEvent,参见这里的系统要求 。以下安装以CentOS 7.2为例。

前置条件

  • 区块链FISCO-BCOS节点

    必选配置。Broker通过区块链FISCO-BCOS持久化数据。

    推荐使用FISCO-BCOS 2.1.0版本。具体安装步骤,请参见FISCO-BCOS 2.1.0安装

  • Redis缓存

    可选配置。

    推荐使用Redis 5.0+版本。具体安装步骤,请参见Redis安装

  • Zookeeper服务

    可选配置。当使用了JsonRPC或者RESTful协议的订阅功能起来Zookeeper主备切换。

    推荐使用Zookeeper 3.5.5版本。具体安装步骤,请参见Zookeeper安装

获取安装包

github下载安装包weevent-broker-1.1.0.tar.gz,并且解压到/usr/local/weevent/下。

$ cd /usr/local/weevent/
$ wget https://github.com/WeBankFinTech/WeEvent/releases/download/v1.1.0/weevent-broker-1.1.0.tar.gz
$ tar -zxf weevent-broker-1.1.0.tar.gz

如果github下载速度慢,可以尝试国内下载链接

解压后的目录如下:

$ cd ./weevent-broker-1.1.0
$ tree  -L 2
|-- apps
|   `-- weevent-broker-1.1.0.jar
|-- broker.sh
|-- check-service.sh
|-- conf
|   |-- v2
|   |-- application-prod.properties
|   |-- application.properties
|   |-- banner.txt
|   |-- ca.crt
|   |-- client.keystore
|   |-- fabric
|   |-- fisco1.3-sample.properties
|   |-- fisco.properties
|   |-- log4j2.xml
|   |-- server.p12
|   `-- weevent.properties
|-- deploy-fabric-topic-control.sh
|-- deploy-topic-control.sh
|-- gen-cert-key.sh
`-- lib

修改配置文件

  • 区块链FISCO-BCOS节点

    • 区块链节点配置文件fisco.properties

      修改nodes=127.0.0.1:20200配置项,nodes为区块链节点channel访问入口。

    • 访问节点的证书文件

      2.0版本的证书文件ca.crtnode.crtnode.key放在./conf/v2目录下。

      1.3版本的证书文件ca.crtclient.keystore放在./conf目录下。

      证书文件生成及获取请参见FISCO-BCOS 2.0安装

  • 部署系统合约

    运行脚本./deploy-topic-control.sh 部署合约。例如:

      $ ./deploy-topic-control.sh
        2019-08-19 17:59:31 topic control address in every group:
        1	0xc6fc72f0fe6ebf9881a2103f2829d0e98d020062	[new]
        2	0xd85d3345f8a21f4fd6197c72266ae3e3106e5e1c	[new]

    脚本会检查之前是否部署过合约,重复执行不影响。

  • 配置Broker监听端口

    可选配置。./conf/application-prod.propertiesserver.port配置项,默认监听端口7000,根据业务需要配置。

  • 配置Redis缓存

    可选配置。./conf/application-prod.propertiesspring.redis.*配置项 ,配置缓存可以提高WeEvent的通知性能。

    # redis数据库索引(默认为0)
    spring.redis.database=0
    # redis服务访问链接
    spring.redis.host=${ip}
    # redis服务访问端口
    spring.redis.port=${port}
    # redis服务访问密码 为了安全,必须使用密码访问
    spring.redis.password=${password}
    # 连接超时时间(毫秒)
    spring.redis.timeout=5000

    可选配置。./conf/weevent.properties中基于内存的缓存配置项

    # 基于内存的缓存容量,当缓存数据大于这个值时,使用LRU淘汰策略
    lru.cache.capacity=65536
  • 配置Zookeeper服务

    可选配置。配置文件./conf/weevent.propertiesbroker.zookeeper.*配置项。

    # zookeeper服务访问链接 示例:127.0.0.1:8080
    broker.zookeeper.ip=${ip}:${port}
    # zookeeper上数据存储路径
    broker.zookeeper.path=/event_broker
    # 连接zookeeper超时时间 单位:毫秒
    broker.zookeeper.timeout=3000
  • 配置IP白名单

    可选配置。./conf/weevent.properties中配置了值就会开启白名单验证。

    # 配置ip白名单,多个ip使用分号分割 示例:127.0.0.1;127.0.0.2
    ip.check.white-table=${ip}

    ip.check.white-table默认为空,允许任何客户端IP访问。

  • 配置STOMP

    可选配置。./conf/weevent.propertiesstomp.*配置项。

    # 发送心跳时间间隔 单位:秒
    stomp.heartbeats=30
  • 配置MQTT Broker

    可选配置。配置文件./conf/weevent.propertiesmqtt.*配置项。

    # 客户端使用MQTT协议访问MQTT Broker端口
    mqtt.broker.port=7001
    # 客户端使用WebSocket协议访问MQTT Broker端口
    mqtt.websocket.port=7002
    # 心跳时间 单位:秒
    mqtt.broker.keepalive=60
    # 客户端使用WebSocket协议访问MQTT Broker链接
    mqtt.websocket.path=/weevent/mqtt

更多系统详细配置参见配置说明

服务启停

  • 启动服务

    通过./broker.sh start命令启动服务,正常启动如下:

    $ ./broker.sh start
    start broker success (PID=89054)
    add the crontab job success

    通过./broker.sh stop命令停止服务。

    进程启动,会自动添加crontab监控任务./broker.sh monitor

  • 验证服务

    通过./check-service.sh 命令检查服务功能是否正常。

    $ ./check-service.sh
    check broker service
    broker service is ok

加入Nginx反向代理

将部署好的Broker配置到Nginx提供对外服务。Nginx子模块的安装及详细配置参见Nginx模块安装及配置

如需部署其更多实例,将上述步骤安装好的Broker目录拷贝到目标位置,启动即可。