<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      golang 同時(一個項目)注冊http和GRPC服務

      main 里面

      package main
      
      import (
          "fmt"
          "github.com/gin-gonic/gin"
          "github.com/hashicorp/consul/api"
          grpc "gorm_project/grpc/services"
          "gorm_project/route"
          "gorm_project/utils"
          "log"
          "net/http"
      )
      
      func main() {
          // **************協程開始Grpc服務 **************************
          go grpc.RunGrpc()
          utils.InitRedisClient()
          r := gin.Default()
          // ****** consul健康檢查服務 *******
          r.GET("/health", func(c *gin.Context) { c.String(http.StatusOK, "OK") })
          //r.Use(middleware.ValiTokenMiddleware())
          route.AddGoodsRoute(r)
          route.AddOrderInfo(r)
          // *************注冊服務到consul **********************
          client, regId, err := ConsulRegister()
          if err != nil {
              return
          } else { // 注銷 consul 服務
              defer client.Agent().ServiceDeregister(regId)
          }
          r.Run(":8595")
      }
      
      // ***************注冊服務到consul 方法***********************
      func ConsulRegister() (*api.Client, string, error) {
          // 創建Consul客戶端
          config := api.DefaultConfig()
          config.Address = "39.101.194.250:8500" // Consul服務器地址
          client, err := api.NewClient(config)
          if err != nil {
              log.Fatal(err)
          }
          // 注冊服務到consul
          reg := new(api.AgentServiceRegistration)
          reg.ID = "httpgrpc-http-service-id"
          reg.Name = "httpgrpc-http"
          reg.Tags = []string{"httpgrpc-http"}
          reg.Port = 8595
          reg.Address = "127.0.0.1"
          reg.Check = &api.AgentServiceCheck{
              HTTP:                           fmt.Sprintf("http://localhost:%d/health", reg.Port),
              Timeout:                        "5s",
              Interval:                       "10s",
              DeregisterCriticalServiceAfter: "30s",
          }
          err = client.Agent().ServiceRegister(reg)
          return client, reg.ID, err
      }

      協程里的GRPC 注冊到consul

      package grpc
      
      import (
          "context"
          "fmt"
          "github.com/hashicorp/consul/api"
          pb "gorm_project/grpc/services/proto"
          "log"
          "net"
      
          "google.golang.org/grpc"
      )
      
      type Server struct {
          pb.UnimplementedGreeterServer
      }
      
      func (s *Server) SayHello(cxt context.Context, r *pb.HelloRequest) (h *pb.HelloReply, e error) {
          return &pb.HelloReply{Message: "好樣的"}, nil
      }
      
      func RunGrpc() {
          fmt.Println("開始監聽了~~~~~")
          // 1.開始監聽
          listen, err := net.Listen("tcp", ":9868")
          if err != nil {
              fmt.Println("listen err:", err)
              return
          }
          defer listen.Close()
          // 2.創建GRPC 服務
          server := grpc.NewServer()
          // 3.將服務和實例注冊 ******** 注意 pb 取于.proto 里的 option go_package = "./;pb";  ********
          pb.RegisterGreeterServer(server, &Server{})
          // *************注冊服務到consul **********************
          client, regId, err := ConsulRegister()
          if err != nil {
              return
          } else { // 注銷 consul 服務
              defer client.Agent().ServiceDeregister(regId)
          }
          // 4.服務開始監聽
          errs := server.Serve(listen)
          if errs != nil {
              fmt.Println("服務出錯 err:", err)
              return
          }
          //time.Sleep(time.Second * 10)
      }
      
      // ***************注冊服務到consul 方法***********************
      func ConsulRegister() (*api.Client, string, error) {
          // 創建Consul客戶端
          config := api.DefaultConfig()
          config.Address = "39.101.194.250:8500" // Consul服務器地址
          client, err := api.NewClient(config)
          if err != nil {
              log.Fatal(err)
          }
          // 注冊服務
          reg := new(api.AgentServiceRegistration)
          reg.ID = "httpgrpc-grpc-service-id"
          reg.Name = "httpgrpc-grpc"
          reg.Tags = []string{"httpgrpc-grpc"}
          reg.Port = 8595
          reg.Address = "127.0.0.1"
          reg.Check = &api.AgentServiceCheck{
              HTTP:                           fmt.Sprintf("http://localhost:%d/health", reg.Port),
              Timeout:                        "5s",
              Interval:                       "10s",
              DeregisterCriticalServiceAfter: "30s",
          }
          err = client.Agent().ServiceRegister(reg)
          return client, reg.ID, err
      }

      效果

       

      posted @ 2024-06-16 00:45  酒沉吟  閱讀(67)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日本精品极品视频在线| 久久99热成人精品国产| 国产精品特级毛片一区二区三区| 亚洲国产精品综合久久20| 丰满少妇高潮惨叫久久久| 国产盗摄视频一区二区三区| 福利视频一区二区在线| 国产在线中文字幕精品| 午夜视频免费试看| 国产精品久久久天天影视香蕉| 日韩精品不卡一区二区三区| 亚洲午夜福利精品无码不卡| 大屁股国产白浆一二区| 道孚县| 色吊丝一区二区中文字幕| 亚洲国产午夜福利精品| 国产AV无码专区亚洲AV紧身裤| 鲁一鲁一鲁一鲁一澡| 国产成人一区二区三区在线| 国精品无码一区二区三区在线看| 农村欧美丰满熟妇xxxx| 精品综合一区二区三区四区| 99中文字幕国产精品| 精品日韩亚洲AV无码| 久久精品国产大片免费观看| 亚洲人成网站在线观看播放不卡 | 亚洲国产日韩一区三区| 四虎成人在线观看免费| 无码小电影在线观看网站免费| 精品av一区二区三区不卡| 国产精品毛片久久久久久久| 国产偷自一区二区三区在线| 中文字幕日韩有码av| 韩国青草无码自慰直播专区| 中文字幕国产精品一二区| 欧美丰满熟妇xxxx性ppx人交| 少妇人妻av毛片在线看| 库伦旗| 4hu44四虎www在线影院麻豆| 人妻夜夜爽天天爽三区麻豆av| 四虎国产精品成人免费久久|