Solon v2.8.6

使用分布式事件 - 特性与策略

</> markdown

特性与策略 | 发产与消费 | 多通道示例 | 生态 / Solon Cloud Event [传送]

1、情况简介

使用分布式事件(或事件总线)可实现业务水平扩展、分布式事务效果(目前适配有:local, water, rabbitmq, rocketmq, mqtt, kafka,等)。

  • 主要通过 CloudEventServicePlus 接口进行适配
  • 使用 CloudClient.event() 获取适配实例

2、五个特性

  • 可确认(ack)

支持是否成功消费的确认机制

  • 可重试守护(retry)

消费失败后不断重发确保最终成功。此特性可支持SAGA分布式事务模型,实现最终一致性。事件消费时,注要幂等性控制。

  • 可自动延时

消费失败后会自动延时(目前支持有: local, water, rabbitmq, rocketmq, rocketmq5, aliyun-ons)

  • 可定时事件

比如,可设定10天后执行

  • 可多插件共存(多通道模式)

支持多个插件同时存在,按业务做不同安排。例如:业务消息用 RabbitMQ,IoT消息用 Mqtt,日志用 kafka。

支持情况

适配框架确认与重试守护自动延时定时(或延时)事务
local支持支持支持/
water支持支持支持/
folkmq支持支持支持支持
rabbitmq支持支持支持支持
activemq支持支持支持支持
rocketmq支持半支持半支持(最长2小时)/
rocketmq5支持支持支持(有最长时限)支持
kafka支持//支持
mqtt支持///
jedis////

3、认识注解 @CloudEvent

属性说明
topic主题
tag标签
level订阅级别(instance, cluster)
group分组
channel通道
qos服务质量(0,最多交付一次;1,至少交付一次;2,只交付一次)
  • level: instance(实例级,以实例 ip:port 订阅),cluster(集群级,以 appName 订阅)
  • channel:多通道时有效
  • qos:mqtt 时有效

4、失败自动延时策略(不同框架会有不同)

失败次数延时
00s
15s
210s
330s
41m(即 1 分钟)
52m
65m
710m
830m
91h(即 1 小时)
n2h

5、增强模式

详见: 《生态 / solon cloud / cloudevent-plus-solon-plugin》

6、多通道模式

详见: demo9039-event_multi_channel2

7、代码演示