背景
我们正在考虑将“单片”3层Web应用程序移植到微服务架构中。 Web应用程序向消费者显示列表(想想Craiglist)。
后端包含一个REST API,它调用SQL DB并为SPA应用程序返回JSON以构建UI(还有一个移动应用程序)。数据通过后台服务(ftp + worker角色)写入SQL DB。还有一些页面允许用户写入。
所需信息:
我正在试图弄清楚如何(如果有的话),Azure Service Fabric将非常适合我的场景中的微服务架构。我知道微服务与monolith的优点/缺点,但我试图找出各种微服务编程模型的应用程序到我们当前的架构。
问题
基本上,决策路径上是否有一些文档需要针对哪些编程模型?我可以将“列表”建模为一个Actor,并拥有数百万个 - 当然,但我也可以拥有一个在本地存储列表的有状态服务,我也可以拥有一个从数据库中取出它的无状态服务。对于给定的用例,如何确定哪种方法最佳?
感谢。
答案 0 :(得分:1)
您当前的设置不符合您的要求是什么?您希望从更复杂的架构中获得什么?
微服务不是一个神奇的子弹。您主要获得四项好处:
所有这些都需要付出代价,并且会引入系统崩溃的复杂性和新方法。例如:您的快速编译时检查的in-proc方法调用现在变得很慢(与进程内函数调用相比)容易出现故障的网络调用。这些不特定于Service Fabric,顺便说一句,这就是从进程内方法调用到跨机器I / O的过程 - 无论你使用什么平台都无关紧要。这里的决策路径是一个特定于您的应用程序和您的要求的pro / con列表。
具体回答您的Service Fabric问题: