在micro框架中,我们在使用NewService(opts …Option) Service方法创建服务实例时,我们可以通过传入Option参数来控制服务的不同的行为,下面我们就来了解下在2.6.0版本中所有的Option及其作用:
- micro.Name(n string) Option:指定服务的名称。服务名称通常按照命名空间.类型.名字的方式来进行命名。命名空间对应的是服务所在的项目;类型代表服务的类型,如:gRPC、web等。gRPC类型的服务通常缩写为srv。在服务启动成功后,服务名称会自动注册到服务发现中心上,这是服务发现的最基本的要求。服务名称默认是go.micro.server。因为这个默认值,就要求我们必须为每个服务提供名称,否则会造成名称的冲突。
- func Version(v string) Option:指定服务的版本。缺省的值是启动时间的字符串。服务的版本结合Selector,我们可以实现灰度测试、A/B测试等操作。
- Address(addr string) Option:指定gRPC服务的地址。缺省的地址是localhost加上一个随机的端口。因为客户端是通过服务发现中心发现的服务,所以随机的端口并不影响服务发现。实际上,通常会指定一个固定的端口,这样有利于安全控制。
- RegisterTTL(t time.Duration) Option:指定在服务注册中心注册服务的TTL信息。缺省是1分钟。
- RegisterInterval(t time.Duration) Option:指定服务向服务注册中心发布状态的时间间隔。缺省是30秒。这个Option会在服务异常停掉的情况下,防止出现“invalid registration information”情况。
- WrapHandler(w …server.HandlerWrapper) Option&