Zeebe и Camunda: сравниваем известные BPM-системы под высокими нагрузками
Всем привет! Меня зовут Николай Первухин, я Senior Java Developer в Райффайзенбанке. В последнее время я активно занимаюсь BPM-системами Camunda и Zeebe (основа Camunda-cloud). Если вы, как и я, с ходу не можете ответить на вопрос, кто быстрее — Camunda или Zeebe, насколько, и в каких случаях они могут тормозить, — то вам будет очень интересно прочитать эту статью.
Читать статью
Всем привет! Меня зовут Николай Первухин, я Senior Java Developer в Райффайзенбанке. В последнее время я активно занимаюсь BPM-системами Camunda и Zeebe (основа Camunda-cloud). Если вы, как и я, с ходу не можете ответить на вопрос, кто быстрее — Camunda или Zeebe, насколько, и в каких случаях они могут тормозить, — то вам будет очень интересно прочитать эту статью.
Читать статью
Повышаем производительность файлового I/O в JVM на Linux
Все, кто хоть раз касался разработки I/O интенсивных приложений, наверное, задумывался о повышении их производительности. Особенно когда у проекта много внешних хранилищ и они находятся по всему миру. Давайте разберем какие есть инструменты с их плюсами и минусами, и как их лучше использовать на примере конкретного проекта, в котором принимал участие Дмитрий Бундин, старший Big Data-разработчик в Grid Dynamics.
Читать статью
Все, кто хоть раз касался разработки I/O интенсивных приложений, наверное, задумывался о повышении их производительности. Особенно когда у проекта много внешних хранилищ и они находятся по всему миру. Давайте разберем какие есть инструменты с их плюсами и минусами, и как их лучше использовать на примере конкретного проекта, в котором принимал участие Дмитрий Бундин, старший Big Data-разработчик в Grid Dynamics.
Читать статью
Java News Roundup: Updates on Log4Shell, Spring Framework 6.0-M1, WildFly 26
This week's Java roundup for December 13th, 2021, features news from JDK 19, updates on the Log4Shell vulnerability, vendor statements on Log4Shell related to their products, point releases on various Spring-related projects and Hibernate, WildFly 26, Payara Platform, Quarkus 2.5.3.Final, Apache Camel 3.14.0, Piranha 21.11.0, and Apache Tika 2.2.0.
Читать статью
This week's Java roundup for December 13th, 2021, features news from JDK 19, updates on the Log4Shell vulnerability, vendor statements on Log4Shell related to their products, point releases on various Spring-related projects and Hibernate, WildFly 26, Payara Platform, Quarkus 2.5.3.Final, Apache Camel 3.14.0, Piranha 21.11.0, and Apache Tika 2.2.0.
Читать статью
InfoQ
Java News Roundup: Updates on Log4Shell, Spring Framework 6.0-M1, WildFly 26
This week's Java roundup for December 13th, 2021, features news from JDK 19, updates on the Log4Shell vulnerability, vendor statements on Log4Shell related to their products, point releases on various Spring-related projects and Hibernate, WildFly 26, Payara…
Утечка памяти: цена одной маленькой ошибки
Всем привет, меня зовут Алена Коваленко, я Java-разработчица одной из команд направления Warehouse Management System (WMS) компании Lamoda. Наша команда занимается автоматизацией складской системы и реализацией новых фич для улучшения работы сотрудников склада. В том числе мы занимаемся техническими улучшениями системы, такими как вынесение из монолита функциональности, связанной с идентификацией товара и приемкой возвратов, в отдельный сервис — Inbound Service.
После релиза Inbound Service на проде склад заметил долгий отклик системы. В процессе исследования проблемы мы обнаружили утечку памяти, связанную с конфигурацией приложения, в том числе внутренних очередей в ActiveMQ Artemis.
В этой статье я расскажу, как мы вовремя заметили проблему и смогли ее пофиксить, предотвратив падение сервиса и дальнейшие неблагоприятные для склада последствия.
Читать статью
Всем привет, меня зовут Алена Коваленко, я Java-разработчица одной из команд направления Warehouse Management System (WMS) компании Lamoda. Наша команда занимается автоматизацией складской системы и реализацией новых фич для улучшения работы сотрудников склада. В том числе мы занимаемся техническими улучшениями системы, такими как вынесение из монолита функциональности, связанной с идентификацией товара и приемкой возвратов, в отдельный сервис — Inbound Service.
После релиза Inbound Service на проде склад заметил долгий отклик системы. В процессе исследования проблемы мы обнаружили утечку памяти, связанную с конфигурацией приложения, в том числе внутренних очередей в ActiveMQ Artemis.
В этой статье я расскажу, как мы вовремя заметили проблему и смогли ее пофиксить, предотвратив падение сервиса и дальнейшие неблагоприятные для склада последствия.
Читать статью
JetBrains Releases IntelliJ IDEA 2021.3 with New Remote Development Feature
With this release, IntelliJ offers remote development as a beta feature. The feature may be used from the IntelliJ IDEA Welcome screen, or alternatively by downloading the JetBrains Gateway via the Toolbox App. After installing an IDE backend and using a project on a remote machine, the experience is the same as working on a local machine.
Читать статью
With this release, IntelliJ offers remote development as a beta feature. The feature may be used from the IntelliJ IDEA Welcome screen, or alternatively by downloading the JetBrains Gateway via the Toolbox App. After installing an IDE backend and using a project on a remote machine, the experience is the same as working on a local machine.
Читать статью
Создание нативных CLI приложений на Java с помощью Graalvm и Picocli
Ключевые выводы
Разработчики хотят распространять свои приложения командной строки как отдельный исполняемый файл.
GraalVM может компилировать ваши Java-приложения в нативные образы в машинном коде, но имеет некоторые ограничения.
Picocli - это библиотека для написания приложений CLI на JVM, которая может помочь преодолеть ограничения GraalVM, в том числе в Windows.
Настройка набора инструментов GraalVM для создания нативных образов в Windows плохо документирована.
Читать статью
Ключевые выводы
Разработчики хотят распространять свои приложения командной строки как отдельный исполняемый файл.
GraalVM может компилировать ваши Java-приложения в нативные образы в машинном коде, но имеет некоторые ограничения.
Picocli - это библиотека для написания приложений CLI на JVM, которая может помочь преодолеть ограничения GraalVM, в том числе в Windows.
Настройка набора инструментов GraalVM для создания нативных образов в Windows плохо документирована.
Читать статью
Разбираем Log4j уязвимость в деталях… с примерами и кодом
Думаю все слышали про критическую уязвимость в Log4j, которая существует уже не один десяток лет, но была обнаружена совсем недавно. В итоге ей присвоили самый высокий критический статус CVE-2021-44228 и многие компании, включая Microsoft, Amazon и IBM признали, что некоторые их сервисы подвержены этой уязвимости. Ее суть в том, что Log4j позволяет выполнить любой вредоносный код на сервере при помощи Java Naming and Directory Interface (JNDI). Хотя последние 2 года Java я использую крайне редко, мне все равно стало интересно разобраться с проблемой более детально.
Читать статью
Думаю все слышали про критическую уязвимость в Log4j, которая существует уже не один десяток лет, но была обнаружена совсем недавно. В итоге ей присвоили самый высокий критический статус CVE-2021-44228 и многие компании, включая Microsoft, Amazon и IBM признали, что некоторые их сервисы подвержены этой уязвимости. Ее суть в том, что Log4j позволяет выполнить любой вредоносный код на сервере при помощи Java Naming and Directory Interface (JNDI). Хотя последние 2 года Java я использую крайне редко, мне все равно стало интересно разобраться с проблемой более детально.
Читать статью
👍1
MicroStream 6.0 Supports JDK 17, Spring Boot and Helidon
MicroStream, the JVM data storage engine providing in-memory storage to fully or partially persist and restore Java object graphs, has released version 6.0 featuring added support for Java 17, Spring Boot integration, Deep-copy utility and the elimination of various bugs.
Читать статью
MicroStream, the JVM data storage engine providing in-memory storage to fully or partially persist and restore Java object graphs, has released version 6.0 featuring added support for Java 17, Spring Boot integration, Deep-copy utility and the elimination of various bugs.
Читать статью
Создание Native Images со Spring Native и GraalVM
В этой статье я хочу исследовать возможности технологии Java Native Image, поделиться опытом взаимодействия с ней и со средствами Spring для генерации нативных образов.
Читать статью
В этой статье я хочу исследовать возможности технологии Java Native Image, поделиться опытом взаимодействия с ней и со средствами Spring для генерации нативных образов.
Читать статью
👍5🔥2🤩1
Тестирование GraphQL: подходы, инструменты, автоматизация
Несколько месяцев назад на моем пути возник GraphQL.
Это произошло, когда я присоединилась к одному из наших проектов, где был не только привычный REST, но и GraphQL API. Это было моё первое знакомство с ним. Я понятия не имела, что он собой представляет, в чем его особенности, а самое главное для меня, как QA инженера – не знала, как его тестировать.
Ниже я расскажу, что делала я, с какими проблемами сталкивалась, с чего можно начать и что важного и особенного надо знать про GraphQL для успешного тестирования как руками, так и с помощью автотестов. Вполне вероятно, что это поможет и вам разобраться в данном вопросе.
Читать статью
Несколько месяцев назад на моем пути возник GraphQL.
Это произошло, когда я присоединилась к одному из наших проектов, где был не только привычный REST, но и GraphQL API. Это было моё первое знакомство с ним. Я понятия не имела, что он собой представляет, в чем его особенности, а самое главное для меня, как QA инженера – не знала, как его тестировать.
Ниже я расскажу, что делала я, с какими проблемами сталкивалась, с чего можно начать и что важного и особенного надо знать про GraphQL для успешного тестирования как руками, так и с помощью автотестов. Вполне вероятно, что это поможет и вам разобраться в данном вопросе.
Читать статью
👍5
LJV: Чему нас может научить визуализация структур данных в Java
Эта статья является пересказом моего доклада на Java-конференции SnowOne 2021 года. LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе я запускаю LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбираю, что там внутри, как оно менялось от версии к версии, и как это всё работает.
Читать статью
Эта статья является пересказом моего доклада на Java-конференции SnowOne 2021 года. LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе я запускаю LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбираю, что там внутри, как оно менялось от версии к версии, и как это всё работает.
Читать статью
👍4🔥2🤩1
Реализация двухфакторной аутентификации с помощью Spring Security
В статье рассматривается использование двухфакторной аутентификации (когда клиент должен предоставить дополнительный токен безопасности помимо учетных данных) с помощью Spring Security. Хоть в Spring и нет встроенной двухфакторной аутентификации, эту функциональность легко добавить.
Читать статью
В статье рассматривается использование двухфакторной аутентификации (когда клиент должен предоставить дополнительный токен безопасности помимо учетных данных) с помощью Spring Security. Хоть в Spring и нет встроенной двухфакторной аутентификации, эту функциональность легко добавить.
Читать статью
👍5🔥5
«Невозможный» параллельный алгоритм неотрицательной суммы
Рецепт параллельных вычислений Fork/Join или Map/Reduce:
- разбить задачу на куски;
- посчитать куски по-отдельности;
- склеить вместе.
Неотрицательная сумма (a, b) -> max(0, a + b) неассоциативна и результат зависит от порядка склейки. Она сломает Fork/Join и результат будет некорректен. Магией моноида починить на Java, SQL и Haskell за 5 минут, но
Читать статью
Рецепт параллельных вычислений Fork/Join или Map/Reduce:
- разбить задачу на куски;
- посчитать куски по-отдельности;
- склеить вместе.
Неотрицательная сумма (a, b) -> max(0, a + b) неассоциативна и результат зависит от порядка склейки. Она сломает Fork/Join и результат будет некорректен. Магией моноида починить на Java, SQL и Haskell за 5 минут, но
Читать статью
👍7
Java: делаем Valhalla сами
В Java каждый объект - это заголовок и данные. В случае 64 битной машины заголовок равен 16 байтам. Также Java использует выравнивание объектов в памяти по 8 байт, следовательно размер объекта кратен 8 байтам. Поэтому обёртки примитивных типов такие как Integer, Double занимают по 24 байта, что весьма затратно для примитивных типов.
Читать статью
В Java каждый объект - это заголовок и данные. В случае 64 битной машины заголовок равен 16 байтам. Также Java использует выравнивание объектов в памяти по 8 байт, следовательно размер объекта кратен 8 байтам. Поэтому обёртки примитивных типов такие как Integer, Double занимают по 24 байта, что весьма затратно для примитивных типов.
Читать статью
🔥6👍2🤩1
Java News Roundup: State of Project Valhalla by Brian Goetz, GlassFish 7.0-M1 and Project Loom Lab
It was very quiet for the week of December 27th, 2021, but InfoQ found a few news items of interest that include: the "State of Project Valhalla," a three-part blog series written by Brian Goetz; GlassFish 7.0.0-M1; Project Loom Lab, a new project created by Nicolai Parlog; an update of the Jakarta EE Tutorial to Jakarta EE 9.1; Apache Camel 3.11.5; and JDKMon 17.0.21.
Читать статью
It was very quiet for the week of December 27th, 2021, but InfoQ found a few news items of interest that include: the "State of Project Valhalla," a three-part blog series written by Brian Goetz; GlassFish 7.0.0-M1; Project Loom Lab, a new project created by Nicolai Parlog; an update of the Jakarta EE Tutorial to Jakarta EE 9.1; Apache Camel 3.11.5; and JDKMon 17.0.21.
Читать статью
👍3🔥2
Распознаем фигуры по массиву точек: эллипсы и не выпуклые фигуры
Данная статья является продолжением предыдущей статьи о распознавании простых многоугольников по нарисованной линии. В данной части будут рассмотрены алгоритмы распознавания эллипсов и алгоритм распознавания невыпуклых многоугольников.
Читать статью
Данная статья является продолжением предыдущей статьи о распознавании простых многоугольников по нарисованной линии. В данной части будут рассмотрены алгоритмы распознавания эллипсов и алгоритм распознавания невыпуклых многоугольников.
Читать статью
👍5
Проектируем приложение с Redis в качестве хранилища данных. Что? Зачем?
Всем привет! Многие знают что такое Redis, а если вы не знаете, то официальный сайт может ввести вас в курс дела. Большинство знают Redis как кэш и иногда как очередь сообщений. Но что если немножко сойти с ума и попытаться спроектировать целое приложение, используя в качестве хранилища данных только лишь Redis? Какие задачи можно решить с использованием Redis'а?
В этой статье мы и попытаемся ответить на эти вопросы.
Не переключайтесь.
Читать статью
Всем привет! Многие знают что такое Redis, а если вы не знаете, то официальный сайт может ввести вас в курс дела. Большинство знают Redis как кэш и иногда как очередь сообщений. Но что если немножко сойти с ума и попытаться спроектировать целое приложение, используя в качестве хранилища данных только лишь Redis? Какие задачи можно решить с использованием Redis'а?
В этой статье мы и попытаемся ответить на эти вопросы.
Не переключайтесь.
Читать статью
👍6
Дыра в безопасности, похожая на Log4Shell, обнаружена в популярном Java SQL движке базы данных H2
«Это Log4Shell, Джим, но не в том виде, в каком мы его знаем» — так никогда не говорил Commander Spock.
Это краткий обзор ошибки CVE-2021-42392, дыры в системе безопасности, о которой недавно сообщили исследователи из компании по управлению цепочками поставок программного обеспечения Jfrog.
Читать статью
«Это Log4Shell, Джим, но не в том виде, в каком мы его знаем» — так никогда не говорил Commander Spock.
Это краткий обзор ошибки CVE-2021-42392, дыры в системе безопасности, о которой недавно сообщили исследователи из компании по управлению цепочками поставок программного обеспечения Jfrog.
Читать статью
👍4
Java News Roundup: JDK 18, JDK 19, Groovy DSL for Spring Integration, JHipster, Micronaut Foundation
It was another relatively quiet week for the January 3rd, 2022 edition of the Java news roundup featuring build updates to JDK 18 and JDK 19, VMware publishing CVE-2021-22060 as a follow up to CVE-2021-22096, a new Groovy DSL for Spring Integration, Helidon 2.4.1, Hibernate Search versions 6.0.8 and 6.1.0.Beta2, JHipster 7.5.0, JReleaser 0.10.0 and Gradle having joined the Micronaut Foundation.
Читать статью
It was another relatively quiet week for the January 3rd, 2022 edition of the Java news roundup featuring build updates to JDK 18 and JDK 19, VMware publishing CVE-2021-22060 as a follow up to CVE-2021-22096, a new Groovy DSL for Spring Integration, Helidon 2.4.1, Hibernate Search versions 6.0.8 and 6.1.0.Beta2, JHipster 7.5.0, JReleaser 0.10.0 and Gradle having joined the Micronaut Foundation.
Читать статью
InfoQ
Java News Roundup: JDK 18, JDK 19, Groovy DSL for Spring Integration, JHipster, Micronaut Foundation
It was another relatively quiet week for the January 3rd, 2022 edition of the Java news roundup featuring build updates to JDK 18 and JDK 19, VMware publishing CVE-2021-22060 as a follow up to CVE-2021-22096, a new Groovy DSL for Spring Integration, Helidon…
👍5🔥2
Тысячная статья про принципы SOLID
Ещё будучи совсем-совсем начинающим разработчиком, я услышал про принципы SOLID и, конечно же, совершенно их не понял. Их не помогли понять ни лекции Дядюшки Боба, ни книга его же авторства, не несколько десятков (а то и сотен) статей в интернете, которые я тогда прочитал (по какой-то причине мне эти принципы казались чем-то очень важным, прямо-таки фундаментальным). Сейчас я могу сказать, что понимаю их как-то, по-своему, и пользуюсь ими каждый день. В данной короткой статье хочу поделиться своими размышлениями о сути принципов, которые были бы понятны тому мне из прошлого, который пытался загуглить доступное объяснение этих принципов.
Читать статью
Ещё будучи совсем-совсем начинающим разработчиком, я услышал про принципы SOLID и, конечно же, совершенно их не понял. Их не помогли понять ни лекции Дядюшки Боба, ни книга его же авторства, не несколько десятков (а то и сотен) статей в интернете, которые я тогда прочитал (по какой-то причине мне эти принципы казались чем-то очень важным, прямо-таки фундаментальным). Сейчас я могу сказать, что понимаю их как-то, по-своему, и пользуюсь ими каждый день. В данной короткой статье хочу поделиться своими размышлениями о сути принципов, которые были бы понятны тому мне из прошлого, который пытался загуглить доступное объяснение этих принципов.
Читать статью
👍8
Полезные и неизвестные возможности Java
В этой статье вы узнаете о некоторых полезных функциях Java, о которых вы, вероятно, не слышали.
Это мой личный список функций, использованных мной недавно или с которыми я столкнулся при чтении статей о Java.
Читать статью
В этой статье вы узнаете о некоторых полезных функциях Java, о которых вы, вероятно, не слышали.
Это мой личный список функций, использованных мной недавно или с которыми я столкнулся при чтении статей о Java.
Читать статью
👍7