Size: a a a

2020 September 20

R

Ruslan in pro.jvm
Глубокомысленно
источник

V

Vadim in pro.jvm
вот уже столкнулся, пытался descendingMap вернуть, а он у реализации TreeMap,  у Map нету. пришлось переопределить как TreeMap
источник

SA

Sergey Alaev in pro.jvm
Ruslan
Когда сваггер к проекту подключаешь, у него сразу в библиотеках статика есть
Так это SPA приложение, которому нужно откуда-то скачать swagger.json.
А у меня проблема заранее определить, под каким префиксом он будет развернут
источник

R

Ruslan in pro.jvm
А зачем?
источник

SA

Sergey Alaev in pro.jvm
Ruslan
А зачем?
Зачем что?
источник

R

Ruslan in pro.jvm
Зачем заранее определять префикс? Зачем генерить HTML? Возникают подозрения про велосипеды. Зачем отходить от готовых решений?
источник

КВ

Кирилл Веревкин... in pro.jvm
Добрый вечер.
Кто может подсказать по многопоточке? Вопрос скорее всего глупый, но пока понимание многопоточки слабое.
Суть вопроса:
Есть внешняя кафка, в которой приложение является потребителем. Работа с кафкой реализована с помощью spring-kafka - настроен ConcurrentKafkaListenerContainerFactory и считывание идет в несколько потоков. Обработка сообщений реализована как выдача задания TaskExecutor. В методе execute просто вызывается обработчик сообщения вида:
taskExecutor.execute(() -> MessageHandler.handle(message))

При этом сам MessageHandler внедряется с помощью Autowire как singleton bean. Внутри MessageHandler идет сугубо запись в базу или проверка на то, что сообщение уже в базе есть (такое может быть).

Собственно вопрос:
Не будет ли проблем из за многопоточной обработки внутри singleton бина? Т.е. могут ли быть проблемы от того, что вызывается в несколько потоков один и тот же метод объекта? Или здесь могут быть проблемы сугубо в области синхронизации потоков (ну что-то вроде изменение значения свойства класса в разных потоках).

Понятно, что при обработке сообщений могут быть ожидания на записи/чтении из базы данных, но это в целом другая проблема и ее не рассматриваю сейчас :)
источник

DP

Denis Pavlyuchenko in pro.jvm
Кирилл Веревкин
Добрый вечер.
Кто может подсказать по многопоточке? Вопрос скорее всего глупый, но пока понимание многопоточки слабое.
Суть вопроса:
Есть внешняя кафка, в которой приложение является потребителем. Работа с кафкой реализована с помощью spring-kafka - настроен ConcurrentKafkaListenerContainerFactory и считывание идет в несколько потоков. Обработка сообщений реализована как выдача задания TaskExecutor. В методе execute просто вызывается обработчик сообщения вида:
taskExecutor.execute(() -> MessageHandler.handle(message))

При этом сам MessageHandler внедряется с помощью Autowire как singleton bean. Внутри MessageHandler идет сугубо запись в базу или проверка на то, что сообщение уже в базе есть (такое может быть).

Собственно вопрос:
Не будет ли проблем из за многопоточной обработки внутри singleton бина? Т.е. могут ли быть проблемы от того, что вызывается в несколько потоков один и тот же метод объекта? Или здесь могут быть проблемы сугубо в области синхронизации потоков (ну что-то вроде изменение значения свойства класса в разных потоках).

Понятно, что при обработке сообщений могут быть ожидания на записи/чтении из базы данных, но это в целом другая проблема и ее не рассматриваю сейчас :)
без полного кода точно сказать ничего не могу про проблемы с многопоточностью, но в этой реализации вы можете изменить порядок обработки сообщений в рамках разных партиций (скорей всего, вам этот порядок и не нужен, так как обычно порядок нужен только в рамках одной партиции, но вдруг)
источник

AN

Alpha Nerd in pro.jvm
Кирилл Веревкин
Добрый вечер.
Кто может подсказать по многопоточке? Вопрос скорее всего глупый, но пока понимание многопоточки слабое.
Суть вопроса:
Есть внешняя кафка, в которой приложение является потребителем. Работа с кафкой реализована с помощью spring-kafka - настроен ConcurrentKafkaListenerContainerFactory и считывание идет в несколько потоков. Обработка сообщений реализована как выдача задания TaskExecutor. В методе execute просто вызывается обработчик сообщения вида:
taskExecutor.execute(() -> MessageHandler.handle(message))

При этом сам MessageHandler внедряется с помощью Autowire как singleton bean. Внутри MessageHandler идет сугубо запись в базу или проверка на то, что сообщение уже в базе есть (такое может быть).

Собственно вопрос:
Не будет ли проблем из за многопоточной обработки внутри singleton бина? Т.е. могут ли быть проблемы от того, что вызывается в несколько потоков один и тот же метод объекта? Или здесь могут быть проблемы сугубо в области синхронизации потоков (ну что-то вроде изменение значения свойства класса в разных потоках).

Понятно, что при обработке сообщений могут быть ожидания на записи/чтении из базы данных, но это в целом другая проблема и ее не рассматриваю сейчас :)
Если совсем с дивана рассуждать, то всё зависит от реализации этого самого синглтона. Можно поймать много проблем, начиная с видимости данных и заканчивая проседанием производительности.
источник

PS

Pavel Senin in pro.jvm
Кирилл Веревкин
Добрый вечер.
Кто может подсказать по многопоточке? Вопрос скорее всего глупый, но пока понимание многопоточки слабое.
Суть вопроса:
Есть внешняя кафка, в которой приложение является потребителем. Работа с кафкой реализована с помощью spring-kafka - настроен ConcurrentKafkaListenerContainerFactory и считывание идет в несколько потоков. Обработка сообщений реализована как выдача задания TaskExecutor. В методе execute просто вызывается обработчик сообщения вида:
taskExecutor.execute(() -> MessageHandler.handle(message))

При этом сам MessageHandler внедряется с помощью Autowire как singleton bean. Внутри MessageHandler идет сугубо запись в базу или проверка на то, что сообщение уже в базе есть (такое может быть).

Собственно вопрос:
Не будет ли проблем из за многопоточной обработки внутри singleton бина? Т.е. могут ли быть проблемы от того, что вызывается в несколько потоков один и тот же метод объекта? Или здесь могут быть проблемы сугубо в области синхронизации потоков (ну что-то вроде изменение значения свойства класса в разных потоках).

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

http://dolszewski.com/spring/spring-bean-thread-safety-guide/
The bean is stateless if execution of its methods doesn’t modify its instance fields. Changing local variables inside a method is totally fine because each call to a method allocates the memory for these variables. Unlike instance fields which are shared between all non-static methods.
источник
2020 September 21

I

Illia in pro.jvm
Ребята, привет. Тут вообщем такой вопрос... Может у кого-то была необходимости слушать RSocket из Спринга в питоне (django)? Вопрос в том, насколько это вообще применимо? Официально там одна либа. Но она не документирована и стремновата, но если кто-то использовал и выходило нормально, то поделитесь впечатлениями плз))
источник

QH

Quantum Harmonizer in pro.jvm
источник

QH

Quantum Harmonizer in pro.jvm
Illia
Ребята, привет. Тут вообщем такой вопрос... Может у кого-то была необходимости слушать RSocket из Спринга в питоне (django)? Вопрос в том, насколько это вообще применимо? Официально там одна либа. Но она не документирована и стремновата, но если кто-то использовал и выходило нормально, то поделитесь впечатлениями плз))
Так из Спринга или в Питоне? Если второй вариант, то как это попало в этот чат?
источник

I

Illia in pro.jvm
Quantum Harmonizer
Так из Спринга или в Питоне? Если второй вариант, то как это попало в этот чат?
Есть два микросервиса. Один на питоне, другой на Спринге. Нужна коммуникация через RSocket (channel). Вот и спросил, может у кого-то была подобная ситуация, хотя понимаю, что она довольно специфическая
источник

DP

Denis Pavlyuchenko in pro.jvm
Illia
Есть два микросервиса. Один на питоне, другой на Спринге. Нужна коммуникация через RSocket (channel). Вот и спросил, может у кого-то была подобная ситуация, хотя понимаю, что она довольно специфическая
вероятно, ничего не выйдет с этой затеей, и придется либо уходить в сторону grpc, либо написать прокси микросервис на джаве, который выставит наружу своё API на чистом вебсокете или чем-то еще
источник

AL

Andrii Litovchenko in pro.jvm
Как-то не похожа эта толпа на джавистов
источник

T

Tim Ami in pro.jvm
Добрый день
источник

T

Tim Ami in pro.jvm
Скажите, в серьезном проекте removeif по результату стрима NoneMatch склеиваемой строки - это вообще нормально?
источник

T

Tagir in pro.jvm
@Arbadak полный кусок кода, пожалуйста
источник

T

Tagir in pro.jvm
Звучит как почему бы и нет
источник