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

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

Пожалуйста подскажите, есть ли подобные фреймворки, чтобы не сильно углубляться клиент-серверное взаимодействие и взять готовый шаблон?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099753
Tropic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ряд продуктов, например, debezium, которые фиксируют события в БД (инсерты, апдейты, делеты), используя различные приемы. В частности, обрабатывая журналы транзакций, бинлог и т.д. Все обнаруженные события debezium рассылает в кафку.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099774
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Вас интересует техническое событие insert или бизнес событие "клиент взял кредит"?
Первое будет не очень правильной хотелкой.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099778
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Сделайте так:
- приложение1 обычное CRUD приложение
- приложение2 мониторит бд на события и отправляет по мылу сообщения.
Мониторить можно логи сервера чтобы его не нагружать.
В результате при нагрузке вы всегда найдете что начинает тормозить из за каллбэков событий - прил1, прил2 или сама бд
Подходит паттерн?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099786
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например Oracle умеет уведомление слать при изменении указанных объектов. Т.ч. ничего мониторить не нужно

Мониторить логи - ну удачи... на мой взгляд это работа не на один человеко-год. Или нужно покупать/брать готовые продукты
...
Рейтинг: 0 / 0
центр уведомлений
    #40099791
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
наверное не совсем четко объяснил задачу. Извините, давайте еще раз попробую.

речь не про CRUD или update/insert/delete.

есть старая БД, со своим десктоп-клиентом времен динозавров. в нем очень нехватает api для пушей пользователей, когда они запускают хранимки какие-нибудь. При этом они запускают все это по RPC с ожиданием, хотя асинхронно запускать хранимки тоже можно. Но при таком запуске встает вопрос - как уведомить пользователя о том, что его процедура завершилась?
Так родилась идея написать на javaFX скромный центр уведомления, который будет поверх окна клиента оповещать его об ошибке/успехе (ну фактически прокидывать текст ошибки/успех из хранимки в пуш (про окна вопросов нет).

Для того, чтобы сделать все вышеописанное, мне видится, что нужно сделать:
-Приложение 1, которое будет держать коннект в БД и смотреть в очередь/табличку на предмет наличия невычитанных пушей для конкретного клиентского места. При их наличии раздавать Приложению 2 месседжи.
-Приложение 2, которое будет непосредственно общаться с Приложением 1, получать от него сообщение, и красиво выводить.

я подчеркну мысль, что хотелось бы не просто клиента написать, который напрямую с клиентского рабочего места будет делать коннект к БД (потому что пользователей БД может быть 500+, и нагружать базу не хотелось бы даже), а именно клиент-серверное приложение. и как я понимаю, тут следует использовать callback'и, чтобы Приложение 2 не заваливало Приложением 1 запросами на наличие сообщений для них.

Так вот мой вопрос в том - есть ли удобный фреймворк/шаблон/паттерн для создания Приложения 1 и 2 так, чтобы все это не с нуля изучать?
уверен, что идея не революционная.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099797
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Логи можно и руками делать. Человеческие)))
...
Рейтинг: 0 / 0
центр уведомлений
    #40099801
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,

У меня вопрос - как вы планируете узнать что ХП завершилась и как она завершилась, если она была запущена не вами?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099804
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут даже десктоп в вопросе был? Не веб проект?)))
...
Рейтинг: 0 / 0
центр уведомлений
    #40099806
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick,
напишу пакет на БД, через который можно будет в конце вызова ХП вызвать процедуру а-ля push2User
...
Рейтинг: 0 / 0
центр уведомлений
    #40099807
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Перевод синхронного десктоп на асинхронную работу это переписать тонну кода.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099810
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне кажется вы меня не правильно услышали.

Задача в том, чтобы написать API для пуша, и постепенно применять его в работе, а не перевести все хранимки в асинхрон.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099811
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
Garrick,
напишу пакет на БД, через который можно будет в конце вызова ХП вызвать процедуру а-ля push2User

т.е. вы готовы переделать все ХП?
Тогда если исключить e-mail рассылку, будет очень удобно использовать JMS. ХП по окончании работы шлёт сообщение в очередь, клиенты JMS подписываются на нужные сообщения и получают их по мере появления.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099814
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
господа, мы углубляемся в бессмысленную полемику.

я написал вопрос в изыскательных целях.
подскажите по сути - есть ли фреймворки для организации описанного взаимодействия между Приложением 2 и Приложением 1?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099815
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
А это что?
автор. в нем очень нехватает api для пушей пользователей, когда они запускают хранимки какие-нибудь. При этом они запускают все это по RPC с ожиданием, хотя асинхронно запускать хранимки тоже можно.
Подробнее As is to be
Пример плохого сейчас.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099816
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Вы ничего не описали.
Но вот вам таблетка - Apache camel
...
Рейтинг: 0 / 0
центр уведомлений
    #40099818
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrick,
Если у него длинный коннект, то все хранимки под своим юзверям запуск.
Фиг знает что у него
...
Рейтинг: 0 / 0
центр уведомлений
    #40099820
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

as is
запустил отчет , который выгружает в эксель какую-то инфу минут 10-15.
и пользователь либо идет покурить, либо поднимает второй экземпляр клиента к БД для параллельной работы в другом окне.

to be
пишу обертку пакета в БД на вызов того же отчета в job. В конце обертки, после вызова процедуры отчета вызываю собственный push API, через который пользователю приходит алерт, что отчет готов. При старте обертки, пользователь ставит задание на выполнение очета в джоб и модальное окно закрывается, таким образом не блокируя его рабочее место. Он может работать дальше.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099821
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio

1. СУБД

В Oracle пакет DBMS_PIPE IMHO.
Или DBMS_AQ

Без указания СУБД - обсуждение в вакууме.

2. Если про HTTP, то опять таки. Обычное HTTP соединение. На сервере в Stream пишешь, на клиенте из stream читаешь. В чем проблема?

Да даже на сокетах - аналогично
...
Рейтинг: 0 / 0
центр уведомлений
    #40099822
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
To be
Создай поток и внутри коннект. Вот там и запускай ХП.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099823
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
Он может работать дальше.
получается главное чтобы работали дальше.
Так?
Коммит через 10 мин в конце хранимки?
Клиентский или северный?
Не удалит СЛУЧАЙНО запись пока ХП работает? Которая один ко многим товар цепляет к накладной?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099825
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

1. Oracle
проблема пайп в оракле в том, что они могут быть утеряны. для mission critical систем в какой-нибудь отчетный период потерять алерт - это не очень решение, мягко говоря.
AQ целевой вариант.

Но вы отвечаете на вопросы, которые я не задавал.
опыт работы и с пайпами и с очередями у меня есть.

Мне хочется понять есть ли готовые решения для общения между клиентским приложением, и приложением подключенным к серверу.

Я понимаю, что можно на коленке написать на сокетах или на http. Но когда это потащу в прод, мне зададут резонные вопросы про http s , либо про гибкую отказоустойчивость на сокетах и не гибкую конфигурацию адресов для подключения к БД и Приложению, которое держит с ним коннект. Не говоря уже о всяких прокси, которых мне бы даже касаться не хотелось.

т.е. в идеале я бы хотел взять готовый клиент-сервер экзампл, в котором уже зашиты возможности по работе с сертами, настройкой прокси, jdbc, пул коннектов и т.п, и просто написать на серверную часть логику для вычитки сообщений из очереди (AQ/Таблица/Pipe), а на клиентское приложение навесить получение сообщения и javafx с 3мя видами окон. и все
...
Рейтинг: 0 / 0
центр уведомлений
    #40099827
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Вы ищете ответ на вопрос, который я не задавал.
отправку пуша можно написать в автономной транзакции.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099828
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Готовое решение это запуск ХП не в потоке ГУИ!
Всё
...
Рейтинг: 0 / 0
центр уведомлений
    #40099829
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Пуш не нужен.
Ваш кэп.
Конец работы потока вместо него.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099830
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
ГУИ написан в 1996 году, и исходников у меня нет.

если бы было все так просто, я бы даже думать над этим не стал.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099831
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"пуш" вообще термин веб проектов. А не вашего.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099834
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно все-таки советы по теме?

