如何在.Net Core / Visual Studio中创建微服务

时间:2018-08-28 12:23:28

标签: asp.net-core .net-core microservices

  

这个流行语让我pull不休...我被要求创造   使用 .net核心微服务

谷歌搜索了很多不同的定义和示例,但是,我仍然不知道是什么使vs项目成为微服务/如何在VS中创建微服务。例如,我要求创建一个微服务,其中用户将输入两个纬度和经度值,它们将获得它们之间的距离。


很酷,我可以立即将其作为网络项目来完成。但是在这里,我需要将其作为微服务,以便公司中的其他项目可以使用它。 VS项目真正变成微服务的真正原因是什么?我可以将项目转换成微服务吗?欢迎微服务专家... !!!我正在逐步寻找在.net核心中创建微服务的过程。

3 个答案:

答案 0 :(得分:2)

微服务只是一个概念。在Visual Studio中找不到“微服务”模板。通常,您将要实现REST API。微服务没有必须是REST API,但最通常的是。

通常,您不仅会制作微服务,还会制作微服务 s 。微服务的核心租户之一是它应该只处理一个离散的功能单元。除非您的应用程序只做一件非常无聊的事情,否则您将需要多个微服务。例如,对于电子商务网站,您可能具有用户服务,购物车服务,结帐服务,订单服务等。

要协调所有这些微服务的工作,通常还需要实现API网关。该应用程序将仅与网关一起使用,并且网关会将请求转发给每个单独的微服务,以获取信息或完成应用程序所需的工作。从某种意义上说,它就像指挥家一样,协调所有单个乐器以创造和谐。

长短不一,很可能您想要的是一个或多个ASP.NET Core API项目。您将在这些控制器上创建控制器和动作,后者将有效地成为您的端点,即您的API公开起作用的功能路由。由于需要微服务架构,因此这些API项目应保持较小且以剃须刀为中心,可能每个项目仅与一个实体类一起工作,或者涉及多个实体的应用功能只有很小一部分。您应该努力使它们尽可能轻巧,以最大程度地减少所涉及的中间件和外部库的数量。在部署方面,最典型的是使用容器化-Docker是最受欢迎的选择。

答案 1 :(得分:1)

实际上并没有用于在.NET中创建微服务的模板,因为可以以独立方式部署并且可以通过某种形式的通信协议(HTTP,消息队列或其他任何方式)访问的任何应用程序都可以执行某种动作可以称为微服务。

另请参阅Martin Fowler: Microservices.NET microservices - Architecture e-book

因此,要创建将“接受两个纬度和经度并[返回]距离” 的服务,只需使用一种操作方法创建一个ASP.NET Core Web API,那就是你的微服务。

答案 2 :(得分:0)

除了其他人提到的以外,另一个非常好的资源是:https://12factor.net/

它没有讨论任何实现(因此您不会在其中找到对.NET Core的引用),但确实讨论了如何设计应用程序,使其表现得更像微服务-包括处理扩展和进程。无状态的。

并且要澄清一个混淆点:微服务没有特殊的应用程序类型。如果您的应用程序像微服务一样运行,那就是微服务!