Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Добрый день, друзья! С понедельником всех!

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

Так вот, собственно вопрос. Есть у нас в приложении синглетоны (EJB, но не суть, могли бы быть и Spring). Все прекрасно до тех пор, пока мы не начали масштабировать свое приложение через loadbalancer. Т.е. у нас база одна, а серверов приложений может быть несколько, с одним и тем же продуктом, естественно. И через load balancer (мы используем т.н. sticky sessions) запросы уходят на тот или иной сервер. Между собой сервера не общаются. Если один сервер умер, все пользовательские сесси на нем умирают - это не критично в нашем случае. Но вопрос касательно синглетонов. Получается их несколько инстансов теперь, естественно. Так вот какие быват практики какой-то синхронизации между ними? Можно конечно синхронизироваться через БД (она-то одна), но бывают критические с точки зрения скорости сценарии.
7 окт 19, 14:02    [21988246]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mad_nazgul
Member

Откуда:
Сообщений: 4839
rabiter
Так вот какие быват практики какой-то синхронизации между ними? Можно конечно синхронизироваться через БД (она-то одна), но бывают критические с точки зрения скорости сценарии.


А разве сервера приложений эту проблему не решают?
7 окт 19, 14:13    [21988265]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
Давай начнем с простого - а зачем именно синглтон нужен?
7 окт 19, 14:24    [21988287]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
забыл ник
Давай начнем с простого - а зачем именно синглтон нужен?

Согласен. Именно с простых истин
- синглтон зло
- синглтон в пределах одного приложения. Зачем его синхронизировать?
7 окт 19, 14:27    [21988290]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
забыл ник
Давай начнем с простого - а зачем именно синглтон нужен?


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

1. Например для кеширования application scoped данных (тут вы скажете не валяй дурака, используй специальный софт для кеша - согласен, руки еще не дошли, хотя кое-где уже использую ehcache) - хотя тут если несколько инстансов синглетона, это не критично - будет просто несколько инстансев кеша
2. А вот здесь более критично: приложение работает по floating лицензиям. Т.е. при старте мы считываем из файла лицензий сколько у нас свободных лицензий, и выставляем в синглетон как переменную. Когда пользователь логинится, мы уменьшаем счетчик на единичку, когда выходит из системы - увеличиваем. Если счетчик ноль, то ни один пользователь не может залогиниться (нет лицензий). Счетчик AtomicLong. Так вот и получится, что счетчиков-то в кластере несколько! А на базе синхронизироваться? Как-то медленно.
7 окт 19, 14:41    [21988319]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
mad_nazgul
rabiter
Так вот какие быват практики какой-то синхронизации между ними? Можно конечно синхронизироваться через БД (она-то одна), но бывают критические с точки зрения скорости сценарии.


А разве сервера приложений эту проблему не решают?


Ну есть два подхода - типа sticky sessions и non-sticky sessions. Мы используем первый (сессии у нас жирные, так исторически сложилось, много SessionScoped бинов, поэтому между серверами их синхронизировать через shared disk, или как там еще - тяжело будет). Или можно только выборочно синхронизировать синглетоны?
7 окт 19, 14:42    [21988322]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
rabiter

1. Например для кеширования application scoped данных (тут вы скажете не валяй дурака, используй специальный софт для кеша - согласен, руки еще не дошли, хотя кое-где уже использую ehcache) - хотя тут если несколько инстансов синглетона, это не критично - будет просто несколько инстансев кеша

Все правильно - надо будет на каждый инстанс свой кэш, либо партитичионировать данные на каждый нод - свой кусок. Ну не суть, проблема решаемая, синглтон тут не нужен.
rabiter
2. А вот здесь более критичноСчетчик AtomicLong. Так вот и получится, что счетчиков-то в кластере несколько! А на базе синхронизироваться? Как-то медленно.

Задача ясна, но проблем все равно не вижу. У вас же есть логика авторизации\аутентификации, так? Как она работает? Почему бы в этом сервисе не завести таблицу с этим счетчиком. Не будет это медленно(точнее не медленнее всех способов синхронизировать синглтон)