какие технологии можно использовать для Приложения 1 и Приложения 2?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099835
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
PetroNotC Sharp,
ГУИ написан в 1996 году, и исходников у меня нет.

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

Я думаю что на 80% это будет зависеть от возможностей самой DBMS. Умеет ли она реплицировать
события во внешние системы? Есть-ли коробочные парсеры ее логов транзакций?

Можно ли построить реплики на уровне application-server? Это было-бы эффективнее.

Еще эффективность будет зависеть от компромиссов. Как быстро ты хочешь получать уведомления?
Рантайм? Сию-же секунду? Или можно минутку подождать или часик? Эти все вопросы идут вне технических.
Но они тоже важны.

По фреймворкам здесь не скажу. И мне кажется что это не важно. У тебя важна - интеграция с БД. Протокол.
Скорость. И гарантии отсутсвия потерь событий. А Java фреймворк здесь вторичен. Бери хоть Spring хоть Guice.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099844
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
можно все-таки советы по теме?

какие технологии можно использовать для Приложения 1 и Приложения 2?
тут не любят взлома (нет исходников)
Если не сломаешь коммиты и транзакции то все делай в бд.
Сначала там. Тебе же подменить хранимку надо.
Я бы не.
Денег на нову,ю систему не дают.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099849
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio

Hello world можно написать одной строчкой, а можно 100500 с использованием Spring, Hibernate, Cloud и всего прочего.

Есть ощущение, что Вы хотите именно второго )))

Но ответ то очевидный - берите любой фреймворк, делайте в нем что хотите, в конце, перед последним return, просто добавите строчку System.out.println( "Hello world" ); - и задача будет решена в полном соответствие с Вашими желаниями.

Хотите Web - берите любой фреймворк для Web.
Хотите мессенгинг - берите любой вреймворк для отсылки сообщений и делайте через него
и так далее и так далее
...
Рейтинг: 0 / 0
центр уведомлений
    #40099851
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, у вас куча ограничений и условий.
Например, что делать если подменили хранимку А, о она вызывается хранимкой Б и т.д.
Вы ищите либы и паттерны.
Это идиотизм.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099855
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,
И тема звучит не центр уведомлений, а хакнуть клиент сервер в асинхронный режим.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099870
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Зачем хакать? Нормальные СУБД какие-то средства для ассинхронной работы предлагают. Поскольку автор будет делать новое приложение "поверх"/"сбоку" старого GUI - проблем опять таки нет.

У нас примерно так же сделаны уведомления для Oracle OeBS модуль для диспетчера. Когда создается заявка, в СУБД дополнительно кидается сообщение через DBMS_AQ, Java приложение запущенное в треи всплывает, показывает простейшее окно со списком новых заявок и пилюкает динамиком - диспетчер посреди ночи просыпается, трет с просоня глаза и начинает разруливать пришедшую заявку уже через стандартный интерфейс OeBS.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099891
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Ну например, клиентский коммит
Код: java
1.
2.
3.
4.
5.
6.
ЗакрытьОперДень{
excec xp1
excec xp2
...
excec xp6
commit


И как тут?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099900
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Если только добавить пуш или логи, то проблем нет.
Но он хочет не ждать 10 мин синхронного кода друг за другом.
А продолжать работать вернув немедленно управление в клиент.
Понятно что куча ограничений.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099910
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpтут не любят взлома (нет исходников)
Если не сломаешь коммиты и транзакции то все делай в бд.
Сначала там. Тебе же подменить хранимку надо.
Я бы не.
Денег на нову,ю систему не дают.

Вы про взлом вообще откуда чего взяли? я ни слова не говорил про взлом.
я говорил про всплывающее уведомление в центре уведомлений Windows, поверх GUI клиента БД.

Мне кажется, я так и не был понят верно. Давайте на псевдокоде:

Хранимая процедура:
print_excel() is
begin
generate_xls_report(...);
end;

добавление алерта в очередь уведомлений:
push_alert_to_user() is
begin
put_message_to_user(); - тут мы предполагаем что кладем сообщение в очередь AQ/Буфферную таблицу/Pipe
end;


то, что я хочу в итоге:
begin
create_job('
print_excel();
push_alert_to_user();
'); - т.е. создаем джоб, который выполнит хранимку без участия пользовательской сессии
end;

параллельно с этим будет работать изначально описанное мной Приложение 1, которое будет мониторить эту AQ/Pipe/Таблицу, и в случае обнаружения новых записей, вычитывать, и отдавать в Приложение 2.


никаких подмен хранимок тут нет совершенно. Это будет новая хранимка, внутри которой будет вызываться старая. И это будет альтернатива существующей, не более того.
и уж тем более никакого взлома.
я про возраст гуи сказал к тому, что у меня нет возможности переделать его так, чтобы передавать вызов из главного треда в дочерний, а не к тому, что его надо хакать.

Повторюсь, мой вопрос - как организовать взаимодействие между Приложением 1 и Приложением 2? как сделать все остальное мне известно.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099915
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevУ нас примерно так же сделаны уведомления для Oracle OeBS модуль для диспетчера. Когда создается заявка, в СУБД дополнительно кидается сообщение через DBMS_AQ, Java приложение запущенное в треи всплывает, показывает простейшее окно со списком новых заявок и пилюкает динамиком - диспетчер посреди ночи просыпается, трет с просоня глаза и начинает разруливать пришедшую заявку уже через стандартный интерфейс OeBS.

вот именно это мне и нужно.
поделитесь опытом, как построены клиент и сервер? и может быть исходники не секретны?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099916
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
ПОДМЕНА пакета это взлом.
Как вам не доходит?
Дак есть ПОДМЕНА или нет?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099918
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
никаких подмен хранимок тут нет совершенно. Это будет новая хранимка, внутри которой будет вызываться старая.
из JOB?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099919
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС.
Вы читаете вопросы?
22375537
...
Рейтинг: 0 / 0
центр уведомлений
    #40099921
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

у меня такое впечатление складывается, что вы пакеты в БД никогда не писали, либо не видели как работают клиентские ГУИ.

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

Где тут подмена? Если в глазах пользователя, то да, это подмена. но я смогу ему разницу объяснить. однако никаких хаков я тут не вижу.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099922
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
generate_xls_report(...);
вы уверены что для
generateXLS
не идет предварительно хп с подготовкой данных 10мин?
...
То есть куча ограничений.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099923
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
wolfio
generate_xls_report(...);
вы уверены что для
generateXLS
не идет предварительно хп с подготовкой данных 10мин?
...
То есть куча ограничений.


конечно идет. так в этом и смысл, что эта подготовка отойдет в сессию джоба, и не будет держать сессию пользователя.

И про ваш пример. То что я хочу должно в итоге будет выглядеть так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ЗакрытьОперДень{
excec xp1
excec xp2
...
excec xp6
commit}

ЗакрытьОперДеньAsync{
закрытьОперДень();
АлертПользователю();
}
...
Рейтинг: 0 / 0
центр уведомлений
    #40099926
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Я написал код КЛИЕНТА))))).
Вы его править не можете.
Или вы новый клиент пишите?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099928
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Коммит есть клиентский и есть серверный. Я говорил именно клиентский для роллбэка НА КЛИЕНТЕ.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099931
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас классика клиен-сервер 90х годов. С длинными транзакциями по 15мин.
Логины вероятно от субд.
Уверены? Ломайте!
...
Рейтинг: 0 / 0
центр уведомлений
    #40099936
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
мне разговор уходит не туда.

Если хотите подискутировать, мой телеграмм https://t.me/Dmwolfy
...
Рейтинг: 0 / 0
центр уведомлений
    #40099945
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio

поделитесь опытом, как построены клиент и сервер? и может быть исходники не секретны?

иходники врят ли чем помогут, но в общем-то все очевидно

на клиенте в легаси системе:
запустили в отдельном процессе наш код для трея

в коде для трея:
зарегились как трей в операционной системе (не помню какая Java либа используется)
создали соединение с сервером
m1:
ждем прихода сообщения от DBMS_AQ
когда сообщение пришло - показываем окошко
по закрытию окошка, goto m1

на сервере:
DBMS_AQ.положит_сообщение_в_очередь()

