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}

初始化了一堆根底设置,来看看Store
store.DefaultStore,
这里不要间接去看store/store.go中的
DefaultStore Store = new(noopStore)
因为在micro/defaults.go中曾经初始化了,默认应用的是
store.DefaultStore = memoryStore.NewStore()

// NewStore returns a memory storefunc NewStore(opts ...store.Option) store.Store {    s := &memoryStore{        options: store.Options{            Database: "micro",            Table:    "micro",        },        store: cache.New(cache.NoExpiration, 5*time.Minute),    }    for _, o := range opts {        o(&s.options)    }    return s}type memoryStore struct {    options store.Options    store *cache.Cache}
  1. 初始化了memoryStore{},store是应用的patrickmn/go-cache
  2. 设置options,返回memoryStore实例

性能比较简单,在store/memory/memory.go封装了读写删改等操作函数

其余store有cache,cockroach,file,service,实现都比较简单,有趣味能够自行翻看