发布者如何在多个订阅者之间共享数据?

How a publisher can share data among multiple subscribers?

所有已发布的数据项都不能删除。所以,每个数据项都很重要。

3 个发布者和 60 个订阅者,分布。

第一个发布者向 20 个订阅者提供数据项,数据项类型为:

type struct{
   name  string
   age integer
   gender boolean
}

第二个发布者向另外 20 个订阅者提供数据项,数据项类型为:

type struct{
   ledStatus  boolean
   socketStatus boolean
}

第三个发布者向另外 20 个订阅者提供数据项,数据项类型为:

type struct{
   range integer
   boundary integer
}

任何发布者向多个订阅者发送数据的通信机制应该是什么?订户更喜欢收到有关新项目的通知,以避免轮询流量....

您要查找的是分布式事务日志。一个融入单个序列化流,每条消息都由一个大的递增标识符索引,比如一个 128 位整数。

当消费者下线时,它可以将自己注册为注册过程的一部分,通过提供上次处理的消息的 ID 来请求自上次处理的消息以来的所有消息。

生产者将他们的消息发送到日志中。他们负责检查并确保他们的消息已被接受到日志中,如果被拒绝则重新尝试(很少发生但有可能)。

分布式事务日志本身可以由中央数据库提供(数据库本质上是加速事务日志),或者您可以按照 algorithm/protocol 实现自己的,例如 RAFT..