在微服务中使用会话是错误的吗?

cod*_*ash 3 java spring-security spring-boot spring-session microservices

我已经读过,会话违反了RESTfulness的概念.

会话真的违反了R​​ESTfulness吗?

微服务中的会话管理

RESTful身份验证

由于微服务不可避免地使用REST,这同样适用吗?如果是这样,为什么我们有春季会议?它甚至列出了'Spring Session允许在头文件中提供会话ID以使用RESTfulAPI'作为其功能之一.

JRR*_*JRR 15

除了Scaling作为微服务的优势之外,它还为您提供了选择多语言架构的灵活性,即(使用正确的编程语言,框架,数据库来完成正确的工作).

如果您使用spring会话(其中off-course提供跨节点的会话复制),在内部它使用redis/gemfire/hazelcast作为复制的会话存储,但是您将不得不坚持使用一种编程语言和框架来处理所有服务,即Java和Spring resp.(你可以用其他语言编写你自己的实现来从会话存储中读取,但它重新发明了轮子)这将带走Ployglot Architecture的好处.

因此,通常在微服务架构中,您有一个令牌服务(并且它应该能够单独扩展)实现以生成令牌(也称为sessionIds),这些令牌用于每个服务中的身份验证和授权,您应该尽量避免存储会话信息.它还有助于避免" 单点故障 ".