对于无状态服务,首先说一下什么是状态:如果一个数据需要被多个服务共
享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的
服务被称为有状态服务,反之称为无状态服务。
那么这个无状态服务原则并不是说在微服务架构里就不允许存在状态,表达
的真实意思是要把有状态的业务服务改变为无状态的计算类服务,那么状态数据
也就相应的迁移到对应的“有状态数据服务”中。
场景说明:例如我们以前在本地内存中建立的数据缓存、Session 缓存,到
现在的微服务架构中就应该把这些数据迁移到分布式缓存中存储,让业务服务变
成一个无状态的计算节点。迁移后,就可以做到按需动态伸缩,微服务应用在运
行时动态增删节点,就不再需要考虑缓存数据如何同步的问题。
最后简单来说,就是:把数据模块单独提取, 只考虑业务拓展,不考虑数据