Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / не совсем джава но вдруг. кафка. / 25 сообщений из 258, страница 1 из 11
13.12.2020, 18:45
    #40027471
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
Я знаю что щас скорее всего полетят тапки но вдруг кто знает.
короче, тема:
есть компакт-топик. есть 12 партиций. читаем топик сначала.
есть партиция икс, читается с оффсета ну скажем тысяча. считаем по порядку 1001, 1002, 1003, 1004, 1005 иии 1205, 1206 и тп
скипанули двести мессаджей.
что за..? загуглил на эту тему написали что да вот де бывает ребаланс и может скипануть. взял другой топик. там только одна партиция. тоже самое запустил шарманку. ничего не скипает.

написал в первый раз клиента на вертиксе. (под капотом у кварка) такой модный благородный реактивный. подумал дело в нем. переписал на обычной голый кафка сдк. та же фигня.

стоял автокоммит. убрал сделал коммит вручную - получил в полле 200 мессаджей - заокммитил, получил еще 200 закоммитил еще и так по кругу.

не помогло.

я понимаю что тут скорее всего что то с кафкой. но кафкаводы отпираются говорят что у них всё ок (они скорее всего даже не пытались читать топик сначала всквозь).

собссно вопрос кто нибудь сталкивался с таким поведением когда оффсеты прыгают? это прям не очень тема потому что мне нужна схема где будет как минимум раз сообщение дойдет. оно может дублироваться, приходить вне ордера но не должно исчезнуть.
...
Рейтинг: 0 / 0
13.12.2020, 19:23
    #40027484
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT,
Закон message driven систем это - ничего не должно ломаться если сообщение не пришло или оно пришло дублируясь.
Это выполняется у тебя надеюсь.
Если у тебя от упорядоченности и гарантированной доставки жизнь зависит, то выкинуть message driven.
Только синхронно.
...
Рейтинг: 0 / 0
13.12.2020, 20:27
    #40027500
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
кафка гарантирует ордеринг в рамках одного ключа. один ключ всегда в одной и той же партиции. мне этого достаточно. хотя даже это не критично. тем не менее это означает что если одна и та же сущность обновлялась 25 раз то все 25 обновлений лягут в одну партицию и придут в том порядке в каком ушли.
тем не менее, речь не про ордеринг.
а про то что в рамках одной партиции оффсет не растет на +1 а он может быть +1 +1 +1 +1 +1434 +1 +1
и я хз что с этим делать. данные теряются :) система терпит тот факт что они появятся не сразу. но она не терпит что они не появятся никогда.
...
Рейтинг: 0 / 0
13.12.2020, 20:45
    #40027506
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT
не появятся никогда
это серьезное обвинение.
Тесть не на оффсет а на "никогда" в студию
...
Рейтинг: 0 / 0
13.12.2020, 20:49
    #40027507
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
PetroNotC Sharp
andreykaT
не появятся никогда
это серьезное обвинение.
Тесть не на оффсет а на "никогда" в студию

ты вменяемый?
...
Рейтинг: 0 / 0
13.12.2020, 21:08
    #40027511
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT,
Я знаю чт ты из разряда ленивых. Тесты тут для всех не выложишь никогда.
...
Рейтинг: 0 / 0
13.12.2020, 21:10
    #40027513
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT
ты вменяемый?
кажется кто-то под ником PetroNotC Sharp совсем другой....
...
Рейтинг: 0 / 0
13.12.2020, 21:13
    #40027516
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
вадя,
Вы ТС. От вас просят логи. Какая разница кто под ником?
Вы флудеры что ли?
...
Рейтинг: 0 / 0
13.12.2020, 21:16
    #40027517
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
PetroNotC Sharp
вадя,
Вы ТС. От вас просят логи. Какая разница кто под ником?
Вы флудеры что ли?

тебе логи чего именно? как прыгает оффсет?
...
Рейтинг: 0 / 0
13.12.2020, 21:19
    #40027518
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT
система терпит тот факт что они появятся не сразу. но она не терпит что они не появятся никогда.
ты вменяемый?
Из твоего предложения следует что данные НЕ ПОЯВЛЯЮТСЯ НИКОГДА и система.... Падает?
...
Рейтинг: 0 / 0
14.12.2020, 00:21
    #40027529
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
Как же я люблю андрейкины топики
...
Рейтинг: 0 / 0
17.12.2020, 02:57
    #40028571
vimba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
mayton
Как же я люблю андрейкины топики

Сказала Кафка, выкидывая 200 мессаджей :-)

