java – 在微服务中使用会话是错误的吗?
作者:互联网
我已经读过,会话违反了RESTfulness的概念.
Do sessions really violate RESTfulness?
Session Management in microservices
由于微服务不可避免地使用REST,这同样适用于此吗?如果是这样,为什么我们有春季会议?它甚至列出了’Spring Session允许在头文件中提供会话ID以使用RESTful API’作为其功能之一.
解决方法:
除了Scaling作为微服务的优势之外,它还为您提供了选择多语言架构的灵活性,即(使用正确的编程语言,框架,数据库以获得正确的工作).
如果你使用spring会话(off-course提供跨节点的会话复制),在内部它使用redis / gemfire / hazelcast作为复制会话存储,但你必须坚持使用一种编程语言&所有服务的框架,即Java& Spring resp.(你可以用其他语言编写你自己的实现来从会话存储中读取,但它重新发明了轮子)这将带走Ployglot Architecture的好处.
因此,通常在微服务架构中,您具有令牌服务(并且它应该能够单独扩展)实现以生成用于认证和扩展的令牌(也称为sessionIds).在每个服务中授权,您应该尽量避免存储会话信息.它还有助于避免“单点故障”.
标签:java,spring-security,spring-boot-2,microservices,spring-session 来源: https://codeday.me/bug/20190714/1458015.html