Broker模块

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

因为区块链使用的加密算法很多OpenJDK版本没有提供。所以在各Java启动脚本里有设置JAVA_HOME变量让用户设置符合要求的JDK

前置条件

  • Zookeeper服务

    必选配置。服务注册和发现会使用到。

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

  • 区块链FISCO-BCOS节点

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

获取安装包

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

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

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

解压后的目录如下:

$ cd ./weevent-broker-1.6.0
$ tree  -L 1
.
|-- apps
|-- broker.sh
|-- check-service.sh
|-- conf
|-- deploy-fabric-topic-control.sh
|-- deploy-topic-control.sh
|-- gen-cert-key.sh
`-- lib

修改配置文件

  • 配置Zookeeper服务

    可选配置。./conf/application-prod.propertiesspring.cloud.zookeeper配置项。

    # spring cloud zookeeper
    spring.cloud.zookeeper.enabled=true
    spring.cloud.zookeeper.connect-string=127.0.0.1:2181
    
  • 区块链FISCO-BCOS节点

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

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

    • 访问节点的证书文件

      2.x版本的证书文件ca.crtsdk.crtsdk.key放在./conf/conf目录下。

      国密版需要的证书文件gmca.crt、gmensdk.crt、gmensdk.key、gmsdk.crt、gmsdk.key

      证书目录在FiscoBcos安装目录下nodes/127.0.0.1/sdk/, 可直接将该目录下所有内容拷贝到 ./conf/conf下。

      cp -rf fisco安装路径/nodes/127.0.0.1/sdk/* ./conf/conf
      

      证书文件生成及获取请参见FISCO-BCOS 2.x安装FISCO-BCOS SDK配置说明

  • 部署系统合约

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

    $ ./deploy-topic-control.sh
    2020-03-06 10:33:37 topic control address in every group:
    topic control address in group: 1
            version: 10     address: 0x23df89a2893120f686a4aa03b41acf6836d11e5d     new: true
    topic control address in group: 2
            version: 10     address: 0x23df89a2893120f686a4aa03b41acf6836d11e5d     new: true
    

    脚本会检查之前是否部署过合约,重复执行只是显示已有数据。

  • 配置Broker监听端口

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

  • 配置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 over tcp端口
    mqtt.broker.tcp.port=7001
    # 心跳时间 单位:秒
    mqtt.broker.keepalive=60
    
  • 启动用户身份认证、权限控制

    可选配置,默认不开启,目前支持MQTT协议,后续会扩展支持其他协议。需要在DB里配置用户名密码,可通过外部工具处理,后续提供接口增删。

    spring.security.user.auth=false
    spring.security.user.topic.auth=false
    

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

服务启停

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

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

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

进程启动后,会自动加入集群,同时添加crontab监控任务./broker.sh monitor