首页 文章

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

提问于
浏览
0

我正在寻找使用ServiceStack并实现基于Martin Fowlers Micro-Service架构的服务,这些服务将部署为Azure中的Worker Roles .

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

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

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

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

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

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

谢谢约翰

1 回答

  • 6

    我建议你不要太忙于Micro Services,它本质上是一种技术上的时尚,很少有服务开发人员认真对待任何比平常更多的东西Service Oriented Architecture .

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

    分区服务的好处和权衡

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

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

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

    避免使用规定的架构

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

    ServiceStack的模块化架构

    通常,ServiceStack本身就是一个相当轻量级的服务框架,可以很好地扩展以支持小型和大型服务架构 . ServiceStack的大部分功能都是encapsulated in Plugins,它可以让您轻松地将所需的功能组合在一起 . 它还支持跨多个项目的Modularizing your services implementation,这使您可以实现隔离,而无需引入额外的运行时组件 .

    自托管和消息传递选项

    如果需要,您可以轻松地将现有的Service实现重构为单独的Self-Hosting Services,以提供隔离的轻量级HTTP服务以及support for Messaging,这样您的服务可以在首选时托管在非HTTP endpoints 上 .

    由于ServiceStack具有轻量级的占用空间,因此还可以封装整个ServiceStack solution into a single self-hosting executable适合托管,Windows WinForms / WPF或OSX Cocoa应用程序中的托管 .

相关问题