golang Iris運(yùn)行多個(gè)應(yīng)用的實(shí)現(xiàn)
在 Iris 里面,提供了一種方式可以讓我們同時(shí)運(yùn)行多個(gè)應(yīng)用:
這里說的應(yīng)用只是一個(gè) Iris 框架實(shí)例,這個(gè)實(shí)例可以有完全不同的路由定義、中間件等。
不同端口不同應(yīng)用
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) } }
在這個(gè)例子中,我們監(jiān)聽了兩個(gè)端口 8080
、8081
,我們可以通過這兩個(gè)端口來訪問這兩個(gè)應(yīng)用。
不同域名不同應(yīng)用
這個(gè)就有點(diǎn)類似于 nginx 了,同一個(gè)端口可以同時(shí)監(jiān)聽多個(gè)域名的請(qǐng)求:
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") }
在這個(gè)例子中,監(jiān)聽了 9010
端口,但是通過 app3.local
和 app4.local
去訪問的時(shí)候,結(jié)果是不一樣的。
到此這篇關(guān)于golang Iris運(yùn)行多個(gè)應(yīng)用的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)golang Iris運(yùn)行多應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang中Error的設(shè)計(jì)與實(shí)踐詳解
這篇文章主要為大家詳細(xì)介紹了Golang中Error的設(shè)計(jì)以及是具體如何處理錯(cuò)誤的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08golang操作連接數(shù)據(jù)庫實(shí)現(xiàn)mysql事務(wù)示例
這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫實(shí)現(xiàn)mysql事務(wù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04go語言題解LeetCode1122數(shù)組的相對(duì)排序
這篇文章主要為大家介紹了go語言題解LeetCode1122數(shù)組的相對(duì)排序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12基于Golang實(shí)現(xiàn)Excel表格的導(dǎo)入導(dǎo)出功能
最近項(xiàng)目開發(fā)中有涉及到Excel的導(dǎo)入與導(dǎo)出功能,特別是導(dǎo)出表格時(shí)需要特定的格式,所以本文給大家介紹了基于Golang實(shí)現(xiàn)Excel表格的導(dǎo)入導(dǎo)出功能,文中通過代碼示例和圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12詳解Go如何實(shí)現(xiàn)協(xié)程并發(fā)執(zhí)行
線程是通過本地隊(duì)列,全局隊(duì)列或者偷其它線程的方式來獲取協(xié)程的,目前看來,線程運(yùn)行完一個(gè)協(xié)程后再從隊(duì)列中獲取下一個(gè)協(xié)程執(zhí)行,還只是順序執(zhí)行協(xié)程的,而多個(gè)線程一起這么運(yùn)行也能達(dá)到并發(fā)的效果,接下來就給給大家詳細(xì)介紹一下Go如何實(shí)現(xiàn)協(xié)程并發(fā)執(zhí)行2023-08-08詳解Go語言實(shí)現(xiàn)線性查找算法和二分查找算法
線性查找又稱順序查找,它是查找算法中最簡(jiǎn)單的一種。二分查找,也稱折半查找,相比于線性查找,它是一種效率較高的算法。本文將用Go語言實(shí)現(xiàn)這兩個(gè)查找算法,需要的可以了解一下2022-12-12Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實(shí)現(xiàn)
在Go語言中,我們經(jīng)常在字符串和切片之間進(jìn)行轉(zhuǎn)換,本文就詳細(xì)的介紹一下Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02