powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / центр уведомлений
20 сообщений из 170, страница 7 из 7
центр уведомлений
    #40100795
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот типичный Spring/JMS receiver.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Component
public class Receiver {

  @JmsListener(destination = "mailbox", containerFactory = "myFactory")
  public void receiveMessage(Email email) {
    System.out.println("Received <" + email + ">");
  }

}



Только по 1 штуке. Но здесь под капотом может быть целый список сетевых протоколов и реализаций.
Может быть RabbitMQ/AMQP, или ApacheMQ/AMQP. Может там и есть оптимизации сети под пачку.

Но факт. Программисту пачку не дали.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100797
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Ты нормальный трафик событий не родишь.

Я-бы дорого заплатил за определение понятия "нормальный трафик".

Как вариант - берется продуктовая система. И с нее снимается трафик shark-ом или tcpdump-ом.
И мы берем этот трафик просто как эталон.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100800
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Так тебя и тянет на технический траспортный уровень).
Пофиг что там за качегары внизу!
...
Рейтинг: 0 / 0
центр уведомлений
    #40100802
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие твои предложения? Хочешь тюнить TCP?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100804
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот на более конкретная имплеметация консьюмера ТОЛЬКО для 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.
            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_BROKER_URL);

            // Create a Connection
            Connection connection = connectionFactory.createConnection();
            connection.start();

            connection.setExceptionListener(this);

            // Create a Session
            //     { AUTO_ACKNOWLEDGE |  CLIENT_ACKNOWLEDGE | DUPS_OK_ACKNOWLEDGE | SESSION_TRANSACTED }
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // Create the destination (Topic or Queue)
            Destination destination = session.createQueue(ACTIVEMQ_QUEUE_NAME);

            // Create a MessageConsumer from the Session to the Topic or Queue
            MessageConsumer consumer = session.createConsumer(destination);

            // Wait for a message
            Message message = consumer.receive(timeout);
...
Рейтинг: 0 / 0
центр уведомлений
    #40100806
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Специальный API для кролика https://www.rabbitmq.com/api-guide.html#consuming

Тут .. пока непонятно. Но похоже тоже интерфейс хендлит 1 месседж за 1 вызов.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100820
localhost8080
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wolfio
Здравствуйте.

есть БД, есть N пользователей, работающих в БД.
Задача: написать на java центр уведомлений пользователей о событиях в БД.
Как я понимаю, мне нужно реализовать сервер и клиент, так чтобы сервер был всегда подключен к БД (желательно в один стабильный коннект), а клиенты были бы подключены к серверной части приложения, и получали уведомления только когда им есть что вычитать (callback?), не нагружая при этом сервер.

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

есть хибернейт ,который может по событию генерировать нужные действия
...
Рейтинг: 0 / 0
центр уведомлений
    #40100837
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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. Могу ошибаться.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100854
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
localhost8080,
У него нет хибера. Прога прошлого тысячилетия
...
Рейтинг: 0 / 0
центр уведомлений
    #40100855
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Какие твои предложения? Хочешь тюнить TCP?
наоборот,
Забыть про транспорт и тюнить логику. Бизнес логику.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100856
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Да.
Сделать можно на трехзвенке через апп или message server.
И сделать можно в двухзвенке клиент сервер.
Оба решения будут работать.
Вернулись к правилу "делай на том что умеешь".
...
Рейтинг: 0 / 0
центр уведомлений
    #40100858
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Во вторых Василий нам где-то анонсировал zero-copy оптимизации для loopback в последних версиях JDK.
Не было такого.
Есть локальные сокеты в Java 16+. Работают на линуксе (ещё бы они там не работали) и на "новых" виндах (с 1809 и 2019).
...
Рейтинг: 0 / 0
центр уведомлений
    #40100864
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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) — Доступность + устойчивость к разделению
Ответы возвращают наиболее свежие данные доступные ноде, но они могут быть не самыми свежими в целом. Запись данных в распределенных системах занимает некоторое время (необходимо сделать множество копий между несколькими базами данных), поэтому данные могут появится не сразу.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100865
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
У тс сейчас первый вариант. А он хочет поставить систему колом и сделать второй.
Но В ОБОИХ ЕСТЬ НЕДОСТАТКИ.
И недостатки надо осознать и записать в ТЗ
...
Рейтинг: 0 / 0
центр уведомлений
    #40100897
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Ты как-то странно смешал в кучу latency и принятие решения об отсутствии сети.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100900
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
mayton
Во вторых Василий нам где-то анонсировал zero-copy оптимизации для loopback в последних версиях JDK.
Не было такого.
Есть локальные сокеты в Java 16+. Работают на линуксе (ещё бы они там не работали) и на "новых" виндах (с 1809 и 2019).

Ты имел в виду unix-sockets? А ну тогда сорян. Я ошибся.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100901
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp,

Ты как-то странно смешал в кучу latency и принятие решения об отсутствии сети.
ты квотируй а то тебя не понять.
Ты сказал что latency не стоит обсуждать.
Я вроде совсем не обсуждал выше))
...
Рейтинг: 0 / 0
центр уведомлений
    #40100903
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Задержка, пропускная способность и доступность.
Собеседование по архитектуре и проектированию систем.
https://igotanoffer.com/blogs/tech/latency-throughput-availability-system-design-interview
Всяко лучше чем транспорт рыть.
Я это имел ввиду выше в топике.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100910
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня - четверг? Можно и сегодня опубликовать четверговую тему.

Я откажусь от конкретной agenda. Всё равно у нас ничего не получится. Топики идут вразнос.
Поэтому тема будет Kafka/RabbitMQ и различные сценарии конфигурации . Под скорость.
Под тразнакционность и гарантии. И под объем хранения подсписки.

Если есть что добавить - добавляй.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100912
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Kafka/RabbitMQ и различные сценарии конфигурации . Под скорость.
это очень интересно, особенно про Rabbit
...
Рейтинг: 0 / 0
20 сообщений из 170, страница 7 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / центр уведомлений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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