我正在使用 Krakend 構(gòu)建一個 API 網(wǎng)關(guān)來連接三個后端服務(wù)。網(wǎng)關(guān)總是從一個或兩個后端服務(wù)返回,并且X-Krakend-Completed header總是設(shè)置為 false。http: invalid Read on closed Body日志中錯誤的原因可能是什么?預(yù)期行為GET localhost:8000回復(fù){ "user-id": 1, "payments-id": 1, "loans-id": 1,}實際行為GET localhost:8000回復(fù){ "payment-id": 1}Krakend日志[GIN] 2022/03/01 - 16:29:41 | 200 | 801.319μs | ::1 | GET "/"Error #01: Get "http://localhost:5000/users": http: invalid Read on closed BodyGet "http://localhost:6000/loans": http: invalid Read on closed Body[GIN] 2022/03/01 - 16:29:55 | 200 | 851.735μs | ::1 | GET "/"Error #01: Get "http://localhost:6000/loans": http: invalid Read on closed BodyGet "http://localhost:5000/users": http: invalid Read on closed Body服務(wù) 1type Payment struct { Id int32 `json:"payment-id"`}var payments = []Payment{ { Id: 0, }, { Id: 1, }}func main() { app := fiber.New() app.Get("/payments", func(c *fiber.Ctx) error { return c.JSON(payments[1]) }) app.Listen(":7000")}服務(wù) 2func main() { app := fiber.New() app.Get("/loans", func(c *fiber.Ctx) error { return c.JSON(loans[1]) }) app.Listen(":6000")}服務(wù) 3func main() { app := fiber.New() app.Get("/users", func(c *fiber.Ctx) error { return c.JSON(users[1]) }) app.Listen(":5000")}Krakend.json{ "version": 2, "timeout": "3000ms", "cache_ttl": "300s", "output_encoding": "json", "name": "users", "port": 8000, "read_timeout": "2s", "write_timeout": "2s", "idle_timeout": "2s", "read_header_timeout": "2s", "endpoints": [ { "endpoint": "/", "method": "GET", "output_encoding": "json", "backend": [ { "url_pattern": "/users", "encoding": "json", "method": "GET", "host": [ "http://localhost:5000" ] },
- 1 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消