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

Что такое "асинхронная технология"? Вся сеть асинхронна по своей сути. Еще раз объяснить, что в amqp при rpc происходит по сути тоже самое, что и http, только с участием промежуточного сервака? Хз что вы прицепились к "синхронно/асинхронно", сейчас даже ветвление в процессоре асинхронное. Прицепились бы к промежуточному серваку, например, к ерлангу или я не знаю. Обидно, за уровень срача, честное слово.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999628
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster

Понятно. У меня с 2гб ram на дохлой виртуалке 20к умеет, у них на крутом железе 30к кое-как. Или что-то у них с руками или ты что-то недоговариваешь.
...
Ну если нихрена не делать, то можно хоть миллион rqs делать, вопросов нет.

Как же так... вы постоянно топили, что в очередях сообщения не просираются, а в REST какие-то невообразимые накладные расходы на транспорт, а тут выясняется, что если настроить очередь так, чтобы сообщения в очереди действительно не просирались, то накладные расходы в REST таковы, что нужно сделать каскад из 10 нжинксов, чтобы получить такой же throughput как у RabbitMQ, вот тут тоже эксперты по RabbitMQ выдают "рекомендации" :
- Use transient messages
- Split your queues over different cores
- Disable manual acks and publish confirms
- Avoid multiple nodes (HA)

Из всего прочитанного я сделал следующий вывод: у RabbitMQ есть два режима работы:
- терять сообщения, в этом случае оно хоть как-то к REST приближается, но из-за request/reply нужно все делить на 2
- тормозить
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999644
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
andreykaT
А зачем асинхронную технологию натягивать на синхронные вызовы?

Что такое "асинхронная технология"? Вся сеть асинхронна по своей сути. Еще раз объяснить, что в amqp при rpc происходит по сути тоже самое, что и http, только с участием промежуточного сервака? Хз что вы прицепились к "синхронно/асинхронно", сейчас даже ветвление в процессоре асинхронное. Прицепились бы к промежуточному серваку, например, к ерлангу или я не знаю. Обидно, за уровень срача, честное слово.

мне нравится здесь описание:
https://www.reactivemanifesto.org/

на мой взгляд суть в том что твоя система должна ОТВЕЧАТЬ скажем так особенностям работы твоей фигни. если отвечает то ок. если нет - то сова на глобусе.

ты так и не сказал в чем проблема рпц против очереди? особенно там где рпц решает задачу лучше очереди. ты же предлагаешь делать суть-рпц поверх очереди. вопрос - ЗОЧЕМ?

не ну ты конечно молодец если построил систему где рпц нет. а если есть?
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999647
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
особенно.. если учесть (я за твои аббревиатуры не очень в курсе, сорян), что та же кафка построена на тупом поллинге и мэйлбоксах.

типа у тя есть база, в эту базу один по рпц фигачит данные, другой по рпц ТУПО полит базу и выгребает если есть чо. )) а - асинхронность. о - очереди. тьфу.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999650
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
то накладные расходы в REST таковы, что нужно сделать каскад из 10 нжинксов, чтобы получить такой же throughput как у RabbitMQ

Субъективщина. И я хз, чем и что меряли пацаны с тестами хттп серваков и что у них там за хттп, может они долбят свои серваки по одному tcp соединению, а потом рисуют 600k rqs.
Андрей Панфилов
терять сообщения

Даже без durable очередей это по надёжности лучше, чем хттп напрямую, хотя бы в сценарии, когда делается рестарт сервиса.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999652
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чем проблема рестарта сервиса? ну ты дернул сервис он не ответил ты у себя знаешь что что-то пошло не так. точно так же кафка может быть напрмер в дауне. сильно разница большая?
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999653
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
ты так и не сказал в чем проблема рпц против очереди? особенно там где рпц решает задачу лучше очереди. ты же предлагаешь делать суть-рпц поверх очереди. вопрос - ЗОЧЕМ?

