golang Iris運行多個應用的實現(xiàn)
在 Iris 里面,提供了一種方式可以讓我們同時運行多個應用:
這里說的應用只是一個 Iris 框架實例,這個實例可以有完全不同的路由定義、中間件等。
不同端口不同應用
package main import ( "log" "net/http" "time" "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/middleware/recover" "golang.org/x/sync/errgroup" ) var g errgroup.Group func startApp1() error { app := iris.New().SetName("app1") app.Use(recover.New()) app.Get("/", func(ctx iris.Context) { ctx.JSON(iris.Map{ "code": iris.StatusOK, "message": "Welcome server 1", }) }) app.Build() return app.Listen(":8080") } func startApp2() error { app := iris.New().SetName("app2") app.Use(recover.New()) app.Get("/", func(ctx iris.Context) { ctx.JSON(iris.Map{ "code": iris.StatusOK, "message": "Welcome server 2", }) }) return app.Listen(":8081") } func main() { g.Go(startApp1) g.Go(startApp2) if err := g.Wait(); err != nil { log.Fatal(err) } }
在這個例子中,我們監(jiān)聽了兩個端口 8080
、8081
,我們可以通過這兩個端口來訪問這兩個應用。
不同域名不同應用
這個就有點類似于 nginx 了,同一個端口可以同時監(jiān)聽多個域名的請求:
package main import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/apps" "github.com/kataras/iris/v12/middleware/recover" ) func main() { app3 := iris.New().SetName("app3") app3.Use(recover.New()) app3.Get("/", func(ctx iris.Context) { ctx.WriteString("ha3") }) app4 := iris.New().SetName("app4") app4.Use(recover.New()) app4.Get("/", func(ctx iris.Context) { ctx.WriteString("ha4") }) switcher := apps.Switch(apps.Hosts{ apps.Host{ Pattern: "app3.local", Target: app3, }, apps.Host{ Pattern: "app4.local", Target: app4, }, }) switcher.Listen(":9010") }
在這個例子中,監(jiān)聽了 9010
端口,但是通過 app3.local
和 app4.local
去訪問的時候,結果是不一樣的。
到此這篇關于golang Iris運行多個應用的實現(xiàn)的文章就介紹到這了,更多相關golang Iris運行多應用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務示例
這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04go語言題解LeetCode1122數(shù)組的相對排序
這篇文章主要為大家介紹了go語言題解LeetCode1122數(shù)組的相對排序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12基于Golang實現(xiàn)Excel表格的導入導出功能
最近項目開發(fā)中有涉及到Excel的導入與導出功能,特別是導出表格時需要特定的格式,所以本文給大家介紹了基于Golang實現(xiàn)Excel表格的導入導出功能,文中通過代碼示例和圖文介紹的非常詳細,需要的朋友可以參考下2023-12-12詳解Go如何實現(xiàn)協(xié)程并發(fā)執(zhí)行
線程是通過本地隊列,全局隊列或者偷其它線程的方式來獲取協(xié)程的,目前看來,線程運行完一個協(xié)程后再從隊列中獲取下一個協(xié)程執(zhí)行,還只是順序執(zhí)行協(xié)程的,而多個線程一起這么運行也能達到并發(fā)的效果,接下來就給給大家詳細介紹一下Go如何實現(xiàn)協(xié)程并發(fā)執(zhí)行2023-08-08Golang 字符串與字節(jié)數(shù)組互轉的實現(xiàn)
在Go語言中,我們經常在字符串和切片之間進行轉換,本文就詳細的介紹一下Golang 字符串與字節(jié)數(shù)組互轉的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02