Можно посмотреть в сторону zookeeper еще, но это уже тяжелай артиллерия. Я бы избавлялся от синглтонов на корню. Это бутылочное горлышкр всегда и везде
7 окт 19, 14:46    [21988328]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
П. П. 2 - можно и сервис лицензий отдельно запустить как офис MS делает. Отдельный сервис в сетке считает лицензии.
7 окт 19, 14:48    [21988334]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
забыл ник
rabiter
1. Например для кеширования application scoped данных (тут вы скажете не валяй дурака, используй специальный софт для кеша - согласен, руки еще не дошли, хотя кое-где уже использую ehcache) - хотя тут если несколько инстансов синглетона, это не критично - будет просто несколько инстансев кеша

Все правильно - надо будет на каждый инстанс свой кэш, либо партитичионировать данные на каждый нод - свой кусок. Ну не суть, проблема решаемая, синглтон тут не нужен.
rabiter
2. А вот здесь более критичноСчетчик AtomicLong. Так вот и получится, что счетчиков-то в кластере несколько! А на базе синхронизироваться? Как-то медленно.

Задача ясна, но проблем все равно не вижу. У вас же есть логика авторизации\аутентификации, так? Как она работает? Почему бы в этом сервисе не завести таблицу с этим счетчиком. Не будет это медленно(точнее не медленнее всех способов синхронизировать синглтон)

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


У нас монолит, не отдельного сервиса авторизации - все приложение это один жирный EAR файл. В случае кластеров мы его деплоим на N WildFly инстансов и пускаем на них через loadbalancer в sticky-sessions режиме. Т.е. получается если у нас счетчик в памяти - то получится N его инстансов (у нас N WildFly инстансов)
Zookeeper посмотрю, не хочу городить огород, но интересно.
Синглетоны горлышко, согласен, но если о ни в оснвном для чтения, то все ок (для записи изредка, тогда lock, да).
7 окт 19, 14:50    [21988338]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
PetroNotC Sharp
П. П. 2 - можно и сервис лицензий отдельно запустить как офис MS делает. Отдельный сервис в сетке считает лицензии.


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

Но, идея централизованного лицензионного сервера мне очень нравится! Но, не станет ли он бутылочным горлышком? По сути тот же синглетон вынесен в отдельный сервис. Все N инстансов WildFly будут к нему обращаться по http
7 окт 19, 14:54    [21988345]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
rabiter
PetroNotC Sharp
П. П. 2 - можно и сервис лицензий отдельно запустить как офис MS делает. Отдельный сервис в сетке считает лицензии.


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

Но, идея централизованного лицензионного сервера мне очень нравится! Но, не станет ли он бутылочным горлышком? По сути тот же синглетон вынесен в отдельный сервис. Все N инстансов WildFly будут к нему обращаться по http

Не должен стать по идее. Особенно если у вас операции простые типа инкремент\декремент
7 окт 19, 14:55    [21988347]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
забыл ник
rabiter
пропущено...


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

Но, идея централизованного лицензионного сервера мне очень нравится! Но, не станет ли он бутылочным горлышком? По сути тот же синглетон вынесен в отдельный сервис. Все N инстансов WildFly будут к нему обращаться по http

Не должен стать по идее. Особенно если у вас операции простые типа инкремент\декремент


да, сами операции простые, горлышком не станет... Но издержки на транспорт до него и от него. Хотя микросевисы же как-то живут в этом. С другой стороны у нас же и так постоянно транспорт от клиент до сервера и обратно, что я его так боюсь)
Хорошая идая, спасибо!
7 окт 19, 14:59    [21988353]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
rabiter
забыл ник
пропущено...

Не должен стать по идее. Особенно если у вас операции простые типа инкремент\декремент


да, сами операции простые, горлышком не станет... Но издержки на транспорт до него и от него. Хотя микросевисы же как-то живут в этом. С другой стороны у нас же и так постоянно транспорт от клиент до сервера и обратно, что я его так боюсь)
Хорошая идая, спасибо!