Я уже говорил зочем. Для балансировки нагрузки, резервирования сервисов, непрерывной интеграции. Ну, как бы пока можно не делать, но всё равно к этому же придёшь и будет тоже самое, только с костылями на nginx. Зочем? Если пока всё ок, мне хватает, ну ладно, понятно, ничего против не имею.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999654
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
а в чем проблема рестарта сервиса? ну ты дернул сервис он не ответил

В том что сервис должен отвечать?

andreykaT
точно так же кафка может быть напрмер в дауне.

По-серьёзному брокер работает как кластер, потому что он вообще падать не должен.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999655
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,

Кстати, у меня очереди durable. И 20k rqs на говне. Я не знаю, что там с этими пацанами и их бенчем.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999658
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
andreykaT
а в чем проблема рестарта сервиса? ну ты дернул сервис он не ответил

В том что сервис должен отвечать?

andreykaT
точно так же кафка может быть напрмер в дауне.

По-серьёзному брокер работает как кластер, потому что он вообще падать не должен.

точно так же есть континуус интегрейшн когда мешок сервисов работают в кластере за балансером и один упавший другие не заметит.
это по-серьезному. а по-не-серьезному твой кролик точно так же может завалиться а ты будешь логи неделю читать че не так.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999659
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...да, я не топлю за отказ от очередей. я топлю за осознанность применения той или иной технологии.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999665
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
точно так же есть континуус интегрейшн когда мешок сервисов работают в кластере за балансером

Да. Я про это и говорю.

andreykaT
...да, я не топлю за отказ от очередей. я топлю за осознанность применения той или иной технологии.

Так в чём осознанность микросервисов на хттп? Что завалится и хер с ним? Просрали запрос и хер с ним? Ну да, потому притащат nginx, прикостылят недоочереди где-нибудь внутри или сбоку, точки обмена, топики, сделают чтобы можно было по одному соединению всё гонять и получится тот же amqp, только поверх хттп. Мне вот говорят "нада синхронно, это же надо сделать, это же костыли писать", а остальное типа не надо писать или так сойдёт, или это в упор игнорируют (зато посмотрите, какие у нас бенчи!) Пока все выглядит так, что диды писали на хттп, мы пишем и ты пиши, т.е. осознанность уровня дельфистов у которых есть формочки, им веб - сложна, потому что там нет формочек, с другой стороны в вебе есть доставка контента, а у них нет, но обновлялку бинарников им писать не сложна.
Может я не прав, конечно, мне просто интересно.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999681
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему завалится?

Пришла ошибка - сделали повтор, балансировшик перекинул на соседний работающий узел, пользователь получил ответ (разумеется чуть дольше, чем без ошибок/перезагрузок)
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #39999711
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
andreykaT
точно так же есть континуус интегрейшн когда мешок сервисов работают в кластере за балансером

Да. Я про это и говорю.

andreykaT
...да, я не топлю за отказ от очередей. я топлю за осознанность применения той или иной технологии.

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

во-первых, в зависимости от задачи очень часто это ДОПУСТИМО потерять часть данных.
во-вторых, ретрай-паттерны рулят. причем для всего, для очередей в том числе. это если тебе важны данные.
кстати, диды сервисы интегрировали не через хттп там какая то дичь была через которую севрсиы (сервлеты) могли синхронно общаться внутри контейнера. вообще без всяких хттп. томкат жетти вебсфера и прочий исторический мусор.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000142
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Андрей Панфилов
то накладные расходы в REST таковы, что нужно сделать каскад из 10 нжинксов, чтобы получить такой же throughput как у RabbitMQ

Субъективщина. И я хз, чем и что меряли пацаны с тестами хттп серваков и что у них там за хттп, может они долбят свои серваки по одному tcp соединению, а потом рисуют 600k rqs.
Андрей Панфилов
терять сообщения

Даже без durable очередей это по надёжности лучше, чем хттп напрямую, хотя бы в сценарии, когда делается рестарт сервиса.


Если вам не нравятся результаты тестов, которые я привел, можете сделать свои, благо и там и там методика и исходный код опубликованы. Но есть мнение что особо не поможет, о том что в RabbitMQ наступают проблемы с latency при потоке в 30-40 тысяч сообщений в секунду, пишут даже на сайте RabbitMQ: https://www.rabbitmq.com/blog/2020/06/18/cluster-sizing-case-study-mirrored-queues-part-1/
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000203
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
во-первых, в зависимости от задачи очень часто это ДОПУСТИМО потерять часть данных.

