我想开始将我的应用程序拆分为微服务。我的第一个任务是删除我们每个应用程序中重复的功能。诸如电子邮件发送、导出、搜索索引等之类的事情——在每个应用程序中重复相同或相似代码的事情。
我只是觉得有点不知所措,很难开始。我知道微服务的目的是您可以为工作选择正确的语言,但就我们目前的目的而言,我假设 .NET 将是我将在其中构建所有内容的主要框架。
基本上,首先,我想创建一个微服务,它只发送电子邮件,我们所有的应用程序都可以与之交谈并告诉他们发送他们需要的电子邮件。我的想法是电子邮件发件人具有发送电子邮件的逻辑,但每个应用程序都需要告诉它收件人、正文等。
我正在努力解决以下问题:
应用程序应该使用什么协议来与该服务通信?基于 HTTP 的 REST?如果是这种情况,电子邮件发送微服务是否有效地只是一个 Web API 2 应用程序(如果我要构建一个 REST api,这就是我个人会使用的)。
如果我要使用 REST,从后端进行安静调用的最佳方式是什么?我们系统中的大多数电子邮件现在都是通过后端代码发送的。我已经看到了 RestSharp 这个名字,这通常被认为是最好的方法吗?
未来的规划,我认为拥有某种了解所有服务的网关将是有益的,这样每个应用程序只需要知道这个网关,然后网关就可以与它需要的任何服务进行对话。这只是应用程序和微服务之间的另一个 REST API 吗?
抱歉所有的问题,只是在所有这些东西(和一般的建筑)上开始,以便在我的工作场所加紧工作,目前有点让我头晕目眩。