# README
集成viper和nacos
golang习惯使用viper获取配置,viper本身并不支持nacos,所以需要约定一种方式从nacos中获取配置,然后再注入viper.
不过需要运行时修改配置的变量其实并不多,很多时候可以使用viper.UnmarshalKey
将不会变更但反复使用的配置注入struct,这样可以提高性能.
只有确定会运行时变更的配置,才建议使用viper.Get
的方式进行动态读取.
同时本服务会直接提供一个namingClient用于运行时微服务查找和负载均衡.
# Packages
No description provided by the author
# Functions
ChooseBest 用于手动负载均衡,根据服务名选择最佳实例.
Close 服务关闭时注销client.
GetConfigClient 获取配置客户端,默认配置在应用程序同目录或者_config文件夹下 默认配置文件的格式见bootstrap.yml,和java的配置保持一致方便运维人员操作 通过注册回调函数完成配置变更监听.
GetDefaultViper 获取默认的配置,这里直接做了日志等级自动切换.
GetNamingClient 获取负载均衡器示例 会自动将当前节点注册到NACOS,逻辑同java,可以通过namingClient获取其他微服务实例 从而实现客户端负载均衡.
GetViper 通过group和dataId生成viper 注意这里没有没有用once,所以每次调用都会产生一个新的 配置变化时,回调函数默认会处理日志等级,如果有其他回调也可以在调用的时候传入 注意这里所有配置文件必须在同一个namespace.
Init 初始化失败后会直接panic.
No description provided by the author
No description provided by the author
RegisterInstance 手动注册实例.
RegisterInstanceWithAddr 手动注册服务地址信息 如外网地址手动注册.
No description provided by the author
RegisterInstanceWithMeta 有参数的注册实例.