1. 选项

前言: 设置和使用 Go Micro 选项

Go Micro 使用可变选项模型来设计包的创建和初始化传递参数, 以及作为方法的可选参数. 这为扩展跨插件的选项使用提供了灵活性.

1.1. 概述

创建新服务时, 您可以选择传递其他参数, 例如设置名称, 版本, 消息代理, 注册表或存储, 以便与所有其他内部一起使用.

选项通常定义如下

type Options struct {
  Name string
  Version string
  Broker broker.Broker
  Registry registry.Registry
}

type Option func(*Options)

// set the name
func Name(n string) Option {
    return func(o *Options) {
        o.Name = n
    }
}

// set the broker
func Broker(b broker.Broker) Option {
    return func(o *Options) {
        o.Broker = b
    }
}

然后可以按照如下方式设置这些设置

service := micro.NewService(
    micro.Name("foobar"),
    micro.Broker(broker),
)

1.2. 服务选项

在 Go Micro 中, 我们有许多选项可以设置, 包括将用于身份验证, 配置和存储等内容的基础包. 您可以使用 service.Options() 来访问这些.

身份验证, 配置, 注册表, 存储等包将默认为我们的零依赖插件. 在要通过环境变量或标志配置它们的位置, 可以指定 service.Init() 来分析它们。

例如, 如果要使用文件存储来替换内存存储, 可以按照以下方式完成

## as an env var
MICRO_STORE=file go run main.go

## or as a flag
go run main.go --store=file

然后在内部, 可以通过选项访问存储

service := micro.NewService(
    micro.Name("foobar"),
)

service.Init()

store := service.Options().Store

results matching ""

    No results matching ""