• 共支持四种消息队列: kafka, rabbitmq, rocketmq, redis的pub/sub

    克隆项目

    git clone https://rdc.hand-china.com/gitlab/HAPCloud/hap-event-store-service.git
    

    创建用户和数据库

    CREATE USER 'hapcloud'@'%' IDENTIFIED BY "handhand";
    CREATE DATABASE hap_event_service DEFAULT CHARACTER SET utf8;
    GRANT ALL PRIVILEGES ON hap_event_service.* TO hapcloud@'%';
    FLUSH PRIVILEGES;
    

    初始化数据库

    sh init-local-database.sh
    

    配置使用的消息队列类型

    修改EventStoreApplication上的@MessageQueue(QueueType.kafka)。
    支持kafka,rabbitmq,rocketmq,redis的pub/sub四种
    

    接口使用

    接口: POST /v1/events/
    参数: Event的json形式
    返回值: Event的uuid(string类型)
    Event实体内容:
    public class Event {
       private String uuid;
       private String type;
       //发布事件的服务的serviceId,例如hap-user-service
       private String publisherServiceId;
       private List<Message> messages;
       
       public static class Message {
           /**
            * 要发送给消息队列的通道名
            */
           private String topicName;
           /**
            * 要发送给消息队列的消息内容(json格式)
            */
           private String payload;
       }
     }
    
        业务服务需要提供的接口为GET /v1/api/eventRecords/{eventId}/{type}
        查询接口返回值应为两种
        1. **finished**: 事件已完成
        2. **detached**: 事件已取消