|
центр уведомлений
|
|||
---|---|---|---|
#18+
А вот типичный Spring/JMS receiver. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Только по 1 штуке. Но здесь под капотом может быть целый список сетевых протоколов и реализаций. Может быть RabbitMQ/AMQP, или ApacheMQ/AMQP. Может там и есть оптимизации сети под пачку. Но факт. Программисту пачку не дали. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 20:23 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Ты нормальный трафик событий не родишь. Я-бы дорого заплатил за определение понятия "нормальный трафик". Как вариант - берется продуктовая система. И с нее снимается трафик shark-ом или tcpdump-ом. И мы берем этот трафик просто как эталон. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 20:26 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton, Так тебя и тянет на технический траспортный уровень). Пофиг что там за качегары внизу! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 20:30 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
Какие твои предложения? Хочешь тюнить TCP? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 20:31 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
Вот на более конкретная имплеметация консьюмера ТОЛЬКО для Apache Active MQ. Тоже интерфейс ориентирован на 1 месседж. Здесь нет цикла потому что я украл это из учебных примеров. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 20:42 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
Специальный API для кролика https://www.rabbitmq.com/api-guide.html#consuming Тут .. пока непонятно. Но похоже тоже интерфейс хендлит 1 месседж за 1 вызов. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 20:50 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
wolfio Здравствуйте. есть БД, есть N пользователей, работающих в БД. Задача: написать на java центр уведомлений пользователей о событиях в БД. Как я понимаю, мне нужно реализовать сервер и клиент, так чтобы сервер был всегда подключен к БД (желательно в один стабильный коннект), а клиенты были бы подключены к серверной части приложения, и получали уведомления только когда им есть что вычитать (callback?), не нагружая при этом сервер. Пожалуйста подскажите, есть ли подобные фреймворки, чтобы не сильно углубляться клиент-серверное взаимодействие и взять готовый шаблон? есть хибернейт ,который может по событию генерировать нужные действия ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 21:54 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton А вот типичный Spring/JMS receiver. Нафига автору вообще какие-то дополнительные JMS, если у него и так СУБД обеспечивает более-менее нормальный Queu в виде DBMS_AQ - вот что мне не понятно. Но автор топика считает, что он сделает мультиплексор соединений лучше Oracle Co. Ну... пусть делает... Хотя зачем, не очень понятно. СУБД и так предоставляет shared sessions режим работы (который к тому же совершенно спокойно работают совместно с dedicated), при котором, на кол-во соединений Oracle в целом глубоко пофиг. То, что у автора СУБД с уже существующими нагрузками на десятки тысяч соединений и они подходят к каким-то аппаратным приделам - ну не верю. А даже если и так, у Oracle уже есть написанные мултиплексоры и для таких случаев (Oracle Remote Connection Manager) AFAIK. В свое время искал в Инете интеграцию Oracle DBMS_AQ и того же раббита. Ну точно такой же велосипед. Одна сессия смотрит в Oracle, вторая пуляет сообщения в раббит. Ну и нахрена такое нужно? Вычитали сообщение из Oracle, так и пуляй сообщение прямо в свое приложение. Нахрена тут кролик? А так получится 100500 уровнивая система, где велосипед на велосипеде сидит и велосипедом погоняет. Знал бы автор кролик или другую JMS, так и вопросов бы не было. Но тянуть в продакшен неизвестный продукт, ради непонятно чего (что бы был) - сомнительная радость. IMHO. Могу ошибаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 23:11 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
localhost8080, У него нет хибера. Прога прошлого тысячилетия ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 06:58 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton Какие твои предложения? Хочешь тюнить TCP? Забыть про транспорт и тюнить логику. Бизнес логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 06:59 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Да. Сделать можно на трехзвенке через апп или message server. И сделать можно в двухзвенке клиент сервер. Оба решения будут работать. Вернулись к правилу "делай на том что умеешь". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 07:03 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton Во вторых Василий нам где-то анонсировал zero-copy оптимизации для loopback в последних версиях JDK. Есть локальные сокеты в Java 16+. Работают на линуксе (ещё бы они там не работали) и на "новых" виндах (с 1809 и 2019). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 07:12 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton Leonid Kudryavtsev 2. Может быть обмен требующий полноценных round-trip'ов - Get first number - 2 - Get next number - 3 - Get next number - 5 etc...etc.. Тут опять таки, толстое/тонкое... 10 G ethenet, Jumbo frame... и толстое уже и не настолько толстое Но latency все равно будет ниже плинтуса, дабы Ethernet и TCP/IP. Родовая травма, которая лечится только полным выпиливаением. Я не уверен что нам стоит обсуждать именно latency. Тот сценарий который ты нарисовал больше похож не на MQ систему а на работу обычного синхронного веб-сервиса. Нам нужно выбрать одно из двух .. CP — (consistency and partition tolerance) — Консистентность + устойчивость к разделению В такой системе, в результате ожидания ответа от ноды, можно получить timeout (истечение времени ожидания). Такой подход отлично подходит для систем в которых требуется соблюдение атомарности операций. Например транзакций в банке. Нельзя купить, что-то, не успев пополнив счет. AP — (availability and partition tolerance) — Доступность + устойчивость к разделению Ответы возвращают наиболее свежие данные доступные ноде, но они могут быть не самыми свежими в целом. Запись данных в распределенных системах занимает некоторое время (необходимо сделать множество копий между несколькими базами данных), поэтому данные могут появится не сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 07:50 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton, У тс сейчас первый вариант. А он хочет поставить систему колом и сделать второй. Но В ОБОИХ ЕСТЬ НЕДОСТАТКИ. И недостатки надо осознать и записать в ТЗ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 07:56 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Ты как-то странно смешал в кучу latency и принятие решения об отсутствии сети. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 10:57 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
Basil A. Sidorov mayton Во вторых Василий нам где-то анонсировал zero-copy оптимизации для loopback в последних версиях JDK. Есть локальные сокеты в Java 16+. Работают на линуксе (ещё бы они там не работали) и на "новых" виндах (с 1809 и 2019). Ты имел в виду unix-sockets? А ну тогда сорян. Я ошибся. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 11:05 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp, Ты как-то странно смешал в кучу latency и принятие решения об отсутствии сети. Ты сказал что latency не стоит обсуждать. Я вроде совсем не обсуждал выше)) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 11:05 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
mayton, Задержка, пропускная способность и доступность. Собеседование по архитектуре и проектированию систем. https://igotanoffer.com/blogs/tech/latency-throughput-availability-system-design-interview Всяко лучше чем транспорт рыть. Я это имел ввиду выше в топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 11:09 |
|
центр уведомлений
|
|||
---|---|---|---|
#18+
Сегодня - четверг? Можно и сегодня опубликовать четверговую тему. Я откажусь от конкретной agenda. Всё равно у нас ничего не получится. Топики идут вразнос. Поэтому тема будет Kafka/RabbitMQ и различные сценарии конфигурации . Под скорость. Под тразнакционность и гарантии. И под объем хранения подсписки. Если есть что добавить - добавляй. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 11:25 |
|
|
start [/forum/topic.php?fid=59&msg=40100802&tid=2120338]: |
0ms |
get settings: |
16ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
23ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
320ms |
get tp. blocked users: |
0ms |
others: | 6ms |
total: | 375ms |
0 / 0 |