From 309da64677b69c8ec0df62886473b318948e7a31 Mon Sep 17 00:00:00 2001 From: derfenix Date: Tue, 12 Dec 2023 10:02:45 +0300 Subject: [PATCH] Refactoring --- README.md | 8 ++++---- cmd/server/main.go | 2 +- internal/application/application.go | 29 +---------------------------- pkg/messenger/service.go | 1 + 4 files changed, 7 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 74dde07..ecfdf86 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ ## Discovery Для поиска соседей используется механизм рассылки широковещательных сообщений. -Каждая нода периодически рассылает широковещательные сообщения со своим ip адресом. -Каждая нода так же случает широковещательные сообщения на том же порту и сохраняет +Каждая нода периодически рассылает широковещательные сообщения со своим ip адресом, а так же +случает широковещательные сообщения на том же порту и сохраняет у себя уникальный список полученных адресов. Все новые адреса отправляются в отдельный канал. За регистрацию отпадающих нод отвечает сервис рассылки сообщений, уведомляя о них discovery сервис через отдельный канал. @@ -31,8 +31,8 @@ ## Рассылка сообщений -Сервис рассылки сообщений получает новые адреса нод от discovery сервиса и -создаёт стрим для каждого полученного адреса ноды. При отключении стрима отправляет +Сервис рассылки сообщений получает новые адреса нод от discovery сервиса через выделенный канал +и создаёт стрим для каждого полученного адреса ноды. При отключении стрима отправляет сообщение с ip адресом отвалившейся ноды в discovery сервис. В каждый стрим периодически (период настраиваем) отправляется строка, которую diff --git a/cmd/server/main.go b/cmd/server/main.go index b5a1672..e9effe8 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -31,7 +31,7 @@ func main() { log.Sugar().Infof("Start service version %s", version) - app, err := application.NewApplication(&cfg, log) + app, err := application.NewApplication(cfg, log) if err != nil { log.Error("new application", zap.Error(err)) diff --git a/internal/application/application.go b/internal/application/application.go index 3ea1d58..ebae41d 100644 --- a/internal/application/application.go +++ b/internal/application/application.go @@ -19,7 +19,7 @@ type Application struct { log *zap.Logger } -func NewApplication(cfg *Config, log *zap.Logger) (*Application, error) { +func NewApplication(cfg Config, log *zap.Logger) (*Application, error) { discoveryOpts := []discovery.Option{ discovery.WithBroadcastInterval(cfg.BroadcastInterval), } @@ -62,30 +62,3 @@ func (a *Application) Start(ctx context.Context, wg *sync.WaitGroup) { go a.messenger.StartServer(ctx, wg) go a.messenger.Start(ctx, wg) } - -var _ = ` -s1-1 | Received 'apq34yod73' from <172.19.0.5> -s1-1 | Received 'cbtfl716li' from <172.19.0.3> -s1-1 | Received 'n84fg3mx9o' from <172.19.0.2> -s1-1 | Received 'zb98146fqz' from <172.19.0.4> - -s2-1 | Received '7h1s9ruilr' from <172.19.0.2> -s2-1 | Received 'aij179r0ck' from <172.19.0.3> -s2-1 | Received 'm3k0snj7ma' from <172.19.0.6> -s2-1 | Received 'tw5726fo7e' from <172.19.0.5> - -s3-1 | Received '32d20marhg' from <172.19.0.6> -s3-1 | Received 'ffs9pi6o9j' from <172.19.0.3> -s3-1 | Received 'wcso6aashe' from <172.19.0.5> -s3-1 | Received 'wfhcy9xbdj' from <172.19.0.4> - -s4-1 | Received '2le3u1ikyg' from <172.19.0.2> -s4-1 | Received '5locacst6w' from <172.19.0.4> -s4-1 | Received 'cf47nyd2ca' from <172.19.0.6> -s4-1 | Received 'guvfhb7wud' from <172.19.0.5> - -s5-1 | Received 'dsr7qt2x5l' from <172.19.0.3> -s5-1 | Received 'l67gc5xdt3' from <172.19.0.2> -s5-1 | Received 'mof0yp4vxt' from <172.19.0.6> -s5-1 | Received 'slc9tw30r4' from <172.19.0.4> -` diff --git a/pkg/messenger/service.go b/pkg/messenger/service.go index e2af73a..2f33d50 100644 --- a/pkg/messenger/service.go +++ b/pkg/messenger/service.go @@ -54,6 +54,7 @@ type Messenger struct { func (m *Messenger) Start(ctx context.Context, wg *sync.WaitGroup) { defer wg.Done() + defer close(m.FailNodesCh) for { select {