See the OpenSergo Website for the official website of OpenSergo.
See the 中文文档 for document in Chinese.
func StartAndSubscribeOpenSergoConfig() error {
// Set OpenSergo console logger (optional)
logging.NewConsoleLogger(logging.InfoLevel, logging.SeparateFormat, true)
// Set OpenSergo file logger (optional)
// logging.NewFileLogger("./opensergo-universal-transport-service.log", logging.InfoLevel, logging.JsonFormat, true)
// Create an OpenSergoClient.
openSergoClient, err := client.NewOpenSergoClient("127.0.0.1", 10246)
if err != nil {
return err
}
// Start the OpenSergoClient.
err = openSergoClient.Start()
if err != nil {
return err
}
// Create a SubscribeKey for FaultToleranceRule.
faultToleranceSubscribeKey := model.NewSubscribeKey("default", "foo-app", configkind.ConfigKindRefFaultToleranceRule{})
// Create a Subscriber.
sampleFaultToleranceRuleSubscriber := &samples.SampleFaultToleranceRuleSubscriber{}
// Subscribe data with the key and subscriber.
err = openSergoClient.SubscribeConfig(*faultToleranceSubscribeKey, api.WithSubscriber(sampleFaultToleranceRuleSubscriber))
if err != nil {
return err
}
// Create a SubscribeKey for RateLimitStrategy.
rateLimitSubscribeKey := model.NewSubscribeKey("default", "foo-app", configkind.ConfigKindRefRateLimitStrategy{})
// Subscribe data with the key, but without a subscriber.
// We may pull the data from the data cache later.
err = openSergoClient.SubscribeConfig(*rateLimitSubscribeKey))
return err
}
For more samples, please refer to here.
In OpenSergo Go SDK
, we provide a fundamental logger mechanism, which has the following features:
- provider a universal Logger interface. Users may register customized logger adapters.
- provider a default Logger implementation, which can be used directory.
- provider a default Logger format assembler, which can assemble two formatters of log message.
Detail info refers to pkg/common/logging