具有强制可伸缩性(主动-主动-...-主动)和排序的 JMS?
JMS with mandatory scalability (Active-Active-...-Active) and ordering?
我正在寻找必须具有以下附加特征的 JMS 提供程序:
- 成为多代理,其中所有代理都必须处于活动状态(无单点故障)
- 仅两台机器的可扩展性就足以满足我们的需求
- 能够保证订购(如果 1 个生产者 + 1 个消费者)
我们已经尝试过 ActiveMQ 5.14,这似乎可以满足我们的两个要求,但只有在单独考虑时才可以:
- "ActiveMQ: To provide massive scalability of a large messaging fabric you typically want to allow many brokers to be connected together into a network so that you can have as many clients as you wish all logically connected together - and running as many message brokers as you need based on your number of clients and network topology. ... If you are using client/server or hub/spoke style topology then the broker you connect to becomes a single point of failure which is another reason for wanting a network (or cluster) of brokers so that you can survive failure of any particular broker, machine or subnet"
- "Ordering: Total message ordering is not preserved with networks of brokers. Total ordering works with a single consumer but a networkBridge introduces a second consumer. In addition, network bridge consumers forward messages via producer.send(..), so they go from the head of the queue on the forwarding broker to the tail of the queue on the target. If single consumer moves between networked brokers, total order may be preserved if all messages always follow the consumer but this can be difficult to guarantee with large message backlogs."
使用Kafka,下一代分布式消息传递,因为它易于扩展,提供高吞吐量,可以将消息持久化到磁盘并确保有序性。
使用kafka,您可以增加节点数量以阻止节点故障。如果您无法删除 JMS 传输消息,如图所示
JMS Producer(s) -> Kafka Cluster -> JMS Subscriber (s)
见。
我正在寻找必须具有以下附加特征的 JMS 提供程序:
- 成为多代理,其中所有代理都必须处于活动状态(无单点故障)
- 仅两台机器的可扩展性就足以满足我们的需求
- 能够保证订购(如果 1 个生产者 + 1 个消费者)
我们已经尝试过 ActiveMQ 5.14,这似乎可以满足我们的两个要求,但只有在单独考虑时才可以:
- "ActiveMQ: To provide massive scalability of a large messaging fabric you typically want to allow many brokers to be connected together into a network so that you can have as many clients as you wish all logically connected together - and running as many message brokers as you need based on your number of clients and network topology. ... If you are using client/server or hub/spoke style topology then the broker you connect to becomes a single point of failure which is another reason for wanting a network (or cluster) of brokers so that you can survive failure of any particular broker, machine or subnet"
- "Ordering: Total message ordering is not preserved with networks of brokers. Total ordering works with a single consumer but a networkBridge introduces a second consumer. In addition, network bridge consumers forward messages via producer.send(..), so they go from the head of the queue on the forwarding broker to the tail of the queue on the target. If single consumer moves between networked brokers, total order may be preserved if all messages always follow the consumer but this can be difficult to guarantee with large message backlogs."
使用Kafka,下一代分布式消息传递,因为它易于扩展,提供高吞吐量,可以将消息持久化到磁盘并确保有序性。
使用kafka,您可以增加节点数量以阻止节点故障。如果您无法删除 JMS 传输消息,如图所示
JMS Producer(s) -> Kafka Cluster -> JMS Subscriber (s)
见