golang Iris運行多個應(yīng)用的實現(xiàn)
在 Iris 里面,提供了一種方式可以讓我們同時運行多個應(yīng)用:
這里說的應(yīng)用只是一個 Iris 框架實例,這個實例可以有完全不同的路由定義、中間件等。
不同端口不同應(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)
}
}
在這個例子中,我們監(jiān)聽了兩個端口 8080、8081,我們可以通過這兩個端口來訪問這兩個應(yīng)用。
不同域名不同應(yīng)用
這個就有點類似于 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 去訪問的時候,結(jié)果是不一樣的。
到此這篇關(guān)于golang Iris運行多個應(yīng)用的實現(xiàn)的文章就介紹到這了,更多相關(guān)golang Iris運行多應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務(wù)示例
這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務(wù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04
go語言題解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-08
Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實現(xiàn)
在Go語言中,我們經(jīng)常在字符串和切片之間進行轉(zhuǎn)換,本文就詳細的介紹一下Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

