关于后端:elixir-0071-功能强大的消息处理库-Broadway-1

5次阅读

共计 413 个字符,预计需要花费 2 分钟才能阅读完成。

互联网产品往往要面对从天而降的微小申请量,而后端业务可能反对的并发申请数量是无限的。罕用的架构是首先让申请进入音讯队列,例如 Kafka,RabbitMQ,GooglePubSub 等等。同时后端服务最为消费者分批地从音讯队列中获取本人可能解决的音讯。

这里就波及到一些简单问题,例如:

  1. 音讯解决的原子性,或者叫事务性。即一个音讯解决到一半出错了,那么这个音讯不应该被从音讯队列中删除。
  2. 音讯的批处理,尤其是网络提早较高的状况下,批量生产音讯能够缩小很多等待时间。
  3. 防止音讯失落,在出错的时候音讯不应该失落。
  4. “软着陆”,或者说正确处理关机,在关机前应该做好筹备工作。

以上这些性能 Broadway 都提供了,并且还有更多。

而要用好 Broadway,首先须要相熟 GenStage。GenStage 是一个更加根底的库,应用它能够定义出音讯的消费者和生产者。

应用 GenStage 定义出的生产者和消费者实质上是一个个过程,蕴含了特定的预设的行为模式。

正文完
 0