powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / не совсем джава но вдруг. кафка.
25 сообщений из 258, страница 5 из 11
не совсем джава но вдруг. кафка.
    #40030220
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ты уже реализовал передачу пачек?

формат мессаджа предусматривает что там может приходить 1+н элементов. но шлют практически всегда 1 элемент. если ты об этом.
я ничего не передаю я только слушаю.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030225
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно ли я понимаю что ты не влияешь на producer?
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030226
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Правильно ли я понимаю что ты не влияешь на producer?

ни на продюсер ни на конфиг кафки.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030228
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то все ... печально.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030230
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Как-то все ... печально.
пусть позовет взрослого)
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030232
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Как-то все ... печально.

выкачиваю весь топик в файл. проанализирую дальше видно будет. пока уже мессаджей выкачал больше чем по моим подсчетам выходило через вертикс. если так то выкину вертикс на помойку.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030243
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
mayton
Как-то все ... печально.

выкачиваю весь топик в файл. проанализирую дальше видно будет. пока уже мессаджей выкачал больше чем по моим подсчетам выходило через вертикс. если так то выкину вертикс на помойку.

10 дней по 8 часов это 80 часов ты обещал непрестанно это)).
Если поискать слово вертикс и кафка, то по всему веб только андрейка упоминается)))
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030245
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое вертикс? Поиск выдает слишком много разного материала.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030246
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Что такое вертикс? Поиск выдает слишком много разного материала.
никто не в курсе с таким ТС))
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030247
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
короче качаю все мессаджи в файл. посчитаю по файлу должно быть порядка ста лямов. есби будет сто лямов значит вертикс на помойку.

То что вертекс на помойку это даже не обсуждается. Но! Прежде чем его выкинуть нужно понять где проблема. Лень разбираться с ним(в том числе из-за того что вы не предоставили самозапускаемый проект), поэтому просто поспекулирую что vertx.executeBlocking не блокирует текущий тред, а направляет таску в какой-то тред пулл, эту гипотезу легко роверить добавив логирование текущего треда в код таски которую ты передаешь vertex. Так вот самое интересно как себя поведёт vertex когда ты начинаешь читать из кафки мессаджи бестрее чем этот тредпул пережовывает? Это вам нужно выяснить, есть такое предположение что он просто выкидывает таски которые не помещаются в очередь, или возникает эксепшен который вы не перехватываете.

Ну и опять же в продолжение спецкуляции - если текущий тред не блокируется при вызове vertx.executeBlocking , то вы комитет мессаджи до их фактической обработки, что может привести к потерям, если с обработкой что-то не задалось.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030255
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В это форуме давно уже никого нет. Я не знаю кому пишет вопросы Андрейка.

Здесь остались как в старом баре - завсегдатаи. 3 человека которые сидят за барной стойкой и лениво
переругиваясь смотрят телевизор. И никто новый сюда не придет.

Все остальные 99% - ушли в Дедофорум.

Пэтому мы здесь просто треплемся.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030269
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba
andreykaT
короче качаю все мессаджи в файл. посчитаю по файлу должно быть порядка ста лямов. есби будет сто лямов значит вертикс на помойку.

То что вертекс на помойку это даже не обсуждается. Но! Прежде чем его выкинуть нужно понять где проблема. Лень разбираться с ним(в том числе из-за того что вы не предоставили самозапускаемый проект), поэтому просто поспекулирую что vertx.executeBlocking не блокирует текущий тред, а направляет таску в какой-то тред пулл, эту гипотезу легко роверить добавив логирование текущего треда в код таски которую ты передаешь vertex. Так вот самое интересно как себя поведёт vertex когда ты начинаешь читать из кафки мессаджи бестрее чем этот тредпул пережовывает? Это вам нужно выяснить, есть такое предположение что он просто выкидывает таски которые не помещаются в очередь, или возникает эксепшен который вы не перехватываете.

Ну и опять же в продолжение спецкуляции - если текущий тред не блокируется при вызове vertx.executeBlocking , то вы комитет мессаджи до их фактической обработки, что может привести к потерям, если с обработкой что-то не задалось.

выкачал.

получилось 13 гигов текстовый файл. посчитал все мессаджи. вышло порядка 18 миллионов.

а здесь:

{
"0": 730933,
"1": 773311,
"2": 967338,
"3": 796927,
"4": 786933,
"5": 379265,
"6": 1152434,
"7": 968764,
"8": 966905,
"9": 1171124,
"10": 1173417,
"11": 1168902
}