всякие сложности типа создания Java Bean для OeBS и Oracle Forms опускаю
...
Рейтинг: 0 / 0
центр уведомлений
    #40099946
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
PetroNotC Sharp,
мне разговор уходит не туда.
Если хотите подискутировать, мой телеграмм https://t.me/Dmwolfy
я обозначил подводные камни.
Какие вам нужны либы чтобы обернуть хранимку?
DBMS_AQ вам написали.
Что еще нужно?
...
Рейтинг: 0 / 0
центр уведомлений
    #40099953
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

т.е. у вас все же прямой коннект к бд.
меня именно это и смущаетт, я хотел все завязать на другое java приложение чтобы минимизировать коннекты.
...
Рейтинг: 0 / 0
центр уведомлений
    #40099954
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
Leonid Kudryavtsev,

т.е. у вас все же прямой коннект к бд.
меня именно это и смущаетт, я хотел все завязать на другое java приложение чтобы минимизировать коннекты.

- зачем минимизировать коннекты?
- хотите другое - делайте другое
- хотите без DBMS_AQ - пишите в табличку события а приложения их выбирает периодически
...
Рейтинг: 0 / 0
центр уведомлений
    #40099963
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
Leonid Kudryavtsev,

т.е. у вас все же прямой коннект к бд.
меня именно это и смущаетт, я хотел все завязать на другое java приложение чтобы минимизировать коннекты.

Термин "минимизировать коннекты" вообще не понятно. Какие коннекты, зачем их минимизировать, ради чего.

Если хочется использовать HTTP-транспорт между клиентом и сервером приложения, ну еще 200-300 строк на Java для сервера приложения.
1. Обработчик HTTP соединения
1.1. Создал свою очередь ConcurrentLinkedList
1.2. Зарегистрировался в HashMap (активный) коннект
1.3. В цикле смотреть на свою очередь ConcurrentLinkedList и по наличию отсылать информацию клиенту (вместо ConcurrentLinkedList можно просто синхронный Queue, разница по производительности будет не сильно большая, ConcurrentLinkedList имеет смысл только если будет NIO HTTP).
1. Отдельный поток (или несколько), выгребания очередей DBMS_AQ из базы
1.1. В цикле взяли сообщение из DBMS_AQ
1.2. Определили кому его надо отсылать по HashMap
1.3. Записали в ConcurrentLinkedList для конкретного клиента

Можно взять какую нибудь готовую очередь сообщений (Раббит или еще что), прочитать 100500 страниц документации, неделю настраивать брид/gateway между Раббитом и DBMS_AQ, и через месяц получить то же самое, что и свой велосипед из 200-300 строк.

Но если легаси приложение и так в базу лезет по Net8, то смысла избавляться от Net8 для отдельного модуля эксплуатируемого в рамках этого же приложения - нет никакого. Кроме усложнения общей архитектуры, увеличение кол-ва ошибок и удорожания эксплуатации.

IMHO
...
Рейтинг: 0 / 0
центр уведомлений
    #40100153
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Термин "минимизировать коннекты" вообще не понятно. Какие коннекты, зачем их минимизировать, ради чего.
IMHO

Если этой софтине лет 15-20, то тогда было модным привязывать лицензии к количеству коннектов к базе. Может оно как-то контролирует это.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100167
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrick,
Это да. Но если автор сказал что исходников именно клиента нету, то инфа про коннекты как то глупо звучит с его стороны.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100170
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrick

Если это Oracle (а есть такое подозрение), то лицензии привязываются к Named User (пользователям). Сколько коннектов от одного _реального_ (homo sapiens) пользователя, то лицензиям пофиг.

Если коннекты в значении нагрузки на сервер СУБД, то в Oracle это проще решит через shared sessions. При этом старый софт можно оставить в dedicated режиме, а новый пустить через shared.

IMHO & AFAIK
...
Рейтинг: 0 / 0
центр уведомлений
    #40100256
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять таки, непонятно что вообще хотел автор

wolfio

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

ok. нужно так нужно, никто не против

wolfio

так чтобы сервер был всегда подключен к БД (желательно в один стабильный коннект), а клиенты были бы подключены к серверной части приложения, и получали уведомления только когда им есть что вычитать (callback?), не нагружая при этом сервер.

Все что угодно:
сокеты, постоянно открытое http соединение, любые средства доставки сообщений и 100500 прочих

wolfio

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

А вот тут уже совершенно не понятно.
1. Если транспорт HTTP, то я бы взял https://hc.apache.org/ (поскольку его знаю) и example от него
2. Если сокеты - то любой example из гугля
3. Если хочется навомодного и солидного, то любой транспорт сообщений. Например (сам не использовал) https://www.rabbitmq.com/ Только IMHO это пушкой по воробьям
4. ну и 100500 других средств

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

Да, могут быть проблемы при очень большой нагрузки. Если тысячи (>3-5 тыс.) сокет или HTTP соединений, то на сервере можно получить проблемы с диспетчером потоков в ОС, но это решается переходом на NIO. Для сотен соединений, "старый" socket работает лучше (10-20% быстрее, меньше загружает проц).

AFAIK
...
Рейтинг: 0 / 0
центр уведомлений
    #40100257
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем забыли про email (SMTP/POP3).
...
Рейтинг: 0 / 0
центр уведомлений
    #40100269
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Совсем забыли про email (SMTP/POP3).

Ну почему. Третий ответ топика.
Только автору неинтересен свой вопрос. Он случайно зашёл.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100270
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А да. Не заметил.

Мне кстати интересно глубже исследовать вопрос почему технологически email вдруг стал старым
и неудобным протоколом для мессенджинга. Почему все чаще доверяют мессенджерам и соцсетям
получение (даже!) бизнес информации.

Может быть - удобство ношения мессенджера в смартфоне? Но я-бы хотел этот вопрос изучить глубже.

Пятничным топиком.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100275
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Все просто. Мыло без обратной связи. Могут не ответить. Или проигнорировать "запрос о прочтении".
В сети это труднее. Более живое общение.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100276
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Готовится закон о мессенджерах как гос канал официальных запросов.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100279
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Все просто. Мыло без обратной связи. Могут не ответить. Или проигнорировать "запрос о прочтении".
В сети это труднее. Более живое общение.

Мда. Согласен. Но email канал способен функционировать в условиях когда твой клиент отключен.
Тоесть тебе накидали писем. Он лежат где-то в твоём почтовике. Ты зашел в онлайн. Почитал.

У мессенджеров (IMHO) есть какое-то техническое ограничение на недоступность. Ну у Viber по крайней
мере было такое.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100282
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Не знаю про недоступность.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100283
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, а ты каким пользуешся. Телега? Viber?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100286
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp, а ты каким пользуешся. Телега? Viber?
для каких целей интересуешься?
в телеге можно в "реальном времени" наблюдать, т.е. не надо обновлять как в почтовике.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100288
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ушел с вайбера в ватсап. Проиграл вайбер конкуренту битву.
Все в ватсапе сидят вот и ушел.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100290
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Ушел с вайбера в ватсап.
у него вроде платное всё? типа ботов...
...
Рейтинг: 0 / 0
центр уведомлений
    #40100292
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Я не знаю ни одного бота нужного народу. Увы.
Ничё не могу про них сказать.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100295
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вот, например, есть гос компания электросетей подмосковья.
Время официального ответа компании по мылу составляет пол месяца.
Это крындец в наши дни.
Но такие пока законы общения по мылу
...
Рейтинг: 0 / 0
центр уведомлений
    #40100296
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Но вот, например, есть гос компания электросетей подмосковья.
Время официального ответа компании по мылу составляет пол месяца.
Это крындец в наши дни.
Но такие пока законы общения по мылу
даже если будут отвечать в месенжерах - это не ускорит.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100299
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почти ни одного бота в Viber не видел.

