Skip to content

Latest commit

 

History

History
65 lines (43 loc) · 1.77 KB

File metadata and controls

65 lines (43 loc) · 1.77 KB

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

options := refresh.Options{
    AmqpURL:      amqpURL,
    ConsumerTag:  me,
    Applications: []string{"#"}, // "#" means receive notification for all applications
    Debug:        debug,
}

refresher := refresh.New(options)

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.