при старте (когда я зашел с параметром фром бегиннинг, снял максимально возможные оффсеты для каждой партиции,получил первое сообщение и его текущий оффсет и сделал 1 раз МАКС - ТЕКУЩИЙ)
при старте у меня показывало дельту по каждой партиции по примерно 7 миллионов. итого я ожидал получить 7 миллионов * 12 = 84 миллиона.

по факту я получил примерно 18 миллионов.
где еще 70 миллионов?

консольный консамер не думаю что что то мог бы потерять.

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

То что вертекс на помойку это даже не обсуждается. Но! Прежде чем его выкинуть нужно понять где проблема. Лень разбираться с ним(в том числе из-за того что вы не предоставили самозапускаемый проект), поэтому просто поспекулирую что vertx.executeBlocking не блокирует текущий тред, а направляет таску в какой-то тред пулл, эту гипотезу легко роверить добавив логирование текущего треда в код таски которую ты передаешь vertex. Так вот самое интересно как себя поведёт vertex когда ты начинаешь читать из кафки мессаджи бестрее чем этот тредпул пережовывает? Это вам нужно выяснить, есть такое предположение что он просто выкидывает таски которые не помещаются в очередь, или возникает эксепшен который вы не перехватываете.

Ну и опять же в продолжение спецкуляции - если текущий тред не блокируется при вызове vertx.executeBlocking , то вы комитет мессаджи до их фактической обработки, что может привести к потерям, если с обработкой что-то не задалось.

там везде бросается эксепшн который останавливает вообще консамер целиком на любой эксепшн. и да - это работает.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030298
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай сведем твой исходник к банальности. Уж если вообще ничего непонятно - то самое простое - самое истинное.

Уберем вообще любые алгоритмы и оставим только вычитывание событи и посдчет штук.

Код: java
1.
2.
3.
AtomicInteger items = new AtomicInteger();
AtomicInteger polls = new AtomicInteger();
....



И еще. Почему здесь линии else {...} не существует. Добавь чтоли.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 



