<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          TP-Micro基于 Teleport 的微服務(wù)框架

          聯(lián)合創(chuàng)作 · 2023-09-28 05:30

          TP-Micro 是一個(gè)基于 Teleport 定制的、簡約而強(qiáng)大的微服務(wù)框架。

          安裝

          go version > 1.9
          go get -u -f -d github.com/xiaoenai/tp-micro/...
          cd $GOPATH/src/github.com/xiaoenai/tp-micro/cmd/micro
          go install

          特性

          • 支持服務(wù)自動(dòng)發(fā)現(xiàn)

          • 支持自定義服務(wù)鏈接選擇器

          • 支持負(fù)載均衡

          • 支持多路復(fù)用IO及其連接池

          • 支持自定義協(xié)議

          • 支持自定義Body的編解碼類型

          • 支持插件擴(kuò)展

          • 支持心跳機(jī)制

          • 日志信息詳盡,支持打印輸入、輸出消息的詳細(xì)信息(狀態(tài)碼、消息頭、消息體)

          • 支持設(shè)置慢操作報(bào)警閾值

          • 支持自定義日志

          • 支持平滑關(guān)閉與更新

          • 支持推送

          • 支持的網(wǎng)絡(luò)類型:tcptcp4tcp6unixunixpacket

          • 客戶端支持?jǐn)嗑€后自動(dòng)重連

          • 支持過載保護(hù)(斷路器)

          代碼示例

          • 服務(wù)端

          package main
          
          import (
              micro "github.com/xiaoenai/tp-micro"
              tp "github.com/henrylee2cn/teleport"
          )
          
          // Arg arg
          type Arg struct {
              A int
              B int `param:""`
          }
          
          // P handler
          type P struct {
              tp.PullCtx
          }
          
          // Divide divide API
          func (p *P) Divide(arg *Arg) (int, *tp.Rerror) {
              return arg.A / arg.B, nil
          }
          
          func main() {
              srv := micro.NewServer(micro.SrvConfig{
                  ListenAddress: ":9090",
              })
              srv.RoutePull(new(P))
              srv.ListenAndServe()
          }
          • 客戶端

          package main
          
          import (
              micro "github.com/xiaoenai/tp-micro"
              tp "github.com/henrylee2cn/teleport"
          )
          
          func main() {
              cli := micro.NewClient(
                  micro.CliConfig{},
                  micro.NewStaticLinker(":9090"),
              )
              defer cli.Close()
          
              type Arg struct {
                  A int
                  B int
              }
          
              var result int
              rerr := cli.Pull("/p/divide", &Arg{
                  A: 10,
                  B: 2,
              }, &result).Rerror()
              if rerr != nil {
                  tp.Fatalf("%v", rerr)
              }
              tp.Infof("10/2=%d", result)
              rerr = cli.Pull("/p/divide", &Arg{
                  A: 10,
                  B: 0,
              }, &result).Rerror()
              if rerr == nil {
                  tp.Fatalf("%v", rerr)
              }
              tp.Infof("test binding error: ok: %v", rerr)
          }

          更多示例

          開源協(xié)議

          Micro 項(xiàng)目采用商業(yè)應(yīng)用友好的 Apache2.0 協(xié)議發(fā)布

          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  毛片毛片毛片多人 | 日韩欧美另类视频 | 亚洲操逼视频 | 色老太HD老太色HD盘 | 国产精品99久久久久久www |