Size: a a a

2021 June 17

VY

Vladislav Yarmak in Go-go!
штуки три минимум
источник

VY

Vladislav Yarmak in Go-go!
(я лично их избегаю)
источник

АК

Александр Костюченко... in Go-go!
и не обязательно они в докере еще, верно?
источник

АК

Александр Костюченко... in Go-go!
все, дошло
источник

АК

Александр Костюченко... in Go-go!
спасибо.
источник

VY

Vladislav Yarmak in Go-go!
без разницы, даже если в докере но на другом сервере - все проблемы реальной сети будут иметь место
источник

АК

Александр Костюченко... in Go-go!
Подумаю тогда как канал пересоздавать и обновлять в структуре
источник

VY

Vladislav Yarmak in Go-go!
у некоторых либ автореконнект есть вроде
источник

VY

Vladislav Yarmak in Go-go!
надо смотреть
источник

Н

Никита in Go-go!
канал вроде нигде не пересоздается автоматом, даже в случае реконнекта
источник

И

Илья in Go-go!
Это довольно непросто сделать, но обычно можно целиком перезапускать  компонент которому нужен канал.

Непросто по тому что у каналов есть состояние, типа QoS, настройки подтверждений и т.д.. Нужно будет повторять весь сетап с новым каналом
источник

АК

Александр Костюченко... in Go-go!
То есть такой вариант не совсем верен и помимо этого нужно здесь еще и очереди пересоздать?

type RabbitClient struct {
 ch *amqp.Channel
}

func (r *RabbitClient) UpdateChannel() error {
 conn, err := amqp.Dial("amqp://guest:guest@rabbitsrv:5672/")
 if err != nil {
   return err
 }
 ch, err := conn.Channel()
 if err != nil {
   return err
 }

 r.ch = ch
 return nil
}
источник

АК

Александр Костюченко... in Go-go!
Или я вообще не так понял и каждый пакет которому нужен реббит должен внутри себя создавать канал и очередь ?
источник

И

Илья in Go-go!
Смотря как это будет использоваться. Но здесь как минимум утекают соединения
источник

АК

Александр Костюченко... in Go-go!
1. Утекают - имеете ввиду что не нужно каждый раз создавать Conn а использовать старый?
источник

AB

Andrey Burov in Go-go!
++
источник

AV

Alexey Voronkov in Go-go!
а если  в Defer добавить amqp.Close() ? Или нет такого?
источник

AB

Andrey Burov in Go-go!
на каждый dial, должен быть close
источник

АК

Александр Костюченко... in Go-go!
я пока для себя делаю простую штуку
типа

1. Сервис получает запрос, получает из редиса количество запросов за последние n сек и если  их больше n то добавляет пользователя в бан.

После этого я хочу отправить сообщение в реббит о том, что есть новый бан

2. Второй сервис считывает очередь раз в n секунд (не дошёл еще до консюмера поэтому хз как там будет)
источник

АК

Александр Костюченко... in Go-go!
То есть после создания канала нам conn уже не нужен, верно понимаю?
источник