Refactoring

This commit is contained in:
2023-12-12 10:02:45 +03:00
parent 08a7c9c04f
commit 309da64677
4 changed files with 7 additions and 33 deletions

View File

@@ -20,8 +20,8 @@
## Discovery
Для поиска соседей используется механизм рассылки широковещательных сообщений.
Каждая нода периодически рассылает широковещательные сообщения со своим ip адресом.
Каждая нода так же случает широковещательные сообщения на том же порту и сохраняет
Каждая нода периодически рассылает широковещательные сообщения со своим ip адресом, а так же
случает широковещательные сообщения на том же порту и сохраняет
у себя уникальный список полученных адресов. Все новые адреса отправляются в
отдельный канал. За регистрацию отпадающих нод отвечает сервис рассылки сообщений,
уведомляя о них discovery сервис через отдельный канал.
@@ -31,8 +31,8 @@
## Рассылка сообщений
Сервис рассылки сообщений получает новые адреса нод от discovery сервиса и
создаёт стрим для каждого полученного адреса ноды. При отключении стрима отправляет
Сервис рассылки сообщений получает новые адреса нод от discovery сервиса через выделенный канал
и создаёт стрим для каждого полученного адреса ноды. При отключении стрима отправляет
сообщение с ip адресом отвалившейся ноды в discovery сервис.
В каждый стрим периодически (период настраиваем) отправляется строка, которую

View File

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

View File

@@ -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>
`

View File

@@ -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 {