![]() |
1
1
好吧,这是一个好问题,答案是:“这取决于”。通过使用缓存,您可以进行权衡。在数据的正确性(或更准确地说,新鲜度)和获取速度之间,您更喜欢速度。实际上,您现在更喜欢过时的数据,而不是以后的新数据。 正如你所看到的,很难说哪个更好,因为这在很大程度上取决于你的背景。 请注意,通过使用Hazelcast,您还可以刷新缓存,这样过时的问题就不会那么严重了。有很多方法可以做到这一点,其中之一就是Jet作业。不幸的是,最好的方法同样依赖于上下文。 |
![]() |
2
1
我认为这更像是一个设计决策。这在很大程度上取决于您为微服务选择的隔离级别。您可以选择为所有微服务运行一个集群,并进行完全访问控制,允许服务根据您可以定义的授权级别访问缓存。例如,创建2个缓存-User和Order,使User_ms(ms=micro-service)和Order_ms可以访问它们,并限制其他人的访问。 对于其他微服务访问集群,无论是用户和订单缓存还是同一集群中的其他缓存,您都可以控制和定义它们的访问级别。请在此处详细查看: https://docs.hazelcast.org/docs/3.12.5/manual/html-single/index.html#security 您还可以通过配置NearCache在微服务级别缓存数据,其中主数据的更新会立即使NearCache中的数据无效——所有这些都是由Hazelcast在内部发生和管理的。 或者,在完全隔离模式下,您可以在微服务级别运行微集群——为每个不被其他服务共享的微服务专用集群。 |