agollo

package module
v1.6.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2018 License: Apache-2.0 Imports: 15 Imported by: 0

README

Agollo - Go Client for Apollo

Build Status codebeat badge Coverage Status License GoDoc GitHub release

方便Golang接入配置中心框架 Apollo 所开发的Golang版本客户端。

Installation

如果还没有安装Go开发环境,请参考以下文档Getting Started ,安装完成后,请执行以下命令:

gopm get github.com/cihub/seelog -v -g
gopm get github.com/coocood/freecache -v -g
gopm get github.com/zouyx/agollo -v -g

或者

go get -u github.com/cihub/seelog
go get -u github.com/coocood/freecache
go get -u github.com/zouyx/agollo

请注意: 最好使用Go 1.8进行开发

Features

  • 实时同步配置
  • 灰度配置
  • 客户端容灾
  • 配置文件容灾 (v1.6.0+)

Usage

  • 异步启动agollo

场景:启动程序不依赖加载Apollo的配置。

func main() {
	 go agollo.Start()
}
  • 同步启动agollo(v1.2.0+)

场景:启动程序依赖加载Apollo的配置。例:初始化程序基础配置。

func main() {
	 agollo.Start()
}
  • 启动agollo - 自定义logger控件(感谢 @Adol1111 提供)
func main() {
	 go agollo.StartWithLogger(loggerInterface)
}
  • 监听变更事件(阻塞)
func main() {
	event := agollo.ListenChangeEvent()
	changeEvent := <-event
	bytes, _ := json.Marshal(changeEvent)
	fmt.Println("event:", string(bytes))
}
  • 获取Apollo的配置

    • String
    agollo.GetStringValue(Key,DefaultValue)
    
    • Int
    agollo.GetIntValue(Key,DefaultValue)
    
    • Float
    agollo.GetFloatValue(Key,DefaultValue)
    
    • Bool
    agollo.GetBoolValue(Key,DefaultValue)
    

 后续可支持更多类型

 欢迎查阅 Wiki 或者 godoc 获取更多有用的信息

 如果你觉得该工具还不错或者有问题,一定要让我知道,可以发邮件或者留言

User

Contribution

License

The project is licensed under the Apache 2 license.

Reference

Apollo : https://github.com/ctripcorp/apollo

Documentation

Index

Constants

View Source
const FILE = "apolloConfig.json"

Variables

This section is empty.

Functions

func GetApolloConfigCache added in v0.0.7

func GetApolloConfigCache() *freecache.Cache

func GetBoolValue

func GetBoolValue(key string, defaultValue bool) bool

func GetFloatValue

func GetFloatValue(key string, defaultValue float64) float64

func GetIntValue

func GetIntValue(key string, defaultValue int) int

func GetStringValue

func GetStringValue(key string, defaultValue string) string

func InitCustomConfig added in v1.4.0

func InitCustomConfig(loadAppConfig func() (*AppConfig, error))

init config by custom

func ListenChangeEvent added in v1.3.0

func ListenChangeEvent() <-chan *ChangeEvent

list config change event

func Start

func Start() error

start apollo

func StartRefreshConfig

func StartRefreshConfig(component AbsComponent)

func StartWithLogger added in v1.1.0

func StartWithLogger(loggerInterface LoggerInterface) error

Types

type AbsComponent

type AbsComponent interface {
	Start()
}

type ApolloConfig

type ApolloConfig struct {
	ApolloConnConfig
	Configurations map[string]string `json:"configurations"`
}

type ApolloConnConfig added in v0.0.7

type ApolloConnConfig struct {
	AppId         string `json:"appId"`
	Cluster       string `json:"cluster"`
	NamespaceName string `json:"namespaceName"`
	ReleaseKey    string `json:"releaseKey"`
	sync.RWMutex
}

func GetCurrentApolloConfig

func GetCurrentApolloConfig() *ApolloConnConfig

type AppConfig

type AppConfig struct {
	AppId            string `json:"appId"`
	Cluster          string `json:"cluster"`
	NamespaceName    string `json:"namespaceName"`
	Ip               string `json:"ip"`
	NextTryConnTime  int64  `json:"-"`
	BackupConfigPath string `json:"backupConfigPath"`
}

func GetAppConfig

func GetAppConfig(newAppConfig *AppConfig) *AppConfig

type CallBack added in v1.0.2

type CallBack struct {
	SuccessCallBack   func([]byte) (interface{}, error)
	NotModifyCallBack func() error
}

type ChangeEvent added in v1.3.0

type ChangeEvent struct {
	Namespace string
	Changes   map[string]*ConfigChange
}

config change event

type ConfigChange added in v1.3.0

type ConfigChange struct {
	OldValue   string
	NewValue   string
	ChangeType ConfigChangeType
}

type ConfigChangeType added in v1.3.0

type ConfigChangeType int

config change type

const (
	ADDED ConfigChangeType = iota
	MODIFIED
	DELETED
)

type ConnectConfig added in v1.0.2

type ConnectConfig struct {
	//设置到http.client中timeout字段
	Timeout time.Duration
	//连接接口的uri
	Uri string
}

type LoggerInterface added in v1.1.0

type LoggerInterface interface {
	Debugf(format string, params ...interface{})

	Infof(format string, params ...interface{})

	Warnf(format string, params ...interface{}) error

	Errorf(format string, params ...interface{}) error

	Debug(v ...interface{})

	Info(v ...interface{})

	Warn(v ...interface{}) error

	Error(v ...interface{}) error
}

type NotifyConfigComponent

type NotifyConfigComponent struct {
}

func (*NotifyConfigComponent) Start

func (this *NotifyConfigComponent) Start()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL