Skip to content
/ refresh Public

refresh delivers Spring Cloud Config Bus refresh notifications to Go applications

License

Notifications You must be signed in to change notification settings

udhos/refresh

Repository files navigation

license Go Report Card Go Reference

refresh

refresh delivers Spring Cloud Config Bus refresh notifications to Go applications.

Usage

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)
}

Test

  1. Run ./run-local-rabbit.sh

  2. Run refresh-example

Build and run:

go install ./examples/refresh-example
refresh-example
  1. Post a message

Open http://localhost:15672/

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.

About

refresh delivers Spring Cloud Config Bus refresh notifications to Go applications

Topics

Resources

License

Stars

Watchers

Forks

Packages