Ладно, я понял. Не всем критична доставка, очереди, точки обмена и прочее. Где-то можно жить без этого.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000384
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Ладно, я понял. Не всем критична доставка, очереди, точки обмена и прочее. Где-то можно жить без этого.
Чет вы быстро выдохлись. Давайте лучше схему с request/reply с точки зрения производительности чуть более подробно разберем, а то есть мнение, что мое предположение о делении throughput на 2 было ошибочным...

вот мы подключаемся к RabbitMQ, я так полагаю что в приложении нужен некий пул этих персистентных соединений - мы же не хотим, чтобы это было медленно как в HTTP/1.0, но когда мы посылаем сообщение из определенного места в коде, у нас есть желание, чтобы ответ в это же место и пришел, поэтому мы должны создать временную очередь, в которую должен приходить ответ и которую слушать будем только мы. Эта очередь должна быть всегда уникальна и к соединению из пула ее ну никак привязывать нельзя, в противном случае на таймаутах другие вызовы будут получать наши ответы вместо своих, т.е. прежде чем послать сообщение в RabbitMQ мы должны дополнительно вызывать некий RPC, который в RabbitMQ создаст новую очередь (кстати, кто должен чистить старые?) - вам не кажется, что в этом месте появляются дополнительные расходы, соизмеримые с установлением соединения по HTTP?
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000625
mirudom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловну очевидно: весь контекст сериализовывать , а потом рассказывать про low coupling
Андрей,
Сонтент ? Вы против low coupling ?
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000626
mirudom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmasterВся сеть асинхронна по своей сути. Уважаемый crutchmaster,
дайте ссылку на объяснение где почитать.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000627
mirudom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей,
Контент ? Конечно.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000741
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirudom
дайте ссылку на объяснение где почитать

Это не очевидно? Ты отправляешь вызов по сети и ждешь, пока придёт ответ. Пакеты тебе могут притди не один за другим, возможно потребуется повторная передача, по этому же интерфейсу идут пакеты для других приложений и т.д и т.п. Синхронно (a->b->c) работает только процессор и то не всегда.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000743
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Http это синхронный протокол. Мне жаль.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000744
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
вот мы подключаемся к RabbitMQ, я так полагаю что в приложении нужен некий пул этих персистентных соединений

Зачем? По соединению за сообщение как в апаче?
Андрей Панфилов
вам не кажется

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

Андрей Панфилов
Эта очередь должна быть всегда уникальна и к соединению из пула ее ну никак привязывать нельзя

Можно. Таймауты работают на прослушивание созданной очереди, каким боком тут соединение? Оно живёт своей жизнью, передаёт данные туда-сюда.
послать сообщение в RabbitMQ мы должны дополнительно вызывать некий RPC, который в RabbitMQ создаст новую очередь (кстати, кто должен чистить старые?)
Да. Посылается команда создать временную очередь, подписывается слушатель (коллбек) на то, что оттуда придёт, отсылается RPC, где указывается эта самая очередь. Старые удаляются рабитом после успешной доставки сообщения.
вам не кажется, что в этом месте появляются дополнительные расходы, соизмеримые с установлением соединения по HTTP?
Отправить 100 байт туда-сюда по поднятому соединению несоизмеримо с установкой нового? Ну хз.
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000745
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Давай определимся для начала, что такое "синхронный", что такое "асинхронный".

Вот: https://ru.wikipedia.org/wiki/Синхронный_способ_передачи_данных
Синхронный протокол. Причём тут tcp?
...
Рейтинг: 0 / 0
Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
    #40000747
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Чтобы работать асинхронно на синхронном http придцмали технологию и термин AJAX
...
Рейтинг: 0 / 0
25 сообщений из 265, страница 5 из 11
Форумы / Java [игнор отключен] [закрыт для гостей] / Как нынче принято реализовывать взаимодействие между микросервисами учитывая OpenAPI?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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