我有一个无状态服务,其中有一个方法,并在其中创建类实例。 我已经在多个节点中发布了该服务。 因此,当我从另一个服务调用该方法时,该方法将在一个节点中调用。因此,该实例将仅在该节点中可用。 如果节点关闭,则我将丢失类实例。
是否可以在所有Service Fabric节点中调用方法? 还是有状态服务中可能?
答案 0 :(得分:1)
如果服务必须在故障之间保持状态不变,则不应使用无状态服务,而应使用有状态服务并将必须保持的数据放入可靠集合中。
另一种方法,如果您的Class \ Object在接收到调用时将处理某些内容,则可以将其设为Actor,并且actor的状态将被复制到其他节点,如果actor发生故障,则其状态将被重新加载新实例接管时。
如果您确实需要使用无状态服务,则应将此类保留在Redis或Memcache之类的缓存中。
对于您的主要问题,请查看以下其他问题:Invoke same method on all active instances of a stateless service