Перейти к основному содержимому

· 9 мин. чтения

1. Обзор

В этой статье мы рассмотрим платформу Lagom и реализуем пример приложения с использованием реактивной архитектуры, управляемой микросервисами.

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

Под архитектурой, управляемой микросервисами, мы подразумевали разделение системы на границы между совместными сервисами для достижения таких целей , как изоляция , автономия , единая ответственность , мобильность и т. д . Дополнительные сведения об этих двух концепциях см . в The Reactive Manifesto и Reactive Microservices Architecture .

2. Почему Лагом?

· 10 мин. чтения

1. Обзор

Проще говоря, MBassadorэто высокопроизводительная шина событий, использующая семантику публикации-подписки .

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

2. Зависимость от Maven

· 7 мин. чтения

1. Обзор

В этом руководстве мы будем использовать Java-клиент для NAT для подключения к серверу NATS , публикации и получения сообщений.

NATS предлагает три основных режима обмена сообщениями. Семантика публикации/подписки доставляет сообщения всем подписчикам темы. Обмен сообщениями «запрос/ответ» отправляет запросы через темы и направляет ответы обратно запрашивающей стороне.

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

2. Настройка

· 5 мин. чтения

1. Обзор

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

2. Проект Ткацкий станок

Project Loom — это попытка сообщества OpenJDK представить облегченную конструкцию параллелизма в Java. Прототипы Loom до сих пор вносили изменения в JVM, а также в библиотеку Java.

Хотя для Loom еще нет запланированного выпуска, мы можем получить доступ к последним прототипам на вики Project Loom .

· 12 мин. чтения

1. Введение

В этом руководстве мы рассмотрим, как развернуть бессерверную рабочую нагрузку на платформе Kubernetes. Мы будем использовать Knative в качестве основы для выполнения этой задачи. В процессе мы также узнаем о преимуществах использования Knative в качестве фреймворка для наших бессерверных приложений .

2. Кубернетес и Кнатив

Разработка бессерверного приложения без вспомогательных инструментов — это не весело! Помните, как сочетание Docker и Kubernetes изменило управление облачными приложениями, созданными с помощью архитектуры микросервисов. Конечно, мы можем извлечь выгоду из фреймворков и инструментов и в бессерверном пространстве. Что ж, нет никаких причин, по которым Kubernetes не может нам здесь помочь.

2.1. Kubernetes для бессерверных решений

· 8 мин. чтения

1. Обзор

Quartz — это фреймворк планирования заданий с открытым исходным кодом, полностью написанный на Java и предназначенный для использования в приложениях J2SE и J2EE . Он предлагает большую гибкость без ущерба для простоты.

Вы можете создавать сложные расписания для выполнения любой работы. Например, задачи, которые выполняются ежедневно, каждую вторую пятницу в 19:30 или только в последний день каждого месяца.

В этой статье мы рассмотрим элементы для создания задания с помощью Quartz API. Для ознакомления с Spring мы рекомендуем Scheduling in Spring with Quartz .

2. Зависимости Maven

· 5 мин. чтения

1. Обзор

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

В этом руководстве мы подробнее обсудим, как использовать Google Guice с Ratpack в качестве механизма управления зависимостями.

2. Почему Google Guice?

Google Guice — это программная среда с открытым исходным кодом для платформы Java , выпущенная Google по лицензии Apache .

· 8 мин. чтения

1. Введение

Проще говоря, в шаблоне проектирования Front Controller один контроллер отвечает за направление входящих запросов HttpRequest ко всем другим контроллерам и обработчикам приложения . ** **

DispatcherServlet Spring реализует этот шаблон и, следовательно, отвечает за правильную координацию HttpRequests с их правыми обработчиками.

В этой статье мы рассмотрим рабочий процесс обработки запросов Spring DispatcherServlet и способы реализации нескольких интерфейсов, участвующих в этом рабочем процессе.

2. Обработка запроса DispatcherServlet

· 3 мин. чтения

1. Обзор

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

В этом руководстве мы увидим, как отменить изменения в нашем рабочем каталоге, которых нет в файле index.

2. Анализ состояния рабочего каталога

В нашем примере предположим, что мы разветвили и клонировали репозиторий Git , а затем внесли некоторые изменения в наш рабочий каталог.

· 5 мин. чтения

1. Обзор

Работая с Hibernate, мы могли столкнуться с ошибкой, которая гласит: org.hibernate.LazyInitializationException: не удалось инициализировать прокси — нет сеанса .

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

2. Понимание ошибки

Доступ к лениво загруженному объекту вне контекста открытого сеанса Hibernate приведет к этому исключению.