欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang Iris運行多個應用的實現(xiàn)

 更新時間:2024年01月15日 09:08:03   作者:rubys007  
本文主要介紹了golang Iris運行多個應用的實現(xiàn),在Iris里面,提供了一種方式可以讓我們同時運行多個應用,具有一定的參考價值,感興趣的可以了解一下

在 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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解go語言判斷管道是否關閉的常見誤區(qū)

    詳解go語言判斷管道是否關閉的常見誤區(qū)

    這篇文章主要想和大家一起探討一下在Go語言中,我們是否可以使用讀取管道時的第二個返回值來判斷管道是否關閉,文中的示例代碼講解詳細,有興趣的可以了解下
    2023-10-10
  • Golang中Error的設計與實踐詳解

    Golang中Error的設計與實踐詳解

    這篇文章主要為大家詳細介紹了Golang中Error的設計以及是具體如何處理錯誤的相關知識,文中的示例代碼簡潔易懂,需要的小伙伴可以跟隨小編一起學習一下
    2023-08-08
  • golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務示例

    golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務示例

    這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫實現(xiàn)mysql事務示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • go語言題解LeetCode1122數(shù)組的相對排序

    go語言題解LeetCode1122數(shù)組的相對排序

    這篇文章主要為大家介紹了go語言題解LeetCode1122數(shù)組的相對排序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Go語言中的函數(shù)詳解

    Go語言中的函數(shù)詳解

    函數(shù)是基本的代碼塊,用于執(zhí)行一個任務。本文詳細講解了Go語言中的函數(shù),對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 基于Golang實現(xiàn)Excel表格的導入導出功能

    基于Golang實現(xiàn)Excel表格的導入導出功能

    最近項目開發(fā)中有涉及到Excel的導入與導出功能,特別是導出表格時需要特定的格式,所以本文給大家介紹了基于Golang實現(xiàn)Excel表格的導入導出功能,文中通過代碼示例和圖文介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 關于golang類型推斷和變量重聲明詳解

    關于golang類型推斷和變量重聲明詳解

    在Go語言中,類型推斷可以根據(jù)變量的初始化值自動推斷出變量的類型,而不需要顯式地聲明變量類型,變量重聲明可以在同一作用域內重復聲明一個變量,只要其中至少一個是新的變量,本就簡單的給大家介紹一下golang類型推斷和變量重聲明,需要的朋友可以參考下
    2023-08-08
  • 詳解Go如何實現(xiàn)協(xié)程并發(fā)執(zhí)行

    詳解Go如何實現(xiàn)協(xié)程并發(fā)執(zhí)行

    線程是通過本地隊列,全局隊列或者偷其它線程的方式來獲取協(xié)程的,目前看來,線程運行完一個協(xié)程后再從隊列中獲取下一個協(xié)程執(zhí)行,還只是順序執(zhí)行協(xié)程的,而多個線程一起這么運行也能達到并發(fā)的效果,接下來就給給大家詳細介紹一下Go如何實現(xiàn)協(xié)程并發(fā)執(zhí)行
    2023-08-08
  • 詳解Go語言實現(xiàn)線性查找算法和二分查找算法

    詳解Go語言實現(xiàn)線性查找算法和二分查找算法

    線性查找又稱順序查找,它是查找算法中最簡單的一種。二分查找,也稱折半查找,相比于線性查找,它是一種效率較高的算法。本文將用Go語言實現(xiàn)這兩個查找算法,需要的可以了解一下
    2022-12-12
  • Golang 字符串與字節(jié)數(shù)組互轉的實現(xiàn)

    Golang 字符串與字節(jié)數(shù)組互轉的實現(xiàn)

    在Go語言中,我們經常在字符串和切片之間進行轉換,本文就詳細的介紹一下Golang 字符串與字節(jié)數(shù)組互轉的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論