微服务架构和实施分步指南第1部分

大家好,

我正在实施一个新的基于微服务的简单项目,作为逐步指南的示例,供那些在微服务体系结构上遇到困难但仍在寻找“另一个”良好参考的人使用。 另外,我非常感谢通过反馈和建议来进行思考,以使该项目成为高质量的工作。

有大量的文章和源代码示例。 但是,不幸的是,如果不深入研究Docker,事件存储,大量配置,云部署等内容,我将找不到简单的分步说明作为参考。 我克隆了几个项目并尝试开始使用它们,但是,只有上帝知道如何启动它们,缺少哪些依赖项以及为什么所有这些脚本都因成千上万个错误而失败。

例如, 这个来自Microsoft的eShop项目包含了我们所需要的一切,但是要弄清楚那里发生了什么,SQL数据库连接字符串,Docker脚本失败,没有操作方法以及我不确定它是否超级,并不是那么简单-您需要从简单的架构开始。

图片

这些来自波兰的家伙正在努力使产品变得有价值和简单,请检查一下
因此,在这里,我将尝试以尽可能简单的方式来实施这样的教程,从基础开始,并编写一些基本代码以供以后在项目中使用。

我们不会谈论“为什么/何时应该使用微服务?”,关于它的文章太多了。 例如,这个人做了一些很好的研究,并对微服务进行了总结

将涵盖以下主题并尝试使其简单:

  1. 前提条件和环境设置
  2. 为我们想要实现的项目和目标选择名称
  3. 整体架构
  4. 开始实施(.NET Core)
  5. 数据库和缓存设置和测试
  6. 工具和工具配置
  7. 定义超级基本用例场景及其实现
  8. 部署到某个地方

将在Windows 10上使用.NET Core 2.1和VS2017。您的计算机上应安装并运行以下第三方: Windows的RedisMongoDBSeqRabbitMQ 。 将使用其默认参数运行所有内容。 我发现这些工具开箱即用即可快速,轻松地安装和工作。

Redis的桌面客户端( https://redisdesktop.com/ ):

图片

MongoDB的桌面客户端( https://nosqlbooster.com/ ):

图片

2.该项目的目标是创建一个后端,以从数千个移动/可穿戴设备中获取数据。 数据类型为传感器数据:9轴运动,地理,温度,湿度等。 还将需要处理和分析所有数据,以将其显示在一些漂亮的基于Web的UI上,例如统计数据,图形,跟踪等。 我在撰写本段时选择了一个项目的名称-“ Sensor Fusion Backend”。 我可以想到的前两个微服务是DataProcessorService和DataAnalyticsService。

3.让我们开始思考架构和最少的基础架构,至少对于初学者而言。 连接性:我们的项目正在处理IoT /传感器类型的数据,因此,考虑到这一点,我将使用RabbitMQ消息代理进行客户端-服务器通信。 这里有两个简短的解释。 数据库:将使用MongoDB + Redis组合 。 MongoDB作为主要存储系统,Redis作为缓存。 记录:Serilog记录器库+ Seq作为可视化工具。

Seq是托管在您的基础结构上的Web应用程序:

图片

为了简化API,我将使用Swagger:

图片

因此,第一部分更多地是关于我们将使用哪些工具来开始实施。 将在第2部分中看到代码,并开始使用基础结构。

Source: https://habr.com/ru/post/zh-CN458400/


All Articles