Насчет нетворка стоит волноваться если у вас инстансы в разных датацентрах, а если просто лоад балансер на одну подсеть... - как ты правильно и написал, все микросервисы живут с этим и не жалуются
7 окт 19, 15:04    [21988360]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter
горлышком
смотря какие программисты у вас.
Можно вместо http, сделать винСервис или на линуксе демон. Будет моментально отвечать.
7 окт 19, 15:12    [21988367]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
PetroNotC Sharp
rabiter
горлышком
смотря какие программисты у вас.
Можно вместо http, сделать винСервис или на линуксе демон. Будет моментально отвечать.


А это очень интересно, спасибо за идею. Есть джависты и .net. Думаю на java можно демон для linux написать (или посмотреть готовые решения).
7 окт 19, 16:59    [21988538]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
Пылинка
Member

Откуда: СПб
Сообщений: 355
rabiter
Так вот, собственно вопрос. Есть у нас в приложении синглетоны (EJB, но не суть, могли бы быть и Spring).

Singleton Session Beans?
7 окт 19, 17:06    [21988545]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
Пылинка
rabiter
Так вот, собственно вопрос. Есть у нас в приложении синглетоны (EJB, но не суть, могли бы быть и Spring).

Singleton Session Beans?
пусть выпиливает функционал из своего монолита.
7 окт 19, 17:13    [21988561]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Пылинка
rabiter
Так вот, собственно вопрос. Есть у нас в приложении синглетоны (EJB, но не суть, могли бы быть и Spring).

Singleton Session Beans?


так мы их и используем (@javax.ejb.Singleton вы имеете ввиду?), но и получается, что сколько JVM, столько инстансев синглетонов.
7 окт 19, 17:34    [21988606]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5671
rabiter
А на базе синхронизироваться? Как-то медленно.

- в памяти распределенное хранилище, типа Infinispan и т п (смотря какой сервер приложений используете). На нем и синхронизируйтесь.
7 окт 19, 18:03    [21988634]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Kachalov
rabiter
А на базе синхронизироваться? Как-то медленно.

- в памяти распределенное хранилище, типа Infinispan и т п (смотря какой сервер приложений используете). На нем и синхронизируйтесь.


Спасибо, про Infinispan не слышал, но булы мысль про Redis или Ignite. Правда, я подумал, что это overkill :-)
7 окт 19, 19:01    [21988690]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
PetroNotC Sharp
забыл ник
Давай начнем с простого - а зачем именно синглтон нужен?

Согласен. Именно с простых истин
- синглтон зло
- синглтон в пределах одного приложения. Зачем его синхронизировать?

Синглтон не зло и не добро. Это просто инструмент. Как нож. Им можно хлеб резать.
А можно и себе крайнюю пипузку случайно отрубить. И что инструмент - зло?
7 окт 19, 19:26    [21988711]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton,
Термин антипаттерн подходит?)))
7 окт 19, 20:06    [21988741]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
Термин антипаттерн подходит?)))
ну это твое мнение..
7 окт 19, 20:46    [21988809]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2543
дядя какие EJB ты в своем уме
давай мне и ваде денег мы перепишем ваше непотрество на сприг буте
будете потом тока проперти менять и в носу ковыряться
7 окт 19, 20:49    [21988813]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5671
asv79
будете потом тока проперти менять и в носу ковыряться


К сообщению приложен файл. Размер - 71Kb
7 окт 19, 21:27    [21988859]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2543
Kachalov
asv79
будете потом тока проперти менять и в носу ковыряться

если вадю уволим батареи будут внутри )
7 окт 19, 21:30    [21988864]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5671
asv79
если вадю уволим батареи будут внутри )


К сообщению приложен файл. Размер - 52Kb
7 окт 19, 21:34    [21988873]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2543
Kachalov
asv79
если вадю уволим батареи будут внутри )

вот это правильные проперти ,зовите вадю -пусть завизирует))
7 окт 19, 21:50    [21988884]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
Kachalov,

