feat(api-gateway): retire teacher/student/parent-bff, route GraphQL to apollo-router
v2.1 M9+M10: BFF layer and old portals retired.
- api-gateway: remove TeacherBffURL/StudentBffURL/ParentBffURL config
- api-gateway: add ApolloRouterURL config and /api/graphql route
- api-gateway: /api/admin/graphql now proxies to apollo-router
- api-gateway: health checks now ping apollo-router instead of BFF
- deploy.yml: replace teacher-bff service block with apollo-router
- deploy.yml: add config-service service block (M3 dependency)
- deploy.yml: remove teacher-portal and admin-portal service blocks
- source code in services/{teacher,student,parent}-bff/ and apps/*-portal/ retained for rollback
This commit is contained in:
@@ -29,20 +29,20 @@ type downstreamCheck struct {
|
||||
// GET /readyz:并行 ping 下游服务 /healthz,超时 2s。
|
||||
//
|
||||
// 软失败规则(president-final-rulings.md §3.3):
|
||||
// - 必需依赖(iam / teacher-bff,P2 已就绪)失败 → 503
|
||||
// - 可选依赖(P3-P5 未就绪服务)失败 → 200 + degraded 列表
|
||||
// - 必需依赖(iam / apollo-router)失败 → 503
|
||||
// - 可选依赖(core-edu / content / msg / ai / data-ana)失败 → 200 + degraded 列表
|
||||
// - 全部可达 → 200 {"status":"ok"}
|
||||
//
|
||||
// v2.1 M9:teacher-bff / student-bff / parent-bff 已下线,由 apollo-router 替代。
|
||||
func Readyz(cfg *config.Config) gin.HandlerFunc {
|
||||
checks := []downstreamCheck{
|
||||
{name: "iam", url: cfg.IamServiceURL + "/healthz", required: true},
|
||||
{name: "teacher-bff", url: cfg.TeacherBffURL + "/healthz", required: true},
|
||||
{name: "apollo-router", url: cfg.ApolloRouterURL + "/healthz", required: true},
|
||||
{name: "core-edu", url: cfg.CoreEduServiceURL + "/healthz", required: false},
|
||||
{name: "content", url: cfg.ContentServiceURL + "/healthz", required: false},
|
||||
{name: "msg", url: cfg.MsgServiceURL + "/healthz", required: false},
|
||||
{name: "ai", url: cfg.AiServiceURL + "/healthz", required: false},
|
||||
{name: "data-ana", url: cfg.DataAnaServiceURL + "/healthz", required: false},
|
||||
{name: "student-bff", url: cfg.StudentBffURL + "/healthz", required: false},
|
||||
{name: "parent-bff", url: cfg.ParentBffURL + "/healthz", required: false},
|
||||
}
|
||||
|
||||
client := &http.Client{Timeout: 2 * time.Second}
|
||||
|
||||
Reference in New Issue
Block a user