А если серьезно, то нужно делать пример демонстрирующий баг и заводить issue в ихней JIRA. Только чтобы занятых людей не отвлекать зря, example лучше сначала сюда на верефикацию кинуть, проблема то на 146% заключается в кривых руках, я на это даже могу бутылку вискаря поставить.
...
Рейтинг: 0 / 0
19.12.2020, 20:13
    #40029316
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
что значит выложить баг? показать что вот тут циферка оффсета 100, а при следующем полле циферка оффсета 1000? никого не смутит что это снимается с моего же приложения?
...
Рейтинг: 0 / 0
19.12.2020, 20:41
    #40029317
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
Мне как-то бухгалтер проел мозг доказывая что sequence в базах данных должен выдавать строго
последовательно значения без пробелов. Ему там надо-было для формирования документов
присваивать им номера.

По топику. Я еще раз скажу что не спец в кафке. Но мне кажется что генераторы последовательностей
в TCP и в прочих инженерно-технических решениях вовсе не гарантируют нам каких-то особых контрактов.
Их задача - уникальность а существование белых пятен - это просто оптимизация перформанса.

Например поток-продюсер который планирует выдать пачку (batch/branch) сообщений - резервирует
диапазон... [ 1000...1199 ] чтоб следующий поток зохватил уже следующую пачку [ 1200...1399 ].

При этом если первый поток падает - обратно пачка уже не возвращается. Она - уже использована
как туалетная бумага. И незачем ее искать или по ней плакать.

Как-то так.
...
Рейтинг: 0 / 0
19.12.2020, 21:02
    #40029323
Sergunka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
https://github.com/apache/kafka

Вот исходный код.

https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java

Вот объяснялка от туда строки 110 - 112