а это стандартное подключение, и сантехники могут поставить тройник с переключателем(не знаю как он правильно обзывается) - если ты их сможешь очень сильно убедить рублём и распиской об ответственности.
но стоит такой тоже не мало...
можно поставить вентиль на перемычку , но просить об этом надо ещё больше....
(из практики)
7 окт 19, 21:55    [21988886]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
вадя
PetroNotC Sharp
Термин антипаттерн подходит?)))
ну это твое мнение..
я не понял, вадя))) Ты синглетон в жизни видел?)))
7 окт 19, 22:12    [21988899]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
я не понял, вадя))) Ты синглетон в жизни видел?)))
я его использую
7 окт 19, 22:16    [21988902]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
вадя
PetroNotC Sharp
я не понял, вадя))) Ты синглетон в жизни видел?)))
я его использую
зачем?
Я тоже глобальные пременные использую. Курю и водку пью. Но детям говорю что это зло)))
7 окт 19, 22:20    [21988905]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
Я тоже глобальные пременные использую. Курю и водку пью. Но детям говорю что это зло)))
этих синглетонов несколько видов - и у каждого и недостатки и прочее.
и не вижу в этом зла. надо только правильно приготовить
7 окт 19, 22:23    [21988908]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2543
PetroNotC Sharp
вадя
пропущено...
ну это твое мнение..
я не понял, вадя))) Ты синглетон в жизни видел?)))

считаю что вадя самозванец и засланец из фронт энда
тест написать не может,синглтон не видел
все с ним ясно
7 окт 19, 22:37    [21988919]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
asv79
считаю что вадя самозванец и засланец из фронт энда
тест написать не может,синглтон не видел
все с ним ясно
хочешь я и с этим соглашусь? моет это успокоит твой словесный понос?
7 окт 19, 22:45    [21988921]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2543
вадя
asv79
считаю что вадя самозванец и засланец из фронт энда
тест написать не может,синглтон не видел
все с ним ясно
хочешь я и с этим соглашусь? моет это успокоит твой словесный понос?

не хочу)ты не должен так быстро сдваться
7 окт 19, 22:52    [21988925]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
asv79
не хочу)ты не должен так быстро сдваться
что и кому я должен или не должен это мне решать
7 окт 19, 22:56    [21988930]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
asv79
дядя какие EJB ты в своем уме
давай мне и ваде денег мы перепишем ваше непотрество на сприг буте
будете потом тока проперти менять и в носу ковыряться


а, это вы, милый друг! да я бы счастлив, и ещё заодно можно JSF на реакт, и монолит на сервисы! а то стыдно даже
7 окт 19, 23:11    [21988941]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
PetroNotC Sharp
mayton,
Термин антипаттерн подходит?)))

Нет. Синглтоне не является антипаттерном.

Где вы такое прочитали? Может просто чей-то кустарный опыт?
8 окт 19, 11:59    [21989252]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Нет. Синглтоне не является антипаттерном.
а глобальные переменные?
Антипаттерн?
А принципы ООП как согласубтся с синглетоном?
8 окт 19, 12:02    [21989257]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
PetroNotC Sharp
mayton
Нет. Синглтоне не является антипаттерном.
а глобальные переменные?
Антипаттерн?
А принципы ООП как согласубтся с синглетоном?

Глобальный объект представляющий справочник валют или стран - это антипаттерн?
Глобальный пул коннектов на приложение - тоже антипаттерн?

Аналогию с переменными я не принимаю. Это манипулирование топиком.
8 окт 19, 12:09    [21989267]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton,
Вот тут, раздел плюсы и минусы
https://ru.m.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)
8 окт 19, 12:18    [21989276]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
mayton
Аналогию с переменными я не принимаю.
видимо считает, что не хорошо читать и писать в глобальные переменные
8 окт 19, 12:19    [21989277]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
вадя
mayton
Аналогию с переменными я не принимаю.
видимо считает, что не хорошо читать и писать в глобальные переменные

Я этого не говорил. Не передёргивайте меня. Я вообще ничего не говорю про глобальные переменны.
8 окт 19, 12:22    [21989281]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
mayton,
Вот тут, раздел плюсы и минусы
https://ru.m.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)
вот ещё
https://www.google.com/search?q=habr Singleton&rlz=1C1GIGM_enRU792RU792&oq=habr Singleton&aqs=chrome..69i57j0l4j69i65.6775j1j4&sourceid=chrome&ie=UTF-8
и там же https://habr.com/ru/post/125238/
8 окт 19, 12:23    [21989284]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
PetroNotC Sharp
mayton,
Вот тут, раздел плюсы и минусы
https://ru.m.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)

