Apache Helix能够在节点之间重新平衡数据吗? 为了考试,我正在开发一个内存数据库,其中一些分区/分片数据需要移动到另一个节点。消息传递或应用程序属性存储是解决此问题的方法,还是有必要为节点之间的数据流找到另一种解决方案?
关于后者,使用像RabbitMQ或Apache Kafka这样的MessageQueues/Systems是否舒适和高效?
免责声明:我不知道Helix或Rabbit
如果你使用 Kafka,它将持久保存在服务器上而不是内存中,但你需要编写单独的消费者来在其他地方重建所述数据库。
例如,Kafka Stream 的 KTable 对象正是为了这个目的。如果不使用默认行为,则主题的分区将由您来实现。