我正在学习Spring,我知道bean在一个应用程序上下文中默认是单例.但是如果我们在分布式系统中部署应用程序会怎么样?实现单例的实用方法是什么,因为每次请求进入时,它都可以路由到具有不同应用程序上下文的不同机器?
我已阅读Singleton in Cluster environment,但答案是关于缓存.
我想我们可以做一些事情,比如把单例放到一个中心位置(比如memcached),每次我们需要这个bean并从IO序列化和反序列化时,这有用吗?但是,在我看来,这将花费很多,因为一些对象转移非常“昂贵”.
谢谢!
解决方法:
>你的单例是无状态的:然后你只需在每个节点中重新创建相同的东西,而不需要节点之间的通信;
>或你的单身人是有状态的:然后你需要分配其状态.这是必须应用memcached或任何其他大量可用分布式缓存的地方.您仍将独立地在每个节点中重新创建单例,但您将使其内部状态驻留在分布式缓存中.