Я вас прошу сейчас. И на будущее не приводить в качестве ответа ссылки на википедию.
Такой формат диалога мне не интересен. Он по сути показывает что вам нечего сказать по теме.
Википедии мы сами читаем. И пишут википедии не всегда умные люди.
8 окт 19, 12:23    [21989286]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
вадя,
Да там весь инет завален рекомендацией не писать просто так синглетоны. Без нужды.
8 окт 19, 12:24    [21989288]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Такой формат диалога мне не интересен.
а где диалог?
Я сказал что нарушает ООП. Вы промолчали.
Извини, архитектура это сложная штука для споров.
8 окт 19, 12:26    [21989292]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Signleton - это нож. Я говорю о нем. Об инструменте.

К ООП это не имеет отношения. Шаблоны проектирования - это сущности которые стоят на уровень
выше кастомного ООП (которое по топику замечу разное в разных ЯП).

Я прошу вас не смешивать в один замес ООП и Шаблоны.

Обобщённого ООП мы не знаем. И в этом форуме практически никогда не обсуждали.
Все вопросы ООП всегда касались ПРАКТИКИ применения ООП в Java/C++/C#
8 окт 19, 12:27    [21989293]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
рекомендацией не писать просто так синглетоны. Без нужды.
к этому я могу добавить - не писать говнокод... без нужды
8 окт 19, 12:27    [21989294]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Глобальный объект представляющий справочник валют или стран - это антипаттерн?
зачем синглетон?
— DI
- из кеша
- из сессии.
8 окт 19, 12:28    [21989295]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Signleton - это нож. Я говорю о нем. Об инструменте.
да все у нас - нож

mayton
К ООП это не имеет отношения

Инкапсуляция. Первый принцип ООП.
8 окт 19, 12:29    [21989299]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
зачем синглетон?
— DI
- из кеша
- из сессии.
пул коннектов тоже в кэш, или сессию?
8 окт 19, 12:30    [21989301]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Определение говнокода Хде?
8 окт 19, 12:30    [21989302]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
вадя
PetroNotC Sharp
зачем синглетон?
— DI
- из кеша
- из сессии.
пул коннектов тоже в кэш, или сессию?
тебе ращрешаю один раз. Написать пул синглетоном.
8 окт 19, 12:31    [21989305]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
PetroNotC Sharp
mayton
Глобальный объект представляющий справочник валют или стран - это антипаттерн?
зачем синглетон?
— DI
- из кеша
- из сессии.

Офигеть! Вы серъезно?

Вы сейчас теорему Пифагора доказываете через теорему Косинусов?
8 окт 19, 12:31    [21989306]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
mayton
Определение говнокода Картинка с другого сайта. Хде?
супер!!! поддерживаю!!!
8 окт 19, 12:32    [21989308]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton,
В этом топике выше показали что синглетон не нужен. Не читал?
8 окт 19, 12:32    [21989309]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
тебе ращрешаю один раз. Написать пул синглетоном.
я тебе показывал , работает с этим одиночной
8 окт 19, 12:33    [21989310]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Определение говнокода Картинка с другого сайта. Хде?
и антипаттерна)
8 окт 19, 12:33    [21989311]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
вадя,
Не видел.
8 окт 19, 12:34    [21989312]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
PetroNotC Sharp
вадя,
Не видел.
а он есть...
8 окт 19, 12:34    [21989313]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton,
А чего ты ополчился против Вики? Там все разжевано.
Про микросервисы спорить интереснее чем про синглетоны.
8 окт 19, 12:35    [21989314]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16729
[азве не quote PetroNotC Sharp]Не видел.[/quote]ты разве не заходил по адресу красного боба?
8 окт 19, 12:35    [21989315]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
вадя
PetroNotC Sharp
вадя,
Не видел.
а он есть...
))
8 окт 19, 12:36    [21989316]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
PetroNotC Sharp
mayton
Определение говнокода Картинка с другого сайта. Хде?
и антипаттерна)

Тогда и спора нет. Закончим на этом?
8 окт 19, 12:40    [21989321]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton,
Конечно.
Глупо доказывать что синглетон нужен, если все выше вместе с автором нашли решение без него.
8 окт 19, 12:46    [21989332]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Да ради бога. Я што навязывать буду? Доказывайте Пифагора ...
8 окт 19, 13:00    [21989351]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
Не понял как синглтон нарушает инкапсуляцию?
Хотя согласен что синглтону место на свалке. Объект должен быть доступен там, где используется, а не глобально.
8 окт 19, 13:05    [21989359]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
забыл ник
Не понял как синглтон нарушает инкапсуляцию?
его нельзя изолировать в куске какого то кода.
Всегда сосед через другую точку зайдет и разрушит инкапсуляцию изолированность.
Поэтому и тесты не работают.
забыл ник
Хотя согласен что синглтону место на свалке. Объект должен быть доступен там, где используется, а не глобально.
да
8 окт 19, 13:20    [21989382]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
забыл ник
Member

Откуда:
Сообщений: 3024
PetroNotC Sharp
забыл ник
Не понял как синглтон нарушает инкапсуляцию?
его нельзя изолировать в куске какого то кода.
Всегда сосед через другую точку зайдет и разрушит инкапсуляцию изолированность.
Поэтому и тесты не работают.

Я тебя понял, но это не нарушение инкапсуляции и ООП, синглтоны они обычно иммутабельные, а если и мутабельные, то ничто не мешает правильно инкапсулировать стейт внутри. Правильнее было бы сказать нарушение правил видимости\скоупа. или least powerful principle
8 окт 19, 13:26    [21989389]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
забыл ник,
Как ты инкапсулируешь состояние?
По поводу ООП можно так сказать:
- нарушает принципы ООП наследование, полиморфизм и инкапсуляцию
- в SOLID нарушает что то там 3 или 4 принципа.
Про видимость конечно согласен. Это прямо на поверхности.
8 окт 19, 14:02    [21989416]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
забыл ник
PetroNotC Sharp
пропущено...
его нельзя изолировать в куске какого то кода.
Всегда сосед через другую точку зайдет и разрушит инкапсуляцию изолированность.
Поэтому и тесты не работают.

Я тебя понял, но это не нарушение инкапсуляции и ООП, синглтоны они обычно иммутабельные

Нет.
8 окт 19, 14:30    [21989456]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
PetroNotC Sharp
mayton,
Конечно.
Глупо доказывать что синглетон нужен, если все выше вместе с автором нашли решение без него.


да нужен конечно, что за бред. Тот же выделенный сервер авторизации, тоже синглетон, если разобраться (только в виде приложения).Ничего не вижу плохого в синглетонах. Т. е. кончено если их использовать не там и не так как нужно, но это про что угодно можно так сказать. И причём тут ООП? мы же не только ООП руководствуемся во время разработки, все же сложнее, мультипарадигма же, и кусочки функционального, и процедурного и декларативного подходов - все же переплетено. А инкапсуляцию синглетон тоже никак не нарушает.
9 окт 19, 11:04    [21990172]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter
Тот же выделенный сервер авторизации, тоже синглетон
вы серьезно?
9 окт 19, 11:12    [21990185]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter
все же переплетено
у меня сосед чинит телевизоры. Я когда заглядываю, тоже спрашиваю - Как? Тут так всё переплетено!
9 окт 19, 11:16    [21990198]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
PetroNotC Sharp
rabiter
Тот же выделенный сервер авторизации, тоже синглетон
вы серьезно?


конечно
9 окт 19, 11:50    [21990240]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter,
А выделенный стул под вами тоже?
Нет логики.
9 окт 19, 12:03    [21990249]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
PetroNotC Sharp
rabiter,
А выделенный стул под вами тоже?
Нет логики.


нет, стульев много. т. е. иного инстансев стульев - захотел на один сел, захотел на другой.
да есть логика, просто вы почему-то не видите. просто видимо вы в узком смысле понимаете синглетон, а я в более широком смысле говорю.
9 окт 19, 12:11    [21990258]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Тема - троллинг по сути. Чего вы добиваетесь. Вы говорите не юзайте синглтон - юзайте фреймфорки с DI.

Офуеть бл..ть выбор. Это выбор капитализма. Зачем тебе курица когда есть Биг-Мак?

Да и вообще если ты решил создать куриную ферму - тебя оштарфуют за био-тероризм. Не выращивай курей! Ведь у тебя есть бигмак!
9 окт 19, 12:11    [21990259]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Вы говорите не юзайте синглтон - юзайте фреймфорки с DI
вы топик не читали?
Я говорю что синглетон нужно юзать в последнюю очередь. Когда других средств нет.
Выше мемберы нашли средства без синглетона.
Вам поименно назвать мемберов?
9 окт 19, 12:16    [21990263]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
mayton
Тема - троллинг по сути. Чего вы добиваетесь. Вы говорите не юзайте синглтон - юзайте фреймфорки с DI.

Офуеть бл..ть выбор. Это выбор капитализма. Зачем тебе курица когда есть Биг-Мак?

Да и вообще если ты решил создать куриную ферму - тебя оштарфуют за био-тероризм. Не выращивай курей! Ведь у тебя есть бигмак!


да я не разводил тут троллинга, у тебя была проблема в том, что получается две копии синглетона на двух jvm, решилось тем, что я вынесу сертификацию в из синглетона в отдельный сервис, вот и все

а то, что синглетон зло - это чушь имхо
9 окт 19, 12:17    [21990264]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter,
Давай в широком.
Тогда я за широкий синглетон вне процесса приложения. Подходит?
9 окт 19, 12:18    [21990265]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter
а то, что синглетон зло - это чушь имхо
аргумент мужчины
9 окт 19, 12:19    [21990267]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter,
Он не тебе пост писал. Если чё)
9 окт 19, 12:20    [21990269]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
rabiter
mayton
Тема - троллинг по сути. Чего вы добиваетесь. Вы говорите не юзайте синглтон - юзайте фреймфорки с DI.

Офуеть бл..ть выбор. Это выбор капитализма. Зачем тебе курица когда есть Биг-Мак?

Да и вообще если ты решил создать куриную ферму - тебя оштарфуют за био-тероризм. Не выращивай курей! Ведь у тебя есть бигмак!


да я не разводил тут троллинга, у тебя была проблема в том, что получается две копии синглетона на двух jvm, решилось тем, что я вынесу сертификацию в из синглетона в отдельный сервис, вот и все

а то, что синглетон зло - это чушь имхо

Да это не к тебе месседж.
9 окт 19, 12:20    [21990270]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter
я вынесу сертификацию в из синглетона в отдельный сервис, вот и все
+1
Поддерживаю.
Топик решен.
9 окт 19, 12:22    [21990272]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
PetroNotC Sharp
rabiter
я вынесу сертификацию в из синглетона в отдельный сервис, вот и все
+1
Поддерживаю.
Топик решен.


А не узнал вас в гриме, ну нельзя же так! Вы ведь бывший Petro123? Если да, то рад вас видеть, низкий поклон!
9 окт 19, 13:30    [21990357]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
rabiter
PetroNotC Sharp
пропущено...
+1
Поддерживаю.
Топик решен.


А не узнал вас в гриме, ну нельзя же так! Вы ведь бывший Petro123? Если да, то рад вас видеть, низкий поклон!


Хотя может я ошибаюсь :/
9 окт 19, 13:49    [21990390]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
rabiter,
Поклон передал.
Он на канарах . Восстановление сил после пробы пера на шарпе.
9 окт 19, 14:02    [21990415]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Прогнали из Шарпов?
9 окт 19, 14:12    [21990428]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Прогнали из Шарпов?
в плюсах и тут 80\20 в топках код\флуд
Там наоборот. Зайди и посмотри.
9 окт 19, 14:15    [21990435]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
mayton
Member

Откуда: loopback
Сообщений: 42452
Да зачем оно мне? Яж просто спросил. Без пруфов.
9 окт 19, 14:21    [21990446]     Ответить | Цитировать Сообщить модератору
 Re: Дубликат синглетонов на разных JVM  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 2144
mayton
Да зачем оно мне? Яж просто спросил. Без пруфов.
просто я уже тебе отвечал.
9 окт 19, 14:23    [21990448]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / Java Ответить