gin中运行多个服务

运行服务的返回类型为 :http.Handler 。gin.New(),gin.Default() 返回的就是此类型。
使用&http.Server{....} 设置服务参数
使用g.Go(func () error{ return server.ListenAndServe()}) 开启一个服务

package main

import (
	"github.com/gin-gonic/gin"
	"golang.org/x/sync/errgroup"
	"log"
	"net/http"
	"time"
)

var (
	g errgroup.Group
)

func router01() http.Handler {
	e := gin.New()
	e.Use(gin.Recovery())
	e.GET("/", func(context *gin.Context) {
		context.String(200, "router01")
	})
	return e
}
func router02() http.Handler {
	e := gin.New()
	e.Use(gin.Recovery())
	e.GET("/", func(context *gin.Context) {
		context.String(200, "router02")
	})
	return e
}

func main() {
	server01 := &http.Server{
		Addr: ":8080",
		Handler: router01(),
		ReadTimeout: 5 * time.Second,
		WriteTimeout: 10 * time.Second,
	}
	server02 := &http.Server{
		Addr: ":8081",
		Handler: router02(),
		ReadTimeout: 5 * time.Second,
		WriteTimeout: 10 * time.Second,
	}

	g.Go(func() error {
		return server01.ListenAndServe()
	})
	g.Go(func() error {
		return server02.ListenAndServe()
	})

	if err := g.Wait(); err != nil {
		log.Fatal(err.Error())
	}

}

  

posted @ 2021-10-28 17:04  专职  阅读(109)  评论(0编辑  收藏  举报