c# - 微服务标准 Healthcheck 和 API 响应
问题描述
我想知道我应该如何实现某些事情。我是微服务架构的新手,但我想我理解它是如何以某种方式工作的。但是我对共享代码和共享项目的事情感到非常困惑。
我正在开发一个新系统,其中包含大约 50 个微服务,包括 ApiGateWays。我只在 ASP.net Core 中工作
我想标准化请求和响应。我创建了一个仅包含模型的新项目,因此不包含逻辑,只有几个接口和一些类。
它是否以任何方式损害了微服务架构的核心原则?我知道在一定程度上确实如此,但我只在 ASP.Net 核心中开发,它是一个非常基本的无逻辑模型集合,是整个系统的标准,所以如果我要创建一个 node.js 项目,那么我会在那里也使用相同的模型。
另一件事是 HealthCheck 中间件。我正在考虑在共享项目中创建它,我只会从微服务中引用它。这将包含逻辑,所以我很困惑,我认为如果我将它复制并粘贴到任何地方,它不会比为它创建一个共享项目更好。它必须是标准的东西,所以如果我出于某种原因必须更改它,那么我也必须更改每个微服务。
你怎么看待这件事?这是一个好习惯吗?我知道这不是最佳实践,我知道如果我会在一个团队中工作,我不会尝试在共享项目中使用 HealthCheck,因为这会导致比它解决的问题更多的问题,因为应该由哪个团队开发它并且很快...
最后一点,有人可以帮助我理解微服务中的整个代码共享,如果可能的话,我阅读了很多关于它的文章,但每个人都说你可以共享,但你应该避免它。如果你有时间请帮帮我,我想很多新手是如何跳入微服务的,而独自开发的人脑子里有这种困惑。
感谢您的宝贵时间,我希望这对微服务中的一些新手有所帮助,他们在微服务之间共享代码方面存在同样的困惑
解决方案
在微服务世界中,仍然需要共享库。健康检查就是其中之一。
在 MSDN 文档中对此进行了详细描述。
https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?view=aspnetcore-3.1
健康检查共享库将使用该代码并为您的 microservices 提供通过调用一个扩展方法来注册健康检查端点的方法。
同样,注册的端点对于所有微服务都是相同的。
如果您需要更多信息,请告诉我,我会详细说明。
推荐阅读
- android - Android Studio 添加了@androidx.annotation 和@android.support.annotation 问题
- python - 使用一个“绘图”调用绘制多条曲线时的一个图例条目
- postgresql - 在 postgres 中合并
- angular - 导航到组件路由时出错
- arrays - 如何在数组中添加元素?
- c# - 如何修复“无法读取超出流末尾”的错误?
- javascript - .default 不是使用带有 javascript 包的声明文件的构造函数
- android - 房间数据库丢失数据
- php - 如何检查是否在标头中调用了部分/包含?
- mysql - 如何在 sql 中使用自动增量在 id 列中添加前缀?