Rest AWS ALB后面的微服务(ish)设置中的健康检查路线组织 如何在ALB背后的多个服务中命名健康检查路径?
我正在将我的API和数据库移动到AWS。在移动之前,我将我的monolith REST API分为四个服务:Rest AWS ALB后面的微服务(ish)设置中的健康检查路线组织 如何在ALB背后的多个服务中命名健康检查路径?,rest,amazon-web-services,aws-load-balancer,Rest,Amazon Web Services,Aws Load Balancer,我正在将我的API和数据库移动到AWS。在移动之前,我将我的monolith REST API分为四个服务: 公共API(应用程序和网站连接到的API) 管理API(用于管理网站) 消息传递API(用于与应用程序实时通信的web套接字服务器) 工人(基于队列的任务处理器) 我现在正试图找出一个好的路线组织。最初创建了两个子域,api.mydomain.com和www.mydomain.com 我将api子域定向到我的ALB,该ALB仅基于路径路由流量,如下所示: “/sockets”->消息传
- “/sockets”->消息传递api
- “/admin”->管理api
- “/”->公共api
- api.mydomain.com/health-public-api
- api.mydomain.com/health-messaging-api
- api.mydomain.com/health-admin-api
以文档的形式回答我自己的问题,并可能向其他人提供一些信息 tl;博士: 我选择了第三个选项,通过路径中的第一级分离所有服务。与以前的结构的主要区别在于,我的主api(也称为公共api)已从根路径移动到名为/app的子路径。我还将其重命名为appapi
- api.mydomain.com/应用程序
- api.mydomain.com/管理员
- api.mydomain.com/套接字
- api.mydomain.com/auth/
- www.mydomain.com/
- 通过nginx在ALB和本地开发环境中轻松路由请求,而无需SNI的额外工作
- 子域非常清楚地将api与网站分开
- /健康路由在默认情况下获得唯一的名称,因为它们位于不同的路径下
- 这些应用程序(web和智能手机)可以使用一个通用的api url(api.mydomain.com/),并且仍然可以访问所有服务,也就是说,它们不需要存储几个不同初始化的Axios连接。没什么大不了的,不过
- api.mydomain.com/servicename/health
- api.mydomain.com/servicename/health/is-up
- api.mydomain.com/servicename/health/is-ready
- /运行状况返回状态200以及描述就绪状态的json对象
- /运行状况/正常响应为200或无响应(即根本无法访问)
- /如果所有依赖项都已就绪,则health/is ready响应200,否则响应500