автор * The {@link #position(TopicPartition) position} of the consumer gives the offset of the next record that will be given
* out. It will be one larger than the highest offset the consumer has seen in that partition. It automatically advances
* every time the consumer receives messages in a call to {@link #poll(Duration)}.
...
Рейтинг: 0 / 0
19.12.2020, 21:09
    #40029325
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT
что значит выложить баг? показать что вот тут циферка оффсета 100, а при следующем полле циферка оффсета 1000? никого не смутит что это снимается с моего же приложения?

Сначала оформить словами хотелку или недостаток.
И без слова оффсет.
Бизнес аналитик не знает такого слова.
Он знает: "сообщение А не пришло в систему Б в течении Х часов. Или.....
....
Если не умеешь формулировать, то брось заниматься Messagen Driven system.
Не твое это.
Либо кодируй чёткое ТЗ от того кто умеет.
...
Рейтинг: 0 / 0
20.12.2020, 14:33
    #40029464
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
Sergunka
https://github.com/apache/kafka

Вот исходный код.

https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java

Вот объяснялка от туда строки 110 - 112

автор * The {@link #position(TopicPartition) position} of the consumer gives the offset of the next record that will be given
* out. It will be one larger than the highest offset the consumer has seen in that partition. It automatically advances
* every time the consumer receives messages in a call to {@link #poll(Duration)}.

ну... написано +1. а у меня может быть плюс 500 тысяч.
...
Рейтинг: 0 / 0
20.12.2020, 22:44
    #40029563
vimba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT
что значит выложить баг?

SSCCE Short, Self Contained, Correct (Compilable), Example .

Без запускаемого примера который показывает как теряются двести мессаджей, с вами разговаривать не о чем. Потому что ожидать о твас можно всё чего угодно, вплоть до включенного автокомита в комбинации с проглатыванием эксепшенов - тобишь прочитали пачку мессаджей упали при обработке первого же из пачки не дойдя до следующего, а в итоге всю пачку всё равно закомитили. В кафке вам баги нужно искать в самую последнюю очередь, поэтому берите Testcontainers Kafka и выкладывайте проектик на гитхаб демонстрирующий потерю 200 мессаджей при его запуске, тогда и поговорим, заодно и кафку сразу не отходя от кассы пофиксим, если там конечно действительно есть баг, в чем я очень сильно сомневаюсь.
...
Рейтинг: 0 / 0
21.12.2020, 07:25
    #40029608
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
vimba,
>Без запускаемого примера°....
А ТС хоть кол на голову теши.
Вот уже 4ый его топик он слушает только себя и у него минимум кода в постах.
19 декабря проснулся. Сделал удивленные глазки и опять заснул. До сдедующего своего топика про оффсеты и бла бла бла.
...
Рейтинг: 0 / 0
21.12.2020, 10:50
    #40029648
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
Андрей. Я предлагаю завести дефект здесь https://issues.apache.org/jira/projects/KAFKA/issues/KAFKA-10869?filter=allopenissues
и если его закроют с резолюцией - не баг тогда это просто особенность конфигурации или софта.

Я также в дальнейшем предлагаю не поднимать топики по кафке здесь, в форуме Java т.к. экспертизы не хватает.
...
Рейтинг: 0 / 0
21.12.2020, 13:58
    #40029734
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
конфиг при старте консамера:
автор allow.auto.create.topics = true
auto.commit.interval.ms = 5000
auto.offset.reset = earliest
bootstrap.servers = [o-----.se:31092]
check.crcs = true
client.dns.lookup = default
client.id =
client.rack =
connections.max.idle.ms = 540000
default.api.timeout.ms = 60000
enable.auto.commit = false
exclude.internal.topics = true
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
group.id = ---i-group-4ceed390-2441-4e7f-b1d0-19ae4eb80a31asdfg
group.instance.id = null
heartbeat.interval.ms = 3000
interceptor.classes = []
internal.leave.group.on.close = true
isolation.level = read_committed
key.deserializer = class org.apache.kafka.common.serialization.StringDeserializer
max.partition.fetch.bytes = 1048576
max.poll.interval.ms = 300000
max.poll.records = 400
metadata.max.age.ms = 300000
metric.reporters = []
metrics.num.samples = 2
metrics.recording.level = INFO
metrics.sample.window.ms = 30000
partition.assignment.strategy = [class org.apache.kafka.clients.consumer.RangeAssignor]
receive.buffer.bytes = 65536
reconnect.backoff.max.ms = 1000
reconnect.backoff.ms = 50
request.timeout.ms = 30000
retry.backoff.ms = 100
sasl.client.callback.handler.class = null
sasl.jaas.config = null
sasl.kerberos.kinit.cmd = /usr/bin/kinit
sasl.kerberos.min.time.before.relogin = 60000
sasl.kerberos.service.name = null
sasl.kerberos.ticket.renew.jitter = 0.05
sasl.kerberos.ticket.renew.window.factor = 0.8
sasl.login.callback.handler.class = null
sasl.login.class = null
sasl.login.refresh.buffer.seconds = 300
sasl.login.refresh.min.period.seconds = 60
sasl.login.refresh.window.factor = 0.8
sasl.login.refresh.window.jitter = 0.05
sasl.mechanism = GSSAPI
security.protocol = PLAINTEXT
security.providers = null
send.buffer.bytes = 131072
session.timeout.ms = 10000
ssl.cipher.suites = null
ssl.enabled.protocols = [TLSv1.2]
ssl.endpoint.identification.algorithm = https
ssl.key.password = null
ssl.keymanager.algorithm = SunX509
ssl.keystore.location = null
ssl.keystore.password = null
ssl.keystore.type = JKS
ssl.protocol = TLSv1.2
ssl.provider = null
ssl.secure.random.implementation = null
ssl.trustmanager.algorithm = PKIX
ssl.truststore.location = null
ssl.truststore.password = null
ssl.truststore.type = JKS
value.deserializer = class com.-----MessageDeserializer
...
Рейтинг: 0 / 0
21.12.2020, 14:13
    #40029742
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT
конфиг при старте консамера:
автор allow.auto.create.topics = true
auto.commit.interval.ms = 5000
auto.offset.reset = earliest
bootstrap.servers = [o-----.se:31092]
check.crcs = true
client.dns.lookup = default
client.id =
client.rack =
connections.max.idle.ms = 540000
default.api.timeout.ms = 60000
enable.auto.commit = false
exclude.internal.topics = true
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
group.id = ---i-group-4ceed390-2441-4e7f-b1d0-19ae4eb80a31asdfg
group.instance.id = null
heartbeat.interval.ms = 3000
interceptor.classes = []
internal.leave.group.on.close = true
isolation.level = read_committed
key.deserializer = class org.apache.kafka.common.serialization.StringDeserializer
max.partition.fetch.bytes = 1048576
max.poll.interval.ms = 300000
max.poll.records = 400
metadata.max.age.ms = 300000
metric.reporters = []
metrics.num.samples = 2
metrics.recording.level = INFO
metrics.sample.window.ms = 30000
partition.assignment.strategy = [class org.apache.kafka.clients.consumer.RangeAssignor]
receive.buffer.bytes = 65536
reconnect.backoff.max.ms = 1000
reconnect.backoff.ms = 50
request.timeout.ms = 30000
retry.backoff.ms = 100
sasl.client.callback.handler.class = null
sasl.jaas.config = null
sasl.kerberos.kinit.cmd = /usr/bin/kinit
sasl.kerberos.min.time.before.relogin = 60000
sasl.kerberos.service.name = null
sasl.kerberos.ticket.renew.jitter = 0.05
sasl.kerberos.ticket.renew.window.factor = 0.8
sasl.login.callback.handler.class = null
sasl.login.class = null
sasl.login.refresh.buffer.seconds = 300
sasl.login.refresh.min.period.seconds = 60
sasl.login.refresh.window.factor = 0.8
sasl.login.refresh.window.jitter = 0.05
sasl.mechanism = GSSAPI
security.protocol = PLAINTEXT
security.providers = null
send.buffer.bytes = 131072
session.timeout.ms = 10000
ssl.cipher.suites = null
ssl.enabled.protocols = [TLSv1.2]
ssl.endpoint.identification.algorithm = https
ssl.key.password = null
ssl.keymanager.algorithm = SunX509
ssl.keystore.location = null
ssl.keystore.password = null
ssl.keystore.type = JKS
ssl.protocol = TLSv1.2
ssl.provider = null
ssl.secure.random.implementation = null
ssl.trustmanager.algorithm = PKIX
ssl.truststore.location = null
ssl.truststore.password = null
ssl.truststore.type = JKS
value.deserializer = class com.-----MessageDeserializer


Это к чему?
В соседнем топике не ты?
...
Рейтинг: 0 / 0
21.12.2020, 15:50
    #40029782
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
mayton
Андрей. Я предлагаю завести дефект здесь https://issues.apache.org/jira/projects/KAFKA/issues/KAFKA-10869?filter=allopenissues
и если его закроют с резолюцией - не баг тогда это просто особенность конфигурации или софта.

Я также в дальнейшем предлагаю не поднимать топики по кафке здесь, в форуме Java т.к. экспертизы не хватает.

я в рамках этого форума задавал этот вопрос в других топиках там тоже никто не знает ничего. хотя проблему в интернете загуглить можно. вот решения - нет.
...
Рейтинг: 0 / 0
21.12.2020, 15:52
    #40029785
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
vimba
andreykaT
что значит выложить баг?

SSCCE Short, Self Contained, Correct (Compilable), Example .

Без запускаемого примера который показывает как теряются двести мессаджей, с вами разговаривать не о чем. Потому что ожидать о твас можно всё чего угодно, вплоть до включенного автокомита в комбинации с проглатыванием эксепшенов - тобишь прочитали пачку мессаджей упали при обработке первого же из пачки не дойдя до следующего, а в итоге всю пачку всё равно закомитили. В кафке вам баги нужно искать в самую последнюю очередь, поэтому берите Testcontainers Kafka и выкладывайте проектик на гитхаб демонстрирующий потерю 200 мессаджей при его запуске, тогда и поговорим, заодно и кафку сразу не отходя от кассы пофиксим, если там конечно действительно есть баг, в чем я очень сильно сомневаюсь.

так я не говорю что кафка глючит или код глючит.
я говорю что оффсет меняется нелинейно. МОЖЕТ быть такое что если это компакт-топик и если продьссер послал тампбстоун то эти мессаджи находящиеся под оффсетами х, х+1, х+2 и т.п. затираются и потом когда консамер по ним бежит он их скипает? или у всех мессаджей по офсетам смещение идет сразу? мне кажется это накладно и проще так как я выше написал?

ну типа партиция А. там мессаджи 1,2,3,4,5,6,7,8,9,10. консамер шлет по айдишкам мессаджей которые лежат в оффсетах 4,5,6 три тамбстона. получается 1,2,3,7,8,9,10 -- и их я и получаю. такое возможно?
...
Рейтинг: 0 / 0
21.12.2020, 16:14
    #40029795
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не совсем джава но вдруг. кафка.
andreykaT
mayton
Андрей. Я предлагаю завести дефект здесь https://issues.apache.org/jira/projects/KAFKA/issues/KAFKA-10869?filter=allopenissues
и если его закроют с резолюцией - не баг тогда это просто особенность конфигурации или софта.

Я также в дальнейшем предлагаю не поднимать топики по кафке здесь, в форуме Java т.к. экспертизы не хватает.

я в рамках этого форума задавал этот вопрос в других топиках там тоже никто не знает ничего. хотя проблему в интернете загуглить можно. вот решения - нет.

Ему 5 человек - Приведи демку.
Он 20 раз - "я везде задавал этот вопрос..."))))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / не совсем джава но вдруг. кафка. / 25 сообщений из 258, страница 1 из 11
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]