feat: add multiple service example. (#1119)
This commit is contained in:
		
							
								
								
									
										74
									
								
								examples/multiple-service/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								examples/multiple-service/main.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,74 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"log"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"golang.org/x/sync/errgroup"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	g errgroup.Group
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func router01() http.Handler {
 | 
			
		||||
	e := gin.New()
 | 
			
		||||
	e.Use(gin.Recovery())
 | 
			
		||||
	e.GET("/", func(c *gin.Context) {
 | 
			
		||||
		c.JSON(
 | 
			
		||||
			http.StatusOK,
 | 
			
		||||
			gin.H{
 | 
			
		||||
				"code":  http.StatusOK,
 | 
			
		||||
				"error": "Welcome server 01",
 | 
			
		||||
			},
 | 
			
		||||
		)
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	return e
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func router02() http.Handler {
 | 
			
		||||
	e := gin.New()
 | 
			
		||||
	e.Use(gin.Recovery())
 | 
			
		||||
	e.GET("/", func(c *gin.Context) {
 | 
			
		||||
		c.JSON(
 | 
			
		||||
			http.StatusOK,
 | 
			
		||||
			gin.H{
 | 
			
		||||
				"code":  http.StatusOK,
 | 
			
		||||
				"error": "Welcome server 02",
 | 
			
		||||
			},
 | 
			
		||||
		)
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	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)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user