使用ServiceStack和微服务架构 - 共享安全问题等......

Joh*_*hnC 0 servicestack

我正在寻找使用ServiceStack并实现基于Martin Fowlers微服务架构的服务,这些服务将部署为Azure中的工作者角色.

也就是说我有10个服务,每个服务都是一个单独的ServiceStack实例,它运行在它自己的Worker Role实例中.

在线的所有示例都显示了ServiceStack的一个实例,它承载了多个服务,这非常有效,但这不符合我要求调查的架构.

什么是使用多个微服务(ServiceStack实例/工作者角色)和验证用户/将某种形式的TokenID传递给其他ServiceStack实例的最佳/首选方法(只有一个将处理登录).

STS会处理这个或像Thinktecture这样的东西吗?此外,ServiceStack是否意味着以这种方式配置?有更简单的选择吗?

实际上,我希望在自己的进程中运行的所有独立服务都能使用单一身份验证服务并共享安全机制.

我将非常感谢在真正的微服务架构中使用ServiceStack的人们的任何反馈.

谢谢约翰

myt*_*thz 6

我建议不要过于担心微服务,它本质上是一种技术时尚,很少有服务开发人员认真对待任何比通常的面向服务架构更重要的东西.

有效地将您的架构划分为更小的隔离轻量级运行时服务.

分区服务的好处和权衡

在将系统架构划分为更小的服务时,您应该注意权衡:

一方面,能够通过将整个系统分成更小的隔离组件来降低整个系统的复杂性,这些组件是分离的,可以独立于系统的其他部分使用.

另一方面,它引入了更多移动部件,这为每个运行时组件增加了额外的管理和部署开销,如果您的隔离度过于细粒度,则会强制执行不必要的进程外请求(即减慢系统速度)当您的服务对系统的其他部分具有相互依赖性时.

避免使用规定的架构

一如既往,建议您使用您的判断来确定最适合您的用例的粒度,而不是试图强制规定的架构.

ServiceStack的模块化架构

通常,ServiceStack本身就是一个相当轻量级的服务框架,可以很好地扩展以支持小型和大型服务架构.ServiceStack的大多数功能都封装在插件中,使您可以轻松地将所需的功能组合在一起.它还支持跨多个项目模块化您的服务实现,这使您可以实现隔离,而无需引入额外的运行时组件.

自托管和消息传递选项

如果需要,您可以轻松地将现有的Service实现重构为单独的自托管服务,以提供隔离的轻量级HTTP服务以及对Messaging的支持,以便在首选时可以将服务托管在非HTTP端点上.

由于ServiceStack具有轻量级的占用空间,因此还可以将整个ServiceStack解决方案封装到单个自托管可执行文件中,以便在Console,Windows WinForms/WPF或OSX Cocoa应用程序中进行托管.