В телеграм - тыщи.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100300
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Ускоряет.
Там минуту промолчишь, жалобы идут.
Ну и закон будет. Сколько секунд молчать)))))
...
Рейтинг: 0 / 0
центр уведомлений
    #40100302
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Телеграм - гламур. Имхо.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100303
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чисто субъективно ... телеграм быстрее работает. Я могу ошибаться но это такое мое человеческое
восприятие.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100304
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока разберёшься в его api ......
...
Рейтинг: 0 / 0
центр уведомлений
    #40100306
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-ж не собираюсь его ботов программировать. Мы просто сравниваем с email протоколами.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100307
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из преимуществ. Копия. Скрытая копия. Много аттачментов. Почтовые домены - это обычно
реальные домены в dns. Всегда видет отправитель в виде sender@server.

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

Почтовый сервер исторически проектировался исходя из медленного трафика. И все таки
гарантировал доставку письма. Хоть и через сутки.

Как поведет себя мессенджер в условиях техногенной катастрофы - я не знаю.

В воображаемом сценарии войны или частичного отключения сетевой инфраструктуры
большинство мессенджеров скорее всего будут молча крутить анимацию. И ничего не примут
и не отправят.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100311
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMTP/POP - г... )))

UUCP / UUPC и FTN - Rules. Делал сеть для связи с филиалами на FTN. Все само соединяется, пересылает, разрывает соединение. Лапота!
...
Рейтинг: 0 / 0
центр уведомлений
    #40100313
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

все это так,
но все зависит от цели и потребности.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100315
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В воображаемом сценарии войны
)))))
...
Рейтинг: 0 / 0
центр уведомлений
    #40100342
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
В воображаемом сценарии войны
)))))

Слышал как Netflix тестирует свои разработки на failover?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100368
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Не слышал). При войне веба не будет)
...
Рейтинг: 0 / 0
центр уведомлений
    #40100379
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
UUCP / UUPC и FTN - Rules.
Особенный рулез - UUCP/UUPC с протоколом без докачки. Kendra UUPC, как пример.
Нет, с UUPC небезызвестного AChe я тоже работал. Fossil-драйвер под винду, опять-таки, "доставляет".

UUCP и, как я понимаю, FTN - крайне ограничены в возможностях построения маршрутов.
Точка-точка - да, неплохо. А вот передача через несколько промежуточных узлов - "Ад и Израиль".
...
Рейтинг: 0 / 0
центр уведомлений
    #40100380
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
При войне веба не будет)
Целый US DoD планирует разработку атомных микрореакторов для армейских нужд, а вы так плохо о них думаете.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100402
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Я намекал на то что всемирной паутины http не будет.
Будет реинкарнация - паутина во взводе, роте и танке (совместно с дроном)
...
Рейтинг: 0 / 0
центр уведомлений
    #40100406
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Кстати читал, что часть уже действующих реакторов банально утеряна)))).
При транспортировке вертолёт уронил в Охотское море РИТЭГ типа ИЭУ-1, который принадлежал Министерству обороны СССР. По состоянию на 2013 поисковые работы, с перерывами, продолжаются[28]..
)))))
Из википедии
...
Рейтинг: 0 / 0
центр уведомлений
    #40100450
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Радиоизотопные "реакторы" это совсем не реакторы. Скорее - "атомные батарейки". Или более точно - термоэлементы.
Низкие КПД и мощность при полном отсутствии движущихся частей, большом сроке службы и невозможности регулировать мощность.
Запитать нагрузку с небольшим и постоянным энергопотреблением - можно, всё остальное - в пролёте.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100451
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Я намекал на то что всемирной паутины http не будет
... и в этом вы ошибаетесь.
В зоне военных действий даже интернет-провайдеры работают. Войны между Израилем и Ливаном, как пример.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100455
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov

FTN - крайне ограничены в возможностях построения маршрутов.
Точка-точка - да, неплохо. А вот передача через несколько промежуточных узлов - "Ад и Израиль".

Возможно в чем-то ограничен, но проблем с "передача через несколько промежуточных узлов" вряд ли есть. Все же FIDO была сеть общемирового уровня. Там скорее топология звезда, с интерконнектами только на верхних уровнях. Маршруты между подсетями должны прописываться (точно не уверен). Маршруты внутри подсети (поинт-нода) да, не прописываются, но в TCP/IP IMHO так же (только маской можно задавать размер подсети, а в FTN фиксированный).

AFAIK

p.s. сам транспортный уровень возможно пересылал точка-точка, но потом пришедшие файлы разбирала программа, которая и определяла, куда что пересылать. Насколько помню
...
Рейтинг: 0 / 0
центр уведомлений
    #40100462
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Я говорил о войне между мировыми игроками и не понарошку. Израиль не пример.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100468
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Не слышал). При войне веба не будет)

Я вот размышлял об возможных сценариях отключения РФ от Интернета и пришел к выводу
что предполагаемому противнику это невыгодно. Он потеряет все каналы либерального
влияния.

А вот из интересного. https проткол всё таки централизован. Например что это за контора "DST Root CA X3" ?
Она прогарантировала сертификат для sql.ru через посредников. А что будет если отзовёт? А что будет
если отзовёт сертификаты для сотен тысяч доменов?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100473
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Либералы это понятно. Все стараются не переходить грани и красную черту).
Про https то я тоже возмущен когда заставляют палками внедрять его. У самого простой сайт есть.
Гугл также насильно внедряет двухфакторную.
В общем нет свободы. И никогда не было.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100488
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да это перебор канешна. Если 15 лет назад всем вообще было пофиг на TLS/SSL в вебе.
Ну смотрел ты порно-картинки и кому какая разница с безопасного хранилища ты их
тащил или с опасного.

А сегодня на уровне самих браузеров попытка подключиться к http будет каждый раз
вызывать алёрт в браузере. Скоро свой сайт локально хрен подебажишь.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100509
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Возможно в чем-то ограничен, но проблем с "передача через несколько промежуточных узлов" вряд ли есть.
В UUCP маршрут прописывался явно (последовательность узлов, разделённая восклицательными знаками, если правильно помню).
В FTN были какие-то схемы резервных маршрутов (например, небезывестный dz делал что-то такое), но ничего похожего на "всякое могучее" из IP-сетей там не было.
Проблема именно в явности топологии UUCP/FTN.
IP-сети это и автономные системы (AS) с избыточными связями между этими AS и "внутренняя" маршрутиризация (тоже с избыточностью). Даже Ethernet предоставляет возможность построения "остовного дерева" из сети "с петлями".
...
Рейтинг: 0 / 0
центр уведомлений
    #40100511
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Я говорил о войне между мировыми игроками и не понарошку
Во вторую мировую GM продолжала выполнять контракты с нацистской Германией, владела собственностью в Германии и получала оттуда прибыль: "Солдаты воюют - торговцы торгуют".
Тотального уничтожения (кабельной) инфраструктуры не будет - она будет нужна для всех воюющих сторон. Фрагментация, (D)DOS, атака на уязвимости и закладки - вот этого будет хоть отбавляй.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100532
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Не.
Конфликт будет ядерный. Для этого полно желающих стоят со спичками.
И никакой веб, gprs, glonass, доставка пиццы и станция МИР работать не будут.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100533
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будут работать декадно-шаговые и координатные АТС.

И будут работать ламповые аналоговые радиостанции. Короче военное оборудование.

А всем смартфонам придет капец.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100534
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Будут работать декадно-шаговые и координатные АТС.

И будут работать ламповые аналоговые радиостанции. Короче военное оборудование.

1. Нет, не будут. Они давно уже на свалке и поржавели
2. Шанс есть, но малюсенький-малюсенький, т.к., боюсь, их уже разучились по нормальному производить. А то что производят, то делается на станках увезенных в 1945-1946 году из братской немецкой республики, узок круг специалистов, которые на них способны работать и знают куда и как нужно кувалдой стучать.

IMHO

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

1. Нет, не будут. Они давно уже на свалке и поржавели

Не стоит судить по Москве.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100539
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не в москве
Если и не на свалке, то поржавели в любом случае. Какого они года выпуска "не в Москве" ?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100543
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Конфликт будет ядерный.
Во второй мировой все планировали использовать химическое оружие. Как в первую империалистическую. Но - не рискнули.

P.S.
Есть, правда, мемуары об использовании "химических" ракет в первый день операции Блау.
Возможно, что были ещё какие-то эпизоды. Как, например, против партизан Аджимушкая.
Но применять химическое оружие массово не рискнули даже нацисты.