consumer.partitionsFor(topic, pts -> {
            if (pts.succeeded()) {
                Set<TopicPartition> topicPartitions = pts.result().stream().map(p -> new TopicPartition().setTopic(topic).setPartition(p.getPartition())).collect(Collectors.toSet());
                topicPartitions.forEach(tp -> {
                    consumer.committed(tp, cmt -> {
                        if (cmt.succeeded()) {
                            Long committedOffset = cmt.result().getOffset();
                            Integer topicPartition = tp.getPartition();
                            committedPartitionOffsets.put(topicPartition, committedOffset);
                        }
                        if (cmt.failed()) {
                            logger.error("Failed to fetch commited partitions list");
                            cmt.cause().printStackTrace();
                        }
                    });
                } else {
                    .....
                }

);            



Оберни все try{...} catch еще раз. Черт его знает вдруг у тебя там валит NPE.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030309
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
vimba
пропущено...

То что вертекс на помойку это даже не обсуждается. Но! Прежде чем его выкинуть нужно понять где проблема. Лень разбираться с ним(в том числе из-за того что вы не предоставили самозапускаемый проект), поэтому просто поспекулирую что vertx.executeBlocking не блокирует текущий тред, а направляет таску в какой-то тред пулл, эту гипотезу легко роверить добавив логирование текущего треда в код таски которую ты передаешь vertex. Так вот самое интересно как себя поведёт vertex когда ты начинаешь читать из кафки мессаджи бестрее чем этот тредпул пережовывает? Это вам нужно выяснить, есть такое предположение что он просто выкидывает таски которые не помещаются в очередь, или возникает эксепшен который вы не перехватываете.

Ну и опять же в продолжение спецкуляции - если текущий тред не блокируется при вызове vertx.executeBlocking , то вы комитет мессаджи до их фактической обработки, что может привести к потерям, если с обработкой что-то не задалось.

там везде бросается эксепшн который останавливает вообще консамер целиком на любой эксепшн. и да - это работает.

Что работает??? Вы хоть осознали что вы комитите мессаджи до их фактической обработки? Я немного почитал доки к этой шайтан машине, как и ожидалось runBlocking вызывающий тред не блочится, вместо этого выполнение уводится в отдельный экзекьютор а результат можно получить через callback.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030310
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba
andreykaT
пропущено...

там везде бросается эксепшн который останавливает вообще консамер целиком на любой эксепшн. и да - это работает.

Что работает??? Вы хоть осознали что вы комитите мессаджи до их фактической обработки? Я немного почитал доки к этой шайтан машине, как и ожидалось runBlocking вызывающий тред не блочится, вместо этого выполнение уводится в отдельный экзекьютор а результат можно получить через callback.
То есть вы посути вычитали пачку мессаджей, насовали тасок в экзекьютор и не дожидаясь окончания их обработки комитите и идёте за следующей пачкой.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030332
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba
andreykaT
пропущено...

там везде бросается эксепшн который останавливает вообще консамер целиком на любой эксепшн. и да - это работает.

Что работает??? Вы хоть осознали что вы комитите мессаджи до их фактической обработки? Я немного почитал доки к этой шайтан машине, как и ожидалось runBlocking вызывающий тред не блочится, вместо этого выполнение уводится в отдельный экзекьютор а результат можно получить через callback.

код там получает результат через колбэк и падает с убийством консамера ЕСЛИ блокирующая таска бросит ЛЮБОЙ эксепшн.
этого достаточно чтоб НЕ пропустить, а просто упасть с концами.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030368
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT,

Если бы я был твоим коллегой, то либо меня бы в дурку забрали, либо я бы тебя прикопал бы где-нибудь, чтобы никто не нашел, третьего не дано. Я даже не знаю какие слова найти, чтобы объяснить тебе совершенно очевидную вещь, что ты в общем случае коммитишь мессаджи до того их фактической обработки. Попробую последний раз объяснить кодом, если слова не помогают, и на этом пожалуй умываю руки, потому что случай явно патологический.
А код тебе нужно переписать хотя бы так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
private void startPollPartitionsTask() {
        vertx.setPeriodic(pollDelay, timerId -> {
            timerIds.put(timerId, true);
            kafkaConsumer.poll(Duration.ofMillis(pollDelay), ar1 -> {
                if (ar1.succeeded()) {
                    KafkaConsumerRecords<String, T> records = ar1.result();

                    // we need to wait for processing all records before commit
                    CountDownLatch batchLatch = new CountDownLatch(records.size());
 
                    logger.info("Consumer={}. Processing {} records from the topic={}", consumerId, records.size(), topic);
                    for (int i = 0; i < records.size(); i++) {
                        KafkaConsumerRecord<String, T> record = records.recordAt(i);
                        vertx.executeBlocking(promise -> executeOnRecordReceivedAction(record, promise, recordReceivedAction), res -> {

                            // signal that one record has been processed
                            batchLatch.countDown();

                            if (res.result() instanceof Exception) {
                                logger.error("Consumer: {}. Fail to ingest entity. key: {}. Stopping process", consumerId, record.key());
                                ((Exception) res.result()).printStackTrace();
                                killConsumer();
                                logger.error("Consumer: {}. Polling process is stopped", consumerId);
                            }
                        });
                    }

                    // wait all records to be processed
                    batchLatch.await();

                    kafkaConsumer.commit();
                }
                if (ar1.failed()) {
                    logger.error("Consumer={}. Polling process failed", consumerId);
                    ar1.cause().printStackTrace();
                }
            });
        });
    }
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030375
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba,
>прикопал бы где-нибудь
Могу организовать). Толку от ТС все равно никакого. Имидж кафки портит.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030405
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не гоните. Андрейка - хороший. Просто он с разработкой не связан. Я так думаю
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030406
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Угу.
Ему чел говорит: "Дело в очередности!".
А он радостно: "я выгрузил 70млн сообщений!"
Это не разработка, а логика банальная.
Взимосвязь вещей в природе.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030410
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он взял задачу которая ему не по зубам. Это очевидно.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030412
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Я не знаю почему он не любит классику программировния, как любишь ее ты
val = new....
))
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030433
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу val. Я думаю что у каждой вещи есть своё предназначение.
У жопы - срать. У val/var - тоже есть смысл. И он идет КМК дальше чем просто
сокращение кода.

А рефакторинг с
Код: java
1.
List<String> list = new ArrayList();


идет лучше с явной декларацией интерфейса. Здесь бабушка Варвара Лискова довольно кивает.
...
Рейтинг: 0 / 0
не совсем джава но вдруг. кафка.
    #40030441
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Согласен. Хотя я больше о том что он сразу прыгнул на flux, message oriented middleware не пройдя путь обычных сервлетов и операторов new.
Жизненный цикл классов, конструктор, десктруктор, каллбэки вместо GoTo и поток выполнения кода.
...
Рейтинг: 0 / 0
25 сообщений из 258, страница 5 из 11
Форумы / Java [игнор отключен] [закрыт для гостей] / не совсем джава но вдруг. кафка.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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