refresh delivers Spring Cloud Config Bus refresh notifications to Go applications.
See example: examples/refresh-example/main.go
import "github.com/udhos/refresh/refresh"
amqpURL := "amqp://guest:guest@rabbitmq:5672/"
me := filepath.Base(os.Args[0])
debug := true
// "#" means receive notification for all applications
refresher := refresh.New(amqpURL, me, []string{"#"}, debug, nil)
for app := range refresher.C {
log.Printf("refresh: received notification for application='%s'", app)
}
-
Run ./run-local-rabbit.sh
-
Run refresh-example
Build and run:
go install ./examples/refresh-example
refresh-example
- Post a message
Login with guest:guest
Open exchange springCloudBus: http://localhost:15672/#/exchanges/%2F/springCloudBus
Expand "Publish message".
Publish a sample message like this:
{
"type": "RefreshRemoteApplicationEvent",
"timestamp": 1649804650957,
"originService": "config-server:0:0a36277496365ee8621ae8f3ce7032ce",
"destinationService": "refresh-example:**",
"id": "5a4cb501-652a-4ae2-9d3e-279e1d2a2169"
}
Check the logs for refresh-example application.