Американцы (и ядерное и химическое) - применили, но сугубо локально и без риска ответного удара.
А в условиях "тотальной достижимости" не окупятся даже "триста процентов".
...
Рейтинг: 0 / 0
центр уведомлений
    #40100548
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Будут работать декадно-шаговые и координатные АТС.
ну чтоб перейти на дши необходимо слишком много сопровождающего оборудования...
будут барышни - дёшево и ласково
...
Рейтинг: 0 / 0
центр уведомлений
    #40100550
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
И будут работать ламповые аналоговые радиостанции. Короче военное оборудование.
https://habr.com/ru/post/580484/
...
Рейтинг: 0 / 0
центр уведомлений
    #40100649
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще есть такой интересный вопрос. TCP/IP обычно не использует всю пропускную ширину канала. Тоесть
логическая скорость передачи информации будет медленее чем заявленная скорость канала.
Это связано с алгоритмом обработки потерь в TCP и расширяющимся окном.

Вот мне интересно были ли какие-то исследования в этой части алгоритма для QUIC. Какие еще существуют
алгоритмы? И можно ли прогнозировать параметры соединения или как-то более умно их подстравивать
в процессе.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100655
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
TCP/IP обычно не использует всю пропускную ширину канала.
Тоесть логическая скорость передачи информации будет медленее чем заявленная скорость канала.
Это связано с алгоритмом обработки потерь в TCP и расширяющимся окном.
"Да с чего ты взяла?!" (ц) князь из м/ф "Василиса Микулишна".

TCP/IP умеет много разных гитик. И на собственном уровне и на уровне сетевого транспорта.
А ещё всё это великолепие может быть "завернуто" в MPLS и "ходить совсем другим образом".

P.S.
Да, короткие пары вопрос-ответ "не ускоряются", но это уже чисто прикладной вопрос.
Его даже в рамках HTTP/1.1 решить можно.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100668
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev

Если это Oracle (а есть такое подозрение), то лицензии привязываются к Named User (пользователям). Сколько коннектов от одного _реального_ (homo sapiens) пользователя, то лицензиям пофиг.

Если коннекты в значении нагрузки на сервер СУБД, то в Oracle это проще решит через shared sessions. При этом старый софт можно оставить в dedicated режиме, а новый пустить через shared.

IMHO & AFAIK

Коннекты я хотел бы уменьшить по двум причинам:
1. для уменьшения потенциальной нагрузки (в моем конкретном случае она не будет высокой, но приложение, о котором я говорю может быть кем-то переиспользовано)
2. для удобства сопровождения. Давайте не будем углубляться в вопрос "Зачем".

На счет dedicated/shared сессий - я почти уверен, что это должно было быть положено в архитектуру системы изначально, т.к. в прикладе накручен мощный аудит. Так что вариант этот мне не очень подходит.


Leonid Kudryavtsev

Все что угодно:
сокеты, постоянно открытое http соединение, любые средства доставки сообщений и 100500 прочих

уточняющие вопросы:
1. что будет работать надежнее и менее капризно?
2. что будет работать быстрее?
3. что из этого не является морально устаревшей (или устаревающей) технологией?



Leonid Kudryavtsev

А вот тут уже совершенно не понятно.
1. Если транспорт HTTP, то я бы взял https://hc.apache.org/ (поскольку его знаю) и example от него
2. Если сокеты - то любой example из гугля
3. Если хочется навомодного и солидного, то любой транспорт сообщений. Например (сам не использовал) https://www.rabbitmq.com/ Только IMHO это пушкой по воробьям
4. ну и 100500 других средств

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

Да, могут быть проблемы при очень большой нагрузки. Если тысячи (>3-5 тыс.) сокет или HTTP соединений, то на сервере можно получить проблемы с диспетчером потоков в ОС, но это решается переходом на NIO. Для сотен соединений, "старый" socket работает лучше (10-20% быстрее, меньше загружает проц).


1. я думал над http, но из-за множества не определился с вариантом. Делать на элементарном сервлете корп.решение мне кажется как-то не правильно. Из того, что я гуглил, мне приглянулись Netty и GRPC. но не знаю какие там могут быть там подводные камни.
2. не являюсь большим экспертом в сетевом взаимодействии. Если решусь делать - это будет мой первый опыт. По поводу сокетов я прочитал, что чаще всего это блокирующее взаимодействие. Сильно углубляться в тонкости реализации серверной архитектуры, чтобы сделать его неблокирующим для ответа множеству клиентов мне не хочется.
3. "Новомодное" - не совсем подходящее слово, наверное. Я бы лучше сказал "современное", так чтобы детские болячки в этом решении уже были полностью излечены.
Про раббитМКу - почему из пушки по воробьям? можете развернуто?
я думал над кафкой, но как я понял, она не гарантирует доставку, если подписчик отвалится.
4. из 5 страниц предложенных вариантов я увидел только 5: rabbitmq, hc.apache, sockets, и +2 моих - Netty и GRPC.
можно конкретно по ним получить экспертное мнение?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100684
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вау, автор проснулся!
Ты прямо как журналист пришел к программистам.

wolfio
Leonid Kudryavtsevлюбые средства доставки сообщений и 100500 прочих

уточняющие вопросы:
1. что будет работать надежнее и менее капризно?
2. что будет работать быстрее?
3. что из этого не является морально устаревшей (или устаревающей) технологией?
Ему говорят - любая технология из 100500.
Он спрашивает - разверните подробнее про любую
))
Наверно забыл про правило - пишите на том на чем умеете.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100687
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
Делать на элементарном сервлете корп.решение мне кажется как-то не правильно.
у вас тема Центр сообщений по изменениям в бд.
С какого бодуна вы намекаете на решения корпоративные и решения больших корпораций?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100689
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Вау, автор проснулся!
Ты прямо как журналист пришел к программистам.

извини, пожалуйста, если расстраиваю тебя. Просто нет времени на болтовню.

PetroNotC Sharp

у вас тема Центр сообщений по изменениям в бд.
С какого бодуна вы намекаете на решения корпоративные и решения больших корпораций?

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

Мне вообще не нравится постановка - типа "изменения в БД". Это что получается.
обновил я свойства 100500 клиентов банка (в связи с обновлением версии) и
мессенжинговая система захлебнулась в events. Еще по каждому клиенту 1000 атрибутов.
Теперь пока те сто тыщ не зайдут - новые стоят в очереди.

Нет я конечно нарисовал гипотетический сценарий но если говорим об "изменениях БД" то
надо наверное говорить о КАКИХ изменениях. Может имелось в виду что кто-то формочку
открыл. Поправил что-то. И при чем тут БД?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100691
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio,
Вам нужно решить как будет выглядеть эти сообщения
- подсказки в системном трее
- бегущая строка в окне основной программы (статус бар)

авторТак родилась идея написать на javaFX скромный центр уведомления, который будет поверх окна клиента оповещать его об ошибке/успехе
То есть прогаА висит на хранимке 10мин, а ты в приложенииБ ПОВЕРХ ОКНА приложенияА которое висит собрался выводить?
Операционка не даст.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100693
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Он вообще не врубается в то как устроены программы. Как ори взаимодействуют и их причинно следственные связи.
Увы.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100694
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonМне вообще не нравится постановка - типа "изменения в БД". Это что получается.
обновил я свойства 100500 клиентов банка (в связи с обновлением версии) и
мессенжинговая система захлебнулась в events. Еще по каждому клиенту 1000 атрибутов.
Теперь пока те сто тыщ не зайдут - новые стоят в очереди.

господа, ну очнитесь уже, 3 раза говорил что речь не об апдейтах.
речь о создании апи, которое будет использовано разработчиком при создании новых хранимок в будущем. Апи будет расширять возможности системы, не больше и не меньше. Никто не собирается втыкать его в каждую хранимку и тем более в триггеры на CRUD



PetroNotC Sharp
wolfio,
Вам нужно решить как будет выглядеть эти сообщения
- подсказки в системном трее
- бегущая строка в окне основной программы (статус бар)

авторТак родилась идея написать на javaFX скромный центр уведомления, который будет поверх окна клиента оповещать его об ошибке/успехе

