我想开始将我的应用程序拆分为微服务。我的首要任务是删除我们每个应用程序中重复的功能。诸如电子邮件发送,导出,搜索索引等操作-在每个应用程序中重复相同或相似代码的操作。
我只是觉得有点不知所措,开始努力。我知道微服务的目的是可以为工作选择正确的语言,但是出于我们当前的目的,我假设.NET将是构建所有内容的主要框架。
基本上,首先,我想创建一个微服务,该服务仅发送我们所有应用程序都可以交谈的电子邮件,并告知他们发送所需的电子邮件。我当时的想法是电子邮件发件人具有发送电子邮件的逻辑,但是每个应用程序都需要告诉收件人,正文等。
我正在努力解决以下问题:
对所有问题都感到抱歉,为了开始在我的工作场所工作,您可以开始所有这类工作(以及一般的体系结构),这对我目前有所帮助。
最佳答案
由于电子邮件是一个固有的异步过程(即生即忘),并且通常需要使用一些不可靠的资源,因此最好通过消息队列(MSMQ,RabbitMQ等)与它们集成,并且它们通常具有相当不错的.net蜜蜂。
如果您不喜欢电子邮件之类的简单事物,那么可能值得花时间查看队列周围的大型框架,以便为重试,错误管理,事务管理等提供更好的支持。这些通常称为“服务总线”技术, .net中有几个不错的免费OSS,包括MassTransit和Rebus。如果/当您寻找一个完全受支持的.net服务总线时,您可能会发现NServiceBus,出于全面披露的目的,我是原始作者。