From 9a981ffe24db386c62e03c56159133ff6245bc4c Mon Sep 17 00:00:00 2001 From: jkoberg Date: Thu, 28 Sep 2023 14:08:03 +0200 Subject: [PATCH] make sse service scalable Signed-off-by: jkoberg --- changelog/unreleased/sse-scalability.md | 5 +++++ services/sse/pkg/command/server.go | 3 +++ services/sse/pkg/server/http/server.go | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/sse-scalability.md diff --git a/changelog/unreleased/sse-scalability.md b/changelog/unreleased/sse-scalability.md new file mode 100644 index 0000000000..f61d0ae433 --- /dev/null +++ b/changelog/unreleased/sse-scalability.md @@ -0,0 +1,5 @@ +Enhancement: Make sse service scalable + +When running multiple sse instances some events would not be reported to the user. This is fixed. + +https://github.com/owncloud/ocis/pull/7382 diff --git a/services/sse/pkg/command/server.go b/services/sse/pkg/command/server.go index b5da4063da..a88025e946 100644 --- a/services/sse/pkg/command/server.go +++ b/services/sse/pkg/command/server.go @@ -72,6 +72,9 @@ func Server(cfg *config.Config) *cli.Command { http.RegisteredEvents(_registeredEvents), http.TracerProvider(tracerProvider), ) + if err != nil { + return err + } gr.Add(server.Run, func(_ error) { cancel() diff --git a/services/sse/pkg/server/http/server.go b/services/sse/pkg/server/http/server.go index 430ae0db3d..010d63ed98 100644 --- a/services/sse/pkg/server/http/server.go +++ b/services/sse/pkg/server/http/server.go @@ -8,6 +8,7 @@ import ( "github.com/cs3org/reva/v2/pkg/events" "github.com/go-chi/chi/v5" chimiddleware "github.com/go-chi/chi/v5/middleware" + "github.com/google/uuid" "github.com/owncloud/ocis/v2/ocis-pkg/account" "github.com/owncloud/ocis/v2/ocis-pkg/cors" "github.com/owncloud/ocis/v2/ocis-pkg/middleware" @@ -78,7 +79,7 @@ func Server(opts ...Option) (http.Service, error) { ), ) - ch, err := events.Consume(options.Consumer, "sse", options.RegisteredEvents...) + ch, err := events.Consume(options.Consumer, "sse-"+uuid.New().String(), options.RegisteredEvents...) if err != nil { return http.Service{}, err }