То есть прогаА висит на хранимке 10мин, а ты в приложенииБ ПОВЕРХ ОКНА приложенияА которое висит собрался выводить?
Операционка не даст.

я хотел сделать подсказки в системном трее, о чем написал еще где-то вначале.
бегущая строка невозможно из-за отсутствия исходников, о чем я уже лично вам сказал 2 раза. И я не собирался ломать клиент изначально
...
Рейтинг: 0 / 0
центр уведомлений
    #40100695
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
извини, пожалуйста, если расстраиваю тебя. Просто нет времени на болтовню.
а просить чела описать все мыслимые способы Middleware тебя совесть не мучает.
Даже веб или десктоп предложил рассмотреть)))) LOL
...
Рейтинг: 0 / 0
центр уведомлений
    #40100697
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
я хотел сделать подсказки в системном трее, о чем написал еще где-то вначале.
а зачем про сервлеты выше написал?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100699
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio

Про раббитМКу - почему из пушки по воробьям? можете развернуто?

Задача больно простая.

Моя оценка _работоспособного_ кода для "сервера", от 200-300 строк, т.е. первая версия - человеко день с базовыми знаниями Java backend и просмотра пары примеров (даже чтения документации на данном этапе не нужно).

Что бы настроить раббит, нужно хотя бы прочитать документацию по нему, думаю страниц под 300-500, после чего настроить интеграцию шины сообщений между раббит и DMSB_AQ. Т.е. скорее всего нужно будет компилить какой нибудь "модуль интеграции" в те же самые 200-300 строк, но написанных другим человеком, т.ч. разбираться в чужом коде + читать документацию (если она вообще есть). Потом настраивать раббит. Потом тестировать, работает ли он. Потом писать прием/отсылку сообщений в раббит и так далее. Для меня, для получения первой работоспособной версии, потребовалось бы не меньше недели.

_Только_стандартным_ кодом все равно не обойдется, т.ч. какие-то велосипеды придется прикручивать/дописывать (та же интеграция), плюс будет задействован чужой код (сложно разбираться с проблемами) и т.д и т.п. Трудоемкость и сложность системы возрастают, а результат тот же. Никакого профита (кроме новомодных слов в резюме разработчика) не видно.

wolfio

я думал над кафкой

Что кафка, что раббит, что другая MQ - думаю однофиолетово

wolfio

она не гарантирует доставку

Требование про "гарантировать доставку" при Вашем описание проблемы, звучит очень странно. Ну потеряется одно _информационное_ сообщение из тысячи, job отработает, но пользователь об этом вовремя не узнает. В чем потеря для бизнеса, если пользователь узнает об этом не сразу, а через десяток минут?

Например в нашей задаче, это явно не критично. Т.к. с большей вероятностью: пользователь забудет открутить колонки на максимум; сильно заснет (не услышит колонок); проснется, автоматом нажмет на Ok и заснет снова; и так далее и тому подобное....

Ну отреагирует диспетчер на заявку не через 5 минут, а через полчаса. Возможно это и плохо, но врят ли критично.

Будет _реально_ критическая авария, нормальный адекватный сотрудник, кроме заявки через IT систему еще по телефону позвонит и не только (не столько) диспетчеру, сколько своему непосредственному руководителю (если совсем серъезно, то руководитель позвонит своему, тот еще выше, генеральный позвонит губернатору и так далее).

Если же кто-то настолько полагается на IT-систему в _критических_ ситуациях, то боюсь, в _реально_ _критических_ ситуациях такую отмазку ни губернатор, ни президент, ни следственный комитет не примет.

Т.ч. что там кафка гарантирует, что не гарантирует - для бизнеса однофиолетово. IMHO


1. Сам работал на заводе, когда нужный отчет не печатался и из-за этого задерживалась отправка железнодорожного состава. Все происходило примерно в 20:30-23:00.

Починить мог админ, который в это время ехал домой в метро ))) На заводе сидел я и менеджер проекта. Ничего не делали (см. первое предложение в абзаце). Раз в пятнадцать минут: генеральный директор завода звонил генеральному директор нашей IT-консалтинговой конторы (600 человек сотрудников), тот звонил менеджеру проекта, менеджер проекта отвечал "да, программисты работают, примерно через час починим".

Я, в качестве программиста, сидел вместе с менеджером на заводе. Через час-полтора админ доехал до дома, вошел в Интернет, нажал на нужную кнопку. Менеджер позвонил нашему гену "работа выполнена успешно", тот генеральному директору завода, тот своим сотрудника, которым был нужен отчет... Через час генеральный позвонил менеджеру проекта, всех похвалили за успешно преодоленные трудности и проявленный трудовой интузиазм в не рабочее время. В общем, все молодцы.

2. Когда через полгода халтурил на данный завод, то на мой вопрос "наверное мою работу нужно согласовать с директором по ИТ, т.к. будут нужны пароли от серверов", мне ответили "ничего согласовывать не надо; напиши на бумажке, что тебе нужно - все будет".

В прошлый раз, когда отчет отказался печататься, сотрудники цеха поступили просто:

отчет не печатается - составы отгружать нельзя - место на складе в цеху не резиновое - подошли к рубильнику, повернули его и просто остановили завод (стоимостью в миллиард долларов)

через полчаса, с Канарских островов, позвонил господин Мордашев с вопросом "почему завод не работает?". Ему пригласили к телефону IT-директора.

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

Т.ч. что там кафка гарантирует, что не гарантирует - для бизнеса однофиолетово.


wolfio

4. из 5 страниц предложенных вариантов я увидел только 5: rabbitmq, hc.apache, sockets, и +2 моих - Netty и GRPC.
можно конкретно по ним получить экспертное мнение?


1) rabbitmq / кафка / что-то еще - модно, современно, технологично, но по первому взгляду на описанние задачи - слишком переусложненно.

Кроме собственно разработки системы, ее еще потом нужно поддерживать / дорабатывать. Т.е. rabbitmq / кафку / что-то_еще должен не только текущей программист знать / выучить (ему то наверное даже по приколу будет, он на данной задаче свои скилы повысит), но и людям, которые дальше будут эту систему поддерживать (следующее поколение программистов, системный администратор и так далее), а это уже прямые затраты $$$ организации при сопровождении системы.

2) hc.apache - самое просто и легковестное

3, 4) Netty и GRPC - как я понимаю, это более-менее полноценные web / servlet сервер / контейнер. Можно взять и его, но по сравнению с hc.apache, опять таки, более тяжеловестно. Если знаете какие-то технологии типа spring.boot (я ее _не_ знаю) и считаете, что на данной технологии Вам сделать проще, чем на чистой Java + hc.apache - ради бога. Если вместе с ней "впридачу" идет Netty / GRPC - то возражений нет. Но тащить полноценный web / servlet сервер туда, где нужно просто слушать и отвечать на одно-два URI, _немного_ тяжеловестно. (с netty не работал, знаю только tomcat/Weblogic; про grpc даже не слышал)

5) Соккеты - самое-самое легковестное и не требует никаких сторонних библиотек, больше ни одного плюса по сравнению с http, одни минусы.

p.s. например наш код-оповещалки общается с java-bean внутри легаси приложения (OeBS) именно через сокеты. Т.к. чем меньше стороннего кода (библиотек) в легаси запихано, тем лучше. Х.з. как OeBS себя поведет и что ему в сторонних библиотеках не понравится. Т.ч. только чистый Java, никаких (минимум) библиотек. Но если таких жестких ограничений нет, то HTTP конечно лучше.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100700
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
Делать на элементарном сервлете
это зачем?
Мы сузим поиск решения или нет?
Если систрей внизу экрана то причем вообще веб и http и сервлеты?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100701
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Ну отреагирует диспетчер на заявку не через 5 минут, а через полчаса.
юз кейс у него еще проще.
ПриложениеА при нажатии на печать виснет на 10минут.
Вот он хочет еще ДОПОЛНИТЕЛЬНО информировать когда Отвиснет))))))
...
Рейтинг: 0 / 0
центр уведомлений
    #40100705
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
Еще один расказ из жизни.

Наш генеральный очень сильно в течении 2-3 лет хотел "шину сообщений". Перед программистами была поставлена задача
1. сделать шину сообщений
2. придумать куда ее впихнуть (что бы при этом все еще продолжало работать)
3. реализовать

Программисты данную задачу провалили. Т.ч. впихнуть шину куда нибудь и можно было бы, но:
1. все и так уже работает без всяких шин
2. всюду, куда пытались бы впихнуть, выглядило бы это ну просто жутко уродливо (плюс см. п.1)
3. не было гарантий, что если перейти на шину, то соответствующий функционал продолжить работать без сбоев. Даже несмотря на то, что данная шина 100500 раз "гарантирует доставку сообщений"

В общем - программисты не справились.

Почему генеральный директор ставил такую задачу и был готов ее оплачивать в виде ЗП:
1. "Шина сообщений" это "модно и молодежно". Даже генеральные деректора такие слова слышали, хотя плохо представляют, что же это такое - можно продать
2. Преднозначена для интеграции - значит можно попытаться впихнуть нашу шину и в наши, и в чужие проекты
3.
3.1. Если мы разработаем такую шину, все остальные, даже закупив очень много бутылок по 0.5 литров - фиг разберутся )))
3.2. Т.к. ее будем запихивать куда надо и не надо - без нее все гарантированно накроется медным тазом
3.3. В результате - фиг наш обойдешь в каких нибудь последующих тендерах. Президенты меняются, губернаторы меняются, а хорошо написанная шина - может жить и давать зарплату сотрудникам вечно.

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

IMHO
...
Рейтинг: 0 / 0
центр уведомлений
    #40100706
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolfio
это решение можно было бы использовать в других организациях, использующих данную систему.
очень сомнительно.
Посоветуйся с бизнес аналитиком.
- прогуА в которой все работают и которая тормозит ты не меняешь
- о том что ожидание закончилось известит MessageBox прогиА когда она закончит
- то есть у тебя только дубляж и нет Нового функционала.
- твои задумки сделать асинхронно прогуА остались только разговорами
Логично?
...
Рейтинг: 0 / 0
центр уведомлений
    #40100709
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Про шины / ESB хороший пример)).
Кстати, читал рекомендации для шин
- клеим 7-10 систем
- 10-50
- 50 и более
Вот три вида шин для трех организаций)
...
Рейтинг: 0 / 0
центр уведомлений
    #40100714
wolfio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

спасибо за адекватность.

Ветку можно закрывать.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100721
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Что кафка, что раббит, что другая MQ - думаю однофиолетово

Это интересная тема. Но мне кажется что Kafka в этом смысле - что-то вроде конструктора хранилища
распределенных месседжей. Тоесть она - более продвинута в пропускной способности. Упора на протокол
нет. Собственно Кафке вообще плевать на промышленные протоколы очередей. У нее - что-то своё.
Функция партишенинга может быть своя.

А RabbitMQ проектировался просто исходя из других требований. Во главе угла стоял протокол и
способность инстанса переживать тяжелые сетевые ситуации. Благо... Erlang на это заточен.
И я думаю что в тесте на хранение большого числа подписок и непринятых сообщений кролик
проиграет кафке.

Это мои субъективные восприятия обоих мессенджеров. Хотя... можно подять отдельный топик.
Хотя-бы по вопросам перформанса. Где-то уже такая тема мелькала.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100724
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Он имел ввиду что все это для автора топика фиолетово.
Плюсы и минусы конечно есть.
Но для этого надо делать систему а не быть тут мимопроходящим.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100725
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Большое число подписок автору как раз не нужно.
Юзверей 500штук и события висят 10мин
...
Рейтинг: 0 / 0
центр уведомлений
    #40100733
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Он имел ввиду что все это для автора топика фиолетово.
Плюсы и минусы конечно есть.
Но для этого надо делать систему а не быть тут мимопроходящим.

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

Только модератор решает когда что закрывать. А если кто-то хочет задать вопрос и получить ответ
- так это не к нам. Это в toster или stackover.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100735
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну вот смотри. Ты кликнул что rabbit лучше протокол.
Я кликну что кафка это хайпово.
Нельзя же однозначно сказать что первое лучше второго)
Абстрактно не обсуждают архитектуру (с)
...
Рейтинг: 0 / 0
центр уведомлений
    #40100737
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данных условиях автору вообще - по барабану что брать.

Пусть берет ApacheActive MQ. Бесплатен. И ставится легко. Все протоколы поддерживает.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100740
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Не потянет. Не видит разницы между сервлетом, сервисом Оси и системами на сообщениях.
Удачи ему.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100743
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О чем поговорить в пятницу? Андрейка поднимал темы про Kafka. Но у него не было ни логов ни сорцов.

Можно взять синтетическую задачу. Например - генерацию простых чисел и просто пересылку из
по схеме peer-2-peer. И реализовать ее для Kafka. Потом посмотреть на перформанс.

Я пока использовал только IBM/MQ, ApacheMQ в своих продуктовых задачах. Ну еще был
Amazon SQS. Но с этим тяжко экспериментировать. Нужен аккаунт в клауде.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100744
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

...
Можно взять синтетическую задачу. Например - генерацию простых чисел и просто пересылку из
по схеме peer-2-peer..... Потом посмотреть на перформанс.
...

Apache.HC 0 up to 50-100 Mb / sec via 1Gb ethernet.

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

...
Можно взять синтетическую задачу. Например - генерацию простых чисел и просто пересылку из
по схеме peer-2-peer..... Потом посмотреть на перформанс.
...

Apache.HC 0 up to 50-100 Mb / sec via 1Gb ethernet.

потом взять кафку и посмотреть на перформанс )))


Я согласен. Только кейс для Apache.HC - с тебя.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100748
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда с тебя генерация случайных чисел с такой скоростью )))

Apache.HC просто транспорт поверх сокетов, 50-100 Mb сек в реальных приложениях видел. Вся потеря времени исключительно преобразовании кодовых страниц (Unicode-UTF8/1251) и двойной-тройной буфферизации поверх NIO.

p.s.
это только в документации/рекламе про нативное выделение памяти написано, что оно дает возможность (десять раз ха), избежать множественного копирование из памяти-в-память при общении с системой ввода-вывода. На практике, все обстоит с точностью до наоборот. Скорость одиночного доступа к нативной памяти, ниже самого нижайшего плинтуса. Если не скопировать в нормальную heap-область, все вообще будет стоять колом. Т.ч. при NIO количество копирований память-память ни только не уменьшается, а наоборот становится до неприличия ненормальным.
(дебажил Apache.HC, правда сильно предыдущих версий, но не думаю, что там что-то поменялось)

p.p.s.
Если под пересылкой ты имеешь в виду round-trip, отсылку и ответ, то тогда, скорее всего max 800-1000 сообщений в сек. на ethernet ))) Где-то 200-300 на ethernet 10 Mb, 400-500 на ethernet 100 Mb, 800-1000 на 1G и 1000-1200 на 10 Gb. ))) Нужно быстрее - покупайте нормальное оборудование, а не ethernet )))
...
Рейтинг: 0 / 0
центр уведомлений
    #40100753
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Ну тогда с тебя генерация случайных чисел с такой скоростью )))

Я подготовлю их заранее.

Я - хитрый.

Неважно что будем гонять по сети. Хоть UUIDs. Главное чтоб был контент. И была какая-то возможность валидации.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100754
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Не ну как неважно.
Сообщение короткое и сообщение вместе с ворд документом это разные скорости.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100757
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Если под пересылкой ты имеешь в виду round-trip, отсылку и ответ, то тогда, скорее всего max 800-1000 сообщений в сек. на ethernet ))) Где-то 200-300 на ethernet 10 Mb, 400-500 на ethernet 100 Mb, 800-1000 на 1G и 1000-1200 на 10 Gb. ))) Нужно быстрее - покупайте нормальное оборудование, а не ethernet )))

Я себе вижу тестирование так.

Мы поднимаем конфигурацию 3х приложений.
Producer (java), Consumer(java), Broker(*)

Всё на localhost с сетевым интерфейсом локальной петли. Ее характеристики можно обсудить.
Эта конфигурация поднимется даже на ноутбуке.

Для разных брокеров (Kafka/Apache*) мы договариваемся о смысле параметров перформанса.
Например для гарантий доставки (at least once, at most once..) мы стараемся реализовать
одинаковые конфигурации хотя-бы на уровне нашего понимания.

Для оптимизаций типа объединения месседжей в пачки - мы тоже договариваемся о том чтобы
смысл бенчмарка был примерно одинаков для разных брокеров.

Сетевой прикладной протокол - нам вообще не интересен. Но можно выбирать самый быстрый
с точки зрения накладных расходов.

После того как наиграемся с loopback - можно поднять конфигурацию хотя-бы на 2х физически
разных хостах.

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

это только в документации/рекламе про нативное выделение памяти написано, что оно дает возможность (десять раз ха), избежать множественного копирование из памяти-в-память при общении с системой ввода-вывода. На практике, все обстоит с точностью до наоборот. Скорость одиночного доступа к нативной памяти, ниже самого нижайшего плинтуса. Если не скопировать в нормальную heap-область, все вообще будет стоять колом. Т.ч. при NIO количество копирований память-память ни только не уменьшается, а наоборот становится до неприличия ненормальным.
(дебажил Apache.HC, правда сильно предыдущих версий, но не думаю, что там что-то поменялось)

Ты поднял очень интересную тему. Тему off-heap доступа которую я тоже хотел-бы обсудить отдельным топиком.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100761
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Не ну как неважно.
Сообщение короткое и сообщение вместе с ворд документом это разные скорости.

Для толстых сообщений необходимость мессенджинга - сомнительна. Их обычно бьют на две части.
Одна - собственно тело сообщения - идет в NAS или любое другое хранилище. А в брокер пересылают
только ссылку.

Помнишь как в лихие 90-е на телефон кидали MMS-ки. Вот это оно и есть. Это SMS-ка с линком на веб.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100763
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да. Получается средняя по госпиталю.
Непонятны размеры сообщений в боевой среде.
Фикция а не тесты.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100766
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Да. Получается средняя по госпиталю.
Непонятны размеры сообщений в боевой среде.
Фикция а не тесты.

Ну у тебя есть продуктовая система с месседжами? Можешь оценить средний размер? И всякие процентили?

Мы сымитируем.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100767
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня была система которая слала FIX-messages для торговли equities. Какой средний размер месседжа?
Я не помню. Но могу синтезировать парочку и просто прикинуть на глаз размер.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100768
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Больно у Вас как-то сложно. Сообщения. Толстые, тонкие.

IMHO (упрощенно)

1. Может быть поток сообщений в одну сторону: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37....

Толстое оно, тонкое - глубоко пофиг. Каждое число конечное тонкое, но все вместе - так толсто, что просто обзавидуешься

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. Родовая травма, которая лечится только полным выпиливаением.

Ну и loopback в данном случае будет совсем не показатель. Т.к. сильно зависит от OS. Т.к. "правильный" loopback (если повезет с реализацией в конретной OS), "плохой" loopback (если не повезет) и реальный ethernet - ничего общего иметь между собой не будут.

IMHO & AFAIK

p.s. примерное масштабирование технологии Ethernet я показал выше. С каждым поколением:
Цифирька скорости увеличивается на один нолик
А латенси падает (кол-во round trip в секунду растет) только где-то в два раза
p.p.s. сферические тесты сети вроде под 50 000 сообщений в секунду на 1Gb Ethernet показывают. Но то сферические тесты на C. Как только что-то прикладное, то минимум нолик удаляй, а то и все два.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100770
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

Ну и loopback в данном случае будет совсем не показатель. Т.к. сильно зависит от OS. Т.к. "правильный" loopback (если повезет с реализацией в конретной OS), "плохой" loopback (если не повезет) и реальный ethernet - ничего общего иметь между собой не будут.

А меня устравивает loopback. Во первых - это позволяет нам оценить скорость работы брокера в чистом виде.
Во вторых Василий нам где-то анонсировал zero-copy оптимизации для loopback в последних версиях JDK. Это хорошо. Мы будем
это принимать в расчет.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100773
Фотография 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 систему а на работу обычного синхронного веб-сервиса.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100775
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C рабитами, кафками не сталкивался

Т.к. там, где реально большие нагрузки (tradingview.com) все сообщения посылали руками через HTTP и проблем не знали

В текущей прикладной области enterprise: прикладных систем очень много, но организация одна. Т.ч. db-link и так же, проблем не знаем. Нафиг нам эти Ваши кафки?

Был опыт работы со СМЭВ и ГИС ГМП ))) Такой себе опыт. Электронный документооборот в виде сообщений с TIFF-сканами, которые потом распечатываются на бумагу на принтере, с клавиатуры вводятся в прикладную систему (ну или еще что-то с ними делается), из прикладной системы распечатывается отчет, сканируется, TIFF-файл посылается через СМЭВ, всякие кафки и SOAP'ы. Полностью ассинхронный, импортозамещенный, электронный документооборот.
(опыт многолет назад, сейчас, возможно, все не так комично)

ГИС ГМП тот момент более-менее заставили использовать ГАИ, но в налогой инспекции внедрение застопорилось

т.к. алгоритм генераци пеней (по сообщениям в профильных конференциях) был замечательный.
если ты что-то должен и пытаешься оплатить - тебе по закону начисляют пени минимум в 1 коп
если ты пытаешься оплатить эту коп. - опять пени в 1 коп.
и так до бесконечности )))
наши законы, налогавая и ГИС ГМП - сила!
В любом случае, сколько не плати, все равно должен останешься

Налоговой это как-то не очень понравилось и они внедрение приостановили ))) Поскольку налоговая это не какая-то ГАИ, а государство-образующая структура, продавить налоговую "и так сойдет" не получилось. Внедрение приостановилось.

Когда мы писали модуль для ГИС ГМП для нашего заказчика, мы сразу сказали, что фиг клиенты что-то смогут оплатить через тот банк, который к ГИС ГМП подключится ))) очень долго они будут ходить и выяснять, что же с его платежем произошло ))) и в ГИС ГМП и в нашей системе )))

Единственный банк в СПб, который на тот момент отчитался о внедрении ГИС ГМП, был АКБ "Таврический". Чуть погодя ))), как все помнят, он объявил о своем банкротстве. Если между этими двумя фактами (ГИС ГМП и банкротством) какая-то связь - то простым смертным не ведомо )))
...
Рейтинг: 0 / 0
центр уведомлений
    #40100776
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
В том то и дело что тема то интересная, но редкая)).
У меня все проекты синхронные.
Ну и писать асинхронку с событиями сложнее.
Так что опять ждем не ленивого ТС с нормальными вопросами.
Он делает а мы... направляем)))
Ты нормальный трафик событий не родишь.
...
Рейтинг: 0 / 0
центр уведомлений
    #40100780
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
сферические тесты сети вроде под 50 000 сообщений в секунду на 1Gb Ethernet показывают. Но то сферические тесты на C. Как только что-то прикладное, то минимум нолик удаляй, а то и все два.
+1
Это как с субд.
Начинаешь вставлять - 10 записей в сек.
После тюнинга и настроек - 1000000 в сек)))))
...
Рейтинг: 0 / 0
центр уведомлений
    #40100792
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Leonid Kudryavtsev
сферические тесты сети вроде под 50 000 сообщений в секунду на 1Gb Ethernet показывают. Но то сферические тесты на C. Как только что-то прикладное, то минимум нолик удаляй, а то и все два.
+1
Это как с субд.
Начинаешь вставлять - 10 записей в сек.
После тюнинга и настроек - 1000000 в сек)))))


Вот интересно с точки зрения Kafka consumer 1 сетевое сообщение != (не равно) 1 MQ сообщению?

Метод poll изначально ориентирован на пачку.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        while(true) {
            ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(pollTimeMs));
            for(ConsumerRecord<String, String> record : records) {
                logger.info("Received message topic = {}, partition = {}, offset = {}",
                        record.topic(),
                        record.partition(),
                        record.offset());

                if (record.value().equals("poison-pillow")) {
                    break;
                }
            }
        }


(про producer пока не говорим)
...
Рейтинг: 0 / 0
центр уведомлений
    #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
170 сообщений из 170, показаны все 7 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / центр уведомлений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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