Size: a a a

2020 December 02

AS

Andrei 🦉 Sergeev in Go-go!
conluent написана поверх librdkafka, там все работает точно также
источник

KF

Konstantin Franchuk in Go-go!
Andrei 🦉 Sergeev
conluent написана поверх librdkafka, там все работает точно также
ну там вроде никакой метки нет , а тупо коммит
источник

KF

Konstantin Franchuk in Go-go!
А в sarama не понятно зачем вообще нужен commit и работает ли он вообще
источник

AS

Andrei 🦉 Sergeev in Go-go!
это неправильно использование librdkafka
источник

AS

Andrei 🦉 Sergeev in Go-go!
коммит в librdkafka синхронен и убивает производительность в 0, и там точно так же принято работать с помеченными оффсетами, которые точно также комитятся в фоне
источник

AS

Andrei 🦉 Sergeev in Go-go!
поэтому советую просто взять за аксиому commit = mark offset и все будет работать как задумывалось
источник

KF

Konstantin Franchuk in Go-go!
Andrei 🦉 Sergeev
поэтому советую просто взять за аксиому commit = mark offset и все будет работать как задумывалось
Всё бы хорошо, но смущает эта особенность sarama-либы, не солидно как то для такой либы такая ситуация с Commit()
источник

KF

Konstantin Franchuk in Go-go!
Andrei 🦉 Sergeev
коммит в librdkafka синхронен и убивает производительность в 0, и там точно так же принято работать с помеченными оффсетами, которые точно также комитятся в фоне
в фоне если автокоммит включен, если выключен всё логично, получили сообщение, обработали, если всё ок, сделали коммит, производительность на данном сервисе не критична
источник

AS

Andrei 🦉 Sergeev in Go-go!
Konstantin Franchuk
в фоне если автокоммит включен, если выключен всё логично, получили сообщение, обработали, если всё ок, сделали коммит, производительность на данном сервисе не критична
если вам не нужна производительность, тогда вам и кафка не нужна, возьмите тот же кролик и на 1 рпс он себя прекрасно покажет и контроля над сообщением / топологией в нём гораздо больше
источник

KF

Konstantin Franchuk in Go-go!
Andrei 🦉 Sergeev
если вам не нужна производительность, тогда вам и кафка не нужна, возьмите тот же кролик и на 1 рпс он себя прекрасно покажет и контроля над сообщением / топологией в нём гораздо больше
Да нет смысла ради одного микросервиса рабит ставить
источник

KF

Konstantin Franchuk in Go-go!
Производительность не критична, но это пока что, кроме того у кафки очень интересен механизм ksqldb
источник

KF

Konstantin Franchuk in Go-go!
Andrei 🦉 Sergeev
ну если вы сами Commit вызвали после того, как помарчили сообщения, то оно так и должно работать
если не вызывали, то можно посмотреть в исходники, в Close вполне может быть явный вызов Commit
а вообще какая у вас задача? зачем вам нужно имеено руками комитить, а не двигать оффсет?
Да, там реально в close вызывается flushToBroker, спасибо за наводку
источник

AM

Askold Monarkhov in Go-go!
Народ, у сервиса есть репозиторий. Чтобы протестировать сервис, ему нужно передать фейк репозиторий?
источник

RL

Ragnar Lodbrok in Go-go!
Askold Monarkhov
Народ, у сервиса есть репозиторий. Чтобы протестировать сервис, ему нужно передать фейк репозиторий?
Либо тестовый репозиторий, либо мок репозиторий
источник

AM

Askold Monarkhov in Go-go!
Ragnar Lodbrok
Либо тестовый репозиторий, либо мок репозиторий
т.е. сервис должен принимать интерфейс репозитория, чтобы это стало возможным?
источник

RL

Ragnar Lodbrok in Go-go!
Askold Monarkhov
т.е. сервис должен принимать интерфейс репозитория, чтобы это стало возможным?
Да
источник

AM

Askold Monarkhov in Go-go!
Спрашиваю так как у меня репозиторий одного вида и никогда не будет изменен, по этому интерфейс не делал. Т.е. делать интерфейс ради тестов это норма, так?
источник

S

Sergey in Go-go!
Вполне
источник

RL

Ragnar Lodbrok in Go-go!
Askold Monarkhov
Спрашиваю так как у меня репозиторий одного вида и никогда не будет изменен, по этому интерфейс не делал. Т.е. делать интерфейс ради тестов это норма, так?
Да, это стандартная практика
источник

S

Sergey in Go-go!
только объявляй интерфейс рядом с сервисом (с потребителем) и только с теми методами, которые сервисом используются.
источник