我是新來的快去微服務發展,但我希望我的問題纔有意義:如何處理代理多種服務與golang和labstack呼應
比方說,我有一個微型的服務中處理用戶諸如創建,更新用戶的&等動作,可在localhost:8081/users
處獲得。
除此之外,我還有一個微服務處理事件創建,更新&更新,可在localhost:8082/events
。
而且,在此之上,有一個網關,在localhost:8080
處可用,它假定充當代理來將傳入請求分派到正確的服務。
我發現這片這正很好地從我的網關重定向到我的用戶的服務代碼:
proxy := httputil.NewSingleHostReverseProxy(&url.URL{
Scheme: "http",
Host: "localhost:8081",
})
http.ListenAndServe(":8080", proxy)
但是有兩兩件事都困擾着我:
我怎麼猜想處理多個微服務的調度?我想有一個條件,例如:「如果客戶請求
localhost:8080/users
它應該去用戶的服務,如果他請求localhost:8080/events
它應該去事件的服務(請隨時告訴我,如果這種方法是錯誤的)正如我在標題中提到的,我使用的是labstack /回聲路由器,所以我不想開始我服務器
http.ListenAndServe(":8080", proxy)
,但像e := echo.New() e.Start(":8080")
但我找不到如何通過此工具傳遞代理作爲參數。