99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Kitex 傳輸模塊擴展

2022-04-27 10:37 更新

Kitex 默認集成了自研的高性能網(wǎng)絡庫 Netpoll,但沒有與 Netpoll 強綁定,同時也支持使用者擴展其他網(wǎng)絡庫按需選擇。Kitex 還提供了 ShmIPC 進一步提升 IPC 性能,該擴展會在后續(xù)開源。

擴展接口 

傳輸模塊主要的擴展接口如下:

type TransServer interface {...}

type ServerTransHandler interface {...}

type ClientTransHandler interface {...}

type ByteBuffer interface {...}

type Extension interface {...}

// -------------------------------------------------------------
// TransServerFactory is used to create TransServer instances.
type TransServerFactory interface {
  NewTransServer(opt *ServerOption, transHdlr ServerTransHandler) TransServer
}

// ClientTransHandlerFactory to new TransHandler for client
type ClientTransHandlerFactory interface {
  NewTransHandler(opt *ClientOption) (ClientTransHandler, error)
}

// ServerTransHandlerFactory to new TransHandler for server
type ServerTransHandlerFactory interface {
  NewTransHandler(opt *ServerOption) (ServerTransHandler, error)
}

TransServer 是服務端的啟動接口,ServerTransHandler 和 ClientTransHandler 分別是服務端和調(diào)用端對消息的處理接口,ByteBuffer 是讀寫接口。相同的 IO 模型下 TransHandler 的邏輯通常是一致的,Kitex 對同步 IO 提供了默認實現(xiàn)的 TransHandler,針對不一樣的地方抽象出了 Extension 接口,所以在同步 IO 的場景下不需要實現(xiàn)完整的 TransHandler 接口,只需實現(xiàn) Extension 即可。

Netpoll 的擴展 

如下是 Kitex 對 Netpoll 同步 IO 的擴展,分別實現(xiàn)了Extension、ByteBuffer、TransServer 接口。


指定自定義的傳輸模塊

  • 服務端

option: ?WithTransServerFactory?, ?WithTransHandlerFactory?

var opts []server.Option
opts = append(opts, server.WithTransServerFactory(yourTransServerFactory)
opts = append(opts, server.WithTransHandlerFactory(yourTransHandlerFactory)

svr := xxxservice.NewServer(handler, opts...)

  • 調(diào)用端

option: ?WithTransHandlerFactory?

cli, err := xxxservice.NewClient(targetService, client.WithTransHandlerFactory(yourTransHandlerFactory)


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號