在深入问题的核心之前,让我先介绍一下系统的体系结构。
我有来自kafka的数据流,我的公司使用分布式缓存(hazelcast),使数据可以通过我们公开的web服务被请求。我们还希望将缓存中的数据持久化到cassandra,这样它就可以持久。我有两个关于如何将数据提交给hazelcast的解决方案,我想听听您的建议(也许是另一种方式),并告诉我您认为什么是最好的解决方案以及为什么?
1/使用kafka hazelcast连接器将数据直接从kafka发送到hazelcast,然后使用write-behind和mapstores将数据持久化到cassadandra==>此解决方案有两个主要缺点,首先,每次将数据存储到cassandra时,我们都要序列化/反序列化(cpu的重要使用),其次,即使用户不需要,我们也要将所有数据放到缓存中(我们有很多逐出操作)
2/使用kafka cassandra连接器,将数据直接写入cassandra,然后找到一种方法(您认为这一部分有多复杂?)通知hazelcast更新/逐出缓存中的数据==>此解决方案的优点是,我们消除了Map存储所需的序列化/反序列化,只加载数据之前查询过的,并且密钥已在缓存中
您喜欢这两种解决方案中的哪一种?为什么?在你看来,在第二种解决方案中通知hazelcast的最佳方法是什么?
提前感谢您的建议/回答我希望我简洁明了!
暂无答案!
目前还没有任何答案,快来回答吧!