micro.newService()中newOptions
func newOptions(opts ...Option) Options {
opt := Options{
Auth: auth.DefaultAuth,
Broker: broker.DefaultBroker,
Cmd: cmd.DefaultCmd,
Config: config.DefaultConfig,
Client: client.DefaultClient,
Server: server.DefaultServer,
Store: store.DefaultStore,
Registry: registry.DefaultRegistry,
Router: router.DefaultRouter,
Runtime: runtime.DefaultRuntime,
Transport: transport.DefaultTransport,
Context: context.Background(),
Signal: true,
}
for _, o := range opts {
o(&opt)
}
return opt
}
初始化了一堆根底设置,来看看Transporttransport.DefaultTransport,
在transport/transport.go中的DefaultTransport Transport = newHTTPTransport()
func NewTransport(opts ...Option) Transport {
return newHTTPTransport(opts...)
}
func newHTTPTransport(opts ...Option) *httpTransport {
var options Options
for _, o := range opts {
o(&options)
}
return &httpTransport{opts: options}
}
这里就初始化并设置options,返回了一个httpTransport{}
手动指定其余的Transport,两种形式
- micro.NewService()中传入
micro.Transport(grpc.NewTransport()),
, 即可应用grpc Transport - plugins.go中import退出
"github.com/micro/go-plugins/transport/grpc/v2"
发表回复