|
как тестить кафку?
|
|||
---|---|---|---|
#18+
собссно есть компонент. в хибере в энтитилистенере вставлен кафка продьюссер. просто в конструкторе инициализируется. оттуда и шлет в топик все изменения сущностей. продьюссер не инжектится в энтитилистенер а прям там через нью создается. вопрос - как это тестировать. я поднял контекст хибера. прикрутил н2. ну оно и работает - создает реальный продьюссер (я максимум в тестах могу подкрутить конфиг продьюссера) и продьюссер фигачит реально объекты в топик. как мне замокать в таком конфиге продьюссера (это в идеале) и сдернуть с него объект который в него попадает. если бы это был простой юнит тест там понятно привинтить каптор и поехали. но здесь то реальный контекст поднимается. рассматривал вариант с тестконтейнером. но во-первых, контора против тестконтейнеров. во-вторых, мне же придется консамеры еще поднимать и вылавливать объекты. а это прям много кода. и что тут делать? как внутри энтитилистенера поймать объект который уходит в продьюссер и замокать продьюссер? мне все же нужен контекст хибера, чтоб проверить как отрабатывает именно взаимодействие с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2021, 22:42 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
короче сделал продюсер синглтоном, и просто подсовываю мок-продьюсер в него а потом запускаю контекст. но только кажется такая штука сломается если продьюсить в несколько потоков начнут. но с другой стороны, энтитилистенер один на всё приложение поднимается. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 00:14 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT, какой-то поток сознания, вот что я понял из всего: "мы пишем полную херню, как эту херню тестировать", и насколько я понимаю всю эту историю про тесты, TDD, SOLID и пр., считается, что если непонятно как писать тесты, то значит изначально написана дичь. что касается твоих "энтитилистенеров": в хибере это не лиснеры, а jpa-колбеки, придуманные специально для java-макак и поэтому имеющие крайне ограниченные возможности - можно взаимодействовать только с самой сущностью, а взаимодействовать с инфраструктурой категорически нельзя, хочешь взаимодействовать с инфраструктурой - реализуй слушателей из org.hibernate.event.spi которые взаимодействуют с org.hibernate.event.spi.AbstractEvent ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 04:32 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Андрея как всегда сложно понимать. Но мне кажется что вопрос стоит в пропускной способности некой конфигурации. И кажется что не существует теоретического ответа на этот вопрос. Лучше всего начать перформанс тестирование и мониторить где слабое место уже по факту возникновения этого слабого места. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 10:33 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
mayton, а причем тут производительность вообще? ТС из какого-нить @PreUpdate, который вообще никаких гарантий не дает даже на то, что данные до БД доедут, а не то что закоммитятся, шлет сообщения во внешнюю систему (кафку), специально против такой дичи разработчики хибера (или JPA, кто там первый был не в курсе, свечку не держал), сделали так, чтобы из jpa-колбеков до инфраструктуры было достучаться крайне сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 11:48 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT, какой-то поток сознания, вот что я понял из всего: "мы пишем полную херню, как эту херню тестировать", и насколько я понимаю всю эту историю про тесты, TDD, SOLID и пр., считается, что если непонятно как писать тесты, то значит изначально написана дичь. что касается твоих "энтитилистенеров": в хибере это не лиснеры, а jpa-колбеки, придуманные специально для java-макак и поэтому имеющие крайне ограниченные возможности - можно взаимодействовать только с самой сущностью, а взаимодействовать с инфраструктурой категорически нельзя, хочешь взаимодействовать с инфраструктурой - реализуй слушателей из org.hibernate.event.spi которые взаимодействуют с org.hibernate.event.spi.AbstractEvent спасибо за наводку про спи и абстрактивент. на данный момент сделал проще. я сделал продюссер синглтон (как кафка кстати рекомендует) ну и добавил два метода - где создается инстанс с настоящим кафкапродьюсером либо если параметр передается то инстанс создается с мок-кафка-продьюсером. собссно я так и сделал перед стартом теста загоняю туда мок кафка продьюсер, потом стартуется тест и уже шлет в мок. а я из мока спокойно через хистори это всё вытряхиваю. спасибо кафке за приятный апи. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 12:13 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Андрей Панфилов mayton, а причем тут производительность вообще? ТС из какого-нить @PreUpdate, который вообще никаких гарантий не дает даже на то, что данные до БД доедут, а не то что закоммитятся, шлет сообщения во внешнюю систему (кафку), специально против такой дичи разработчики хибера (или JPA, кто там первый был не в курсе, свечку не держал), сделали так, чтобы из jpa-колбеков до инфраструктуры было достучаться крайне сложно. меня постапдейт интересует. или посткриейт. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 12:14 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT меня постапдейт интересует. или посткриейт. единственное что тебя в хибере должно интересовать - это org.hibernate.engine.spi.ActionQueue#registerProcess, то место, где есть хоть какие-то гарантии (довольно шаткие), что данные попадут в БД ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 12:19 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT меня постапдейт интересует. или посткриейт. единственное что тебя в хибере должно интересовать - это org.hibernate.engine.spi.ActionQueue#registerProcess, то место, где есть хоть какие-то гарантии (довольно шаткие), что данные попадут в БД полазал ща по сорцам хибера. тебя не смущает что это оно и есть просто в фантике? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 13:01 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Андрей Панфилов andreykaT, какой-то поток сознания, вот что я понял из всего: "мы пишем полную херню, как эту херню тестировать", и насколько я понимаю всю эту историю про тесты, TDD, SOLID и пр., считается, что если непонятно как писать тесты, то значит изначально написана дичь. что касается твоих "энтитилистенеров": в хибере это не лиснеры, а jpa-колбеки, придуманные специально для java-макак и поэтому имеющие крайне ограниченные возможности - можно взаимодействовать только с самой сущностью, а взаимодействовать с инфраструктурой категорически нельзя, хочешь взаимодействовать с инфраструктурой - реализуй слушателей из org.hibernate.event.spi которые взаимодействуют с org.hibernate.event.spi.AbstractEvent можно делать инжекты через CDI апи. в кварке точно, думаю в его прародителе аналогично. в спринге опять же. я пока смотрю ивент.спи но пока не понимаю как мне это поможет. мне его точно так же надо будет промокивать где то как то. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 13:09 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT в фантике? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 13:12 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT можно делать инжекты через CDI апи. в кварке точно, думаю в его прародителе аналогично. в спринге опять же. я пока смотрю ивент.спи но пока не понимаю как мне это поможет. мне его точно так же надо будет промокивать где то как то. по-моему ты бредишь, твоему работодателю было бы гораздо выгоднее взять спеца на хиберу ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 13:17 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
мне нравится этот форум. задаешь один вопрос тебе отвечают на совсем другой который ты и не задавал. еще и хамят. спросил как тестируют кафку мне отвечают про сессии в хибере. спасибо тебе мой хамоватый друг. в спринге вообще инжект делается через стандартную аннотацию компонент над листенером. ну это так для справки и к теме вопроса не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 13:21 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT в спринге вообще инжект делается через стандартную аннотацию компонент над листенером. ну это так для справки и к теме вопроса не относится. Особо одаренный чтоли? нельзя из jpa-колбеков обращаться к инфраструктуре, как ты эти колбеки в хибер внедряешь не имеет значения - нельзя и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 13:35 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Андрей Панфилов ТС из какого-нить @PreUpdate, который вообще никаких гарантий не дает даже на то, что данные до БД доедут, а не то что закоммитятся, шлет сообщения во внешнюю систему (кафку) В Oracle похожие проблемы (дата муташин или как-то так) решаются простым образом: в before / after row триггере события пишутся в массив внутри программы/пакета в on commit триггере обрабатываются накопленные события из массива AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 14:03 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev В Oracle похожие проблемы (дата муташин или как-то так) решаются простым образом: в before / after row триггере события пишутся в массив внутри программы/пакета в on commit триггере обрабатываются накопленные события из массива AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 14:10 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT сорян. в этом сообщении я послал тебя найух но потом передумал и отредактировал. иди с миром. неужели ты думаешь, что от тебя это бы было хоть чуточку обидно? на форуме даже махровые джуны код показывают в надежде получить подсказку, а ты пытаешься пересказать, причем не потому что там что-то секретное (ага ноу-хау, в конструкторе продьюсер кафки создавать), а потому что там дерьмо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 14:23 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Андрей Панфилов ТС из какого-нить @PreUpdate, который вообще никаких гарантий не дает даже на то, что данные до БД доедут, а не то что закоммитятся, шлет сообщения во внешнюю систему (кафку) В Oracle похожие проблемы (дата муташин или как-то так) решаются простым образом: в before / after row триггере события пишутся в массив внутри программы/пакета в on commit триггере обрабатываются накопленные события из массива AFAIK тему с триггерами в оракле и логингом обновлений я тут предлагал с полгода назад - обосрали точно так же. но ща вроде ок )) чот тут все какие то агрессоры сплошные. ну я там Стаса еще понимаю а этот то канадец че такой агрессивный. может укусил кто. я тут вроде со всем максимально уважительно общаюсь. по крайней мере стараюсь да. вроде был форум-форумом а ща какое то собрание истеричных тёлок и говноплевателей. я посмотрел пару вариантов вдовесок как инжектить - через ивентлистенеррегистри просто туда складывать заинжекченные бины, и уже отлавливать непосредственно ивенты хибера, а не конкретной сущности, либо то что агрессивный товарищ сказал - но его вариант мне как то не очень. слишком много кода выходит и что то у меня смутные подозрения. а вообще спринг без проблем дает называть компонентом энтитилистенер. может это и неправильно и "для мартышек". касательно потерь - у кого теряет тот пусть и думает почему. интернеты про это знают мало что а значит это чьи то личные проблемы кривых косых рук ног когда сделали говно а потом не знают почему говно. или какие то совсем граничные кейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 17:07 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
что то типа того: автор EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry().getService(EventListenerRegistry.class); registry.appendListeners(EventType.PERSIST, new PersistEventListener() { @Override public void onPersist(PersistEvent persistEvent) throws HibernateException { //NOPMD вытряхиваем сущности из ивента. } @Override public void onPersist(PersistEvent persistEvent, Map map) throws HibernateException { //NOPMD } }); ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 17:09 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
ну и второе Код: java 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 17:20 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev В Oracle ... в on commit триггере А такое существует? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 18:02 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Псевдомизантроп, Наверное нет ))), в случае мутации данных на статемент левел. Но если очень хочется на коммит повесится, то гугле подсказывает work arround There is no ON COMMIT trigger mechanism in Oracle. There are workarounds however: You could use a materialized view with ON COMMIT REFRESH and add triggers to this MV. This would allow you to trigger the logic when a base table has been modified at the time of commit. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 18:24 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Вроде в Oracle как раз через очереди (родные Oracle'вые) и делают. https://www.sql.ru/forum/822214/trigger-posle-commit Не специалист по Hibernate, но вроде в Hibernate commit/rollback вполне отследить можно https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Interceptor.html afterTransactionCompletion(Transaction tx) Called after a transaction is committed or rolled back. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 18:45 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Вроде в Oracle как раз через очереди (родные Oracle'вые) и делают. https://www.sql.ru/forum/822214/trigger-posle-commit Не специалист по Hibernate, но вроде в Hibernate commit/rollback вполне отследить можно https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Interceptor.html afterTransactionCompletion(Transaction tx) Called after a transaction is committed or rolled back. ивент пост-что-угодно это не то что будет после того как транзакция закрыта? я хз как там на других континентах, но у меня этот ивент не отрабатывает в случае ролбэка. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2021, 21:55 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT, >чот тут все какие то агрессоры сплошные. = тех кто не показывает код или то что просят мемберы тут по пальцам пересчитать. Вот и делай выводы... почему к тебе именно агрессивны. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 10:22 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp andreykaT, >чот тут все какие то агрессоры сплошные. = тех кто не показывает код или то что просят мемберы тут по пальцам пересчитать. Вот и делай выводы... почему к тебе именно агрессивны. чуть выше я код показал. кроме того чел сказал типа не дойдет. я задал вполне разумно вопрос в постперсисте тоже не дойдет? чел меня просто отчленососил на ровном месте вообще без агрессии с моей стороны. что то там про мартышек рассказал про то что это вне инфры и тп (хотя это не так). это норм? мне кажется это типичный пример русского форума с агрессивными форумчанами класса "му**к". я так потихоньку начинаю понимать бесполезность этого форума. ответы на мои вопросы были просты до безобразия - юзай готовый прекрасный кафкамок продьюсер из коробки и юзай спай чтоб его заинжектить. всё. всякие советы как в хибере перехватывать события - это советы хоть и полезные (хотя смотря как их подать) но не совсем по тематике. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 11:10 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT, Кто тебе давал право обобщать? авторрусского форума Хочешь чтобы тебя забанили? Меня поражает толерантность чела, когда жрет со своим соседом из одной кастрюли и поносит соседа. НЕ ОБОБЩАЙ. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 11:22 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp andreykaT, Кто тебе давал право обобщать? авторрусского форума Хочешь чтобы тебя забанили? Меня поражает толерантность чела, когда жрет со своим соседом из одной кастрюли и поносит соседа. НЕ ОБОБЩАЙ. смтри: тебя не возмущает что некий агрессивный гражданин тут помоями брызгается причем совершенно немотивированно, но ты возбудился на то что я назвал вещи своими именами. мне совершенно параллельно забанят меня тут или нет. с недавних пор технической ценности этот форум больше не представляет. благодаря таким вот гражданам. тут обсуждать нечего. все обсуждения скатываются во взаимные оскорбления. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 11:52 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT PetroNotC Sharp andreykaT, >чот тут все какие то агрессоры сплошные. = тех кто не показывает код или то что просят мемберы тут по пальцам пересчитать. Вот и делай выводы... почему к тебе именно агрессивны. чуть выше я код показал. кроме того чел сказал типа не дойдет. я задал вполне разумно вопрос в постперсисте тоже не дойдет? чел меня просто отчленососил на ровном месте вообще без агрессии с моей стороны. что то там про мартышек рассказал про то что это вне инфры и тп (хотя это не так). это норм? мне кажется это типичный пример русского форума с агрессивными форумчанами класса "му**к". я так потихоньку начинаю понимать бесполезность этого форума. ответы на мои вопросы были просты до безобразия - юзай готовый прекрасный кафкамок продьюсер из коробки и юзай спай чтоб его заинжектить. всё. всякие советы как в хибере перехватывать события - это советы хоть и полезные (хотя смотря как их подать) но не совсем по тематике. У меня есть точка зрения что кафку не нужно тестировать (на correctness) вообще. Это - инфраструктурный объект. Как LAN, NAS, S3 buckets, Google Drives, файрволы и проч. Кафка РАБОТАЕТ по определению. Работает всегда корректно. Нужно тестировать свою бизнес-логику на модульном уровне. Если говорить об удобстве инжекции для интеграционных тестов - то здесь тоже можно обсуждать но это опять-же вопрос вообще к кафке не имеет отношения а имеет к Спрингу. Ну создай себе бин. Мокай его. Шпионь за ним. При чем тут несчастная кафка? Кафку можно еще отдельно посмотреть под нагрузкой. Но нагрузочные тесты - это отдельная тема. Их делают пару раз в жизни. Один раз для POC и второй раз когда уже совсем все плохо и "пропало всё" (c). Можно еще отдельно рассмотреть ошибки архитектуры конфигурации Кафка приложения. Кажется андрей уже один такой архитектурный вопрос поднимал. Но - тема потребует больше контекста. Возможно даже опубликовать конфиги и архетип приложения. P.S. Кстате дайте архетипы maven для типичного Kafka приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 11:53 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
ну что тестировать. я ж не про кафку говорил. а про свой код. банально - как он себя поведет если кафка недоступна? скипнет мессадж и дальше поедет или упадет? или как у тебя формируется сам документ что ты шлешь - все ли поля на месте? или поиграться с разными ошибками что может продьюссер возвращать? это ближе к первой части. я про эти тесты. или банально сработал ли у тебя в хибере ивент слушающий изменения сущности АДРЕС, когда ты обновил сущность ЮЗЕР присвоив ей вместо АДРЕС1 АДРЕС2. будет ли ивент на обновление? ведь ты юзера же обновляешь с точки зрения кода? а под капотом меняется ФК у АДРЕСа. насчет спринга - так я его не юзаю уже года 3 :) с чего весь спич и начался что в энтитилистенере нельзя заинжектить бины. зато при определенном конфиге (где ты уже ивентлистенеры в регистри сам подкладываешь) можно вполне законно это делать без всяких ухищрений. в любом случае, задачку я сделал, тесты написал. всё работает и не кашляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 12:04 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT тему с триггерами в оракле и логингом обновлений я тут предлагал с полгода назад - обосрали точно так же. но ща вроде ок )) andreykaT его вариант мне как то не очень. слишком много кода выходит и что то у меня смутные подозрения. andreykaT ну и второе Код: java 1. 2. 3.
Опять же, похоже что твой уровень не позволяет связать вместе два куска кода, прямо рокет-сайнс какой-то, не иначе: Код: java 1. 2. 3. 4. 5. 6. 7.
andreykaT всякие советы как в хибере перехватывать события - это советы хоть и полезные (хотя смотря как их подать) но не совсем по тематике. andreykaT зато при определенном конфиге (где ты уже ивентлистенеры в регистри сам подкладываешь) можно вполне законно это делать без всяких ухищрений Я считаю прекрасным, что этот топик позволил выявить такого чмо как ты: все это время ноешь, что то что тебе говорят - это чушь собачья, а сам втихую выполнил рекомендации, и все же продолжаешь ныть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 12:44 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT, Ты дорасти ТРУДОМ до его уровня и потом будешь так поучать. Меня возмущает когда 11 страниц форума занимают мемберы которые могли бы решить проблему на второй странице. не совсем джава но вдруг. кафка. Ещё раз неписанное правило форума - "ТС должен работать больше отвечающих". На твое обучение форум тратит больше и без всякой отдачи от тебя. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 13:18 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp andreykaT, Ты дорасти ТРУДОМ до его уровня и потом будешь так поучать. Меня возмущает когда 11 страниц форума занимают мемберы которые могли бы решить проблему на второй странице. не совсем джава но вдруг. кафка. Ещё раз неписанное правило форума - "ТС должен работать больше отвечающих". На твое обучение форум тратит больше и без всякой отдачи от тебя. Удачи! я всё жду когда же ты мне писать то перестанешь ) там проблема где была там и осталась. мессаджи терялись при ребалансе. ты вообще там утверждал что офсеты прыгать не могут. а они могут и это вообще поведение на 143% конвенционное это к слову о технических компетенциях. если вкратце, там я задачу решил просто количеством консамеров равным количеству партиций. что там в ее глубинах происходит - ушло задачами к тем кто заявляет что специалист по кафкам. ) а это как ты понимаешь не я. и, к сожалению, не ты. а следуя вашим советам я потратил неделю выпиливая вертикс чтоб проверить ваши убеждения что после этого точно "терять не будет". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 13:28 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT я всё жду когда же ты мне писать то перестанешь ) :) я тут живу и работаю. А ты гость вроде ))))))) По поводу твоего топика в 11 страниц, то там причина была в конфиге с галочкой. А конфиг В КОМПЛЕКТЕ с демкой ты 11 страниц отказывался выложить. Если бы выложил то топик был бы всего две страницы. Меньше пиши - лучше ссылку сюда кинь если я не прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2021, 14:28 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
andreykaT собссно есть компонент. в хибере в энтитилистенере вставлен кафка продьюссер. просто в конструкторе инициализируется. оттуда и шлет в топик все изменения сущностей. продьюссер не инжектится в энтитилистенер а прям там через нью создается. вопрос - как это тестировать. я поднял контекст хибера. прикрутил н2. ну оно и работает - создает реальный продьюссер (я максимум в тестах могу подкрутить конфиг продьюссера) и продьюссер фигачит реально объекты в топик. как мне замокать в таком конфиге продьюссера (это в идеале) и сдернуть с него объект который в него попадает. если бы это был простой юнит тест там понятно привинтить каптор и поехали. но здесь то реальный контекст поднимается. рассматривал вариант с тестконтейнером. но во-первых, контора против тестконтейнеров. во-вторых, мне же придется консамеры еще поднимать и вылавливать объекты. а это прям много кода. и что тут делать? как внутри энтитилистенера поймать объект который уходит в продьюссер и замокать продьюссер? мне все же нужен контекст хибера, чтоб проверить как отрабатывает именно взаимодействие с ним. Kafka embedded Stackoverflow Тестируйте, не обляпайтесь! <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 06:48 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
mad_nazgul andreykaT собссно есть компонент. в хибере в энтитилистенере вставлен кафка продьюссер. просто в конструкторе инициализируется. оттуда и шлет в топик все изменения сущностей. продьюссер не инжектится в энтитилистенер а прям там через нью создается. вопрос - как это тестировать. я поднял контекст хибера. прикрутил н2. ну оно и работает - создает реальный продьюссер (я максимум в тестах могу подкрутить конфиг продьюссера) и продьюссер фигачит реально объекты в топик. как мне замокать в таком конфиге продьюссера (это в идеале) и сдернуть с него объект который в него попадает. если бы это был простой юнит тест там понятно привинтить каптор и поехали. но здесь то реальный контекст поднимается. рассматривал вариант с тестконтейнером. но во-первых, контора против тестконтейнеров. во-вторых, мне же придется консамеры еще поднимать и вылавливать объекты. а это прям много кода. и что тут делать? как внутри энтитилистенера поймать объект который уходит в продьюссер и замокать продьюссер? мне все же нужен контекст хибера, чтоб проверить как отрабатывает именно взаимодействие с ним. Kafka embedded Stackoverflow Тестируйте, не обляпайтесь! <:o) спасибо. мне пока понравилась тема с кафка-мок консамирами и продюссерами. прям то что надо. там есть и методы для симуляции ошибок и методы для вытаскивания очереди сообщений и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 13:32 |
|
как тестить кафку?
|
|||
---|---|---|---|
#18+
Я так понмаю что тему можно уже закрыть? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2021, 13:49 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120488]: |
0ms |
get settings: |
18ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
27ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
671ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 1002ms |
0 / 0 |