Microservices hazelcast与微服务
不同的微服务正在连接到单个hazelcast群集,因为如果缓存因其中任何一个而损坏,则需要重新启动整个群集,从而影响其他服务,是否有任何方法可以防止这种情况发生?如果您有多个服务实例,然后可以将它们设置为使用集群中的不同存储容器 即Microservices hazelcast与微服务,microservices,hazelcast,Microservices,Hazelcast,不同的微服务正在连接到单个hazelcast群集,因为如果缓存因其中任何一个而损坏,则需要重新启动整个群集,从而影响其他服务,是否有任何方法可以防止这种情况发生?如果您有多个服务实例,然后可以将它们设置为使用集群中的不同存储容器 即 服务A的实例1使用名为“A” 服务A的实例2使用名为“A” 服务B的实例1使用名为“B”的 服务B的实例2使用名为“B”的 所以,数据隔离。每个服务都有自己的数据存储 服务1实例使用映射“A”,如果它们以某种方式损坏了映射,则使用映射“B”的服务B不受影响 然后
- 服务A的实例1使用名为“A”
- 服务A的实例2使用名为“A”
- 服务B的实例1使用名为“B”的
- 服务B的实例2使用名为“B”的
hazelcast.getMap(“A”).clear()
删除服务A的所有数据,而不影响服务B。或者,如果您可以识别坏记录,则可以选择删除
为了增加强度,(商业)安全模块增加了基于角色的授权。你可以设置这样的服务A不能访问服务B的数据(读或读/写),并且这样服务A不能破坏Server-B的数据。 < P>如果你的微服务主要执行对地图的读取操作,你可以考虑使用近缓存特性。 近缓存将为您带来两个好处
除此之外,我将考虑更改集群的访问模式,如果可能的话,尝试针对每个微服务拥有一个集群来提供真正的隔离。 它通常被称为“每个服务的数据库”。。。
这是Hazelcast在微服务中如此受欢迎的原因之一,与数据库或NoSQL相比,在每个微服务中启动大量集群要简单得多