Быстрая, легкая и облачная платформа микросервисов.
Переполнение стека | Группа Google | Гиттер Чат | Субреддит | Ютуб-канал | Документация | Руководство по вкладу |
«Легкий» означает легкий, молниеносный и проливающий свет на то, как программировать на современной Java SE для развертывания в облаке.
Я работал над платформами Java EE с начала 2000 года и страдал от проблем с производительностью и производительностью. В 2014 году я понял, что ИТ-индустрия переходит от монолитного подхода к микросервисам и от локальных центров обработки данных к публичным облакам.
Чтобы снизить стоимость производства моих приложений, мне нужно найти легкую платформу с небольшим объемом памяти, высокой пропускной способностью и низкой задержкой в Java. Java EE и Spring/Spring Boot слишком тяжелы, чтобы их можно было рассматривать. У всех других облегченных платформ Java есть разные проблемы с разделением бизнес-логики и технических сквозных задач. Более того, они не являются облачными и не предназначены для контейнеров/облаков.
Не найдя ничего подходящего, я начал строить свою платформу с открытым исходным кодом Light-4j поверх HTTP-ядра Undertow, следуя принципам. Поскольку мой подход очень радикален и направлен против продуктов крупных корпораций, я постоянно подвергаюсь нападкам со стороны некоторых организаций онлайн и оффлайн. Тем не менее, я настолько убежден, что мой подход — это будущее направление, и трачу все свои усилия на продолжение развития. Сегодня многие компании используют Light-4j в производстве и имеют очень положительные отзывы. Это также побуждает меня посвятить себя разработке и расширению платформы для построения экосистемы.
Пользователи, которые получают выгоду от платформы, могут стать моим спонсором, чтобы я мог приложить все свои усилия к проектам с открытым исходным кодом.
Он в 44 раза быстрее, чем самая популярная микросервисная платформа Spring Boot со встроенным Tomcat и использует только 1/5 памяти. Вот результаты тестов по сравнению со Spring Boot и другими платформами микросервисов. Вот стороннее сравнение с другими веб-фреймворками.
Разработайте спецификацию OpenAPI и сгенерируйте на ее основе сервис. Спецификация также является частью платформы для обеспечения проверки безопасности и проверки запросов во время выполнения.
Заглушки модульных/сквозных тестов создаются для обеспечения подхода, основанного на тестировании, для обеспечения качества продукта.
Отладка в среде IDE, как в автономном приложении, для повышения продуктивности разработчиков.
Файлы поддержки Dockerfile и DevOps создаются для поддержки докеризации и непрерывной интеграции в производство.
Все фреймворки с открытым исходным кодом построены на Java, и мы внутри компании работаем над фреймворком Nodejs. В будущем мы также можем предоставить платформу Golang, и все они используют одну и ту же экосистему и рынок.
Сервер OAuth2 для обеспечения безопасности и портал для мониторинга и управления производством. Портал также является торговой площадкой для объединения клиентов и услуг.
Есть два способа начать свой проект:
Вы можете использовать Light-codegen для создания рабочего проекта. В настоящее время он поддерживает Light-rest-4j, Light-graphql-4j, Light-Hybrid-Server-4j и Light-Hybrid-Service-4J. Скоро появится генератор кода световых событий.
Проект Light-codegen README.md описывает четыре способа использования генератора с примерами.
Другой способ начать проект — скопировать файл из Light-example-4j.
Вы можете найти описание этих примеров
Также есть несколько обучающих программ
Для запуска/отладки из IDE вам необходимо настроить приложение Java с основным классом «com.networknt.server.Server», а рабочим каталогом является папка вашего проекта. Контейнера нет, и вы работаете только над автономным Java-приложением.
создайте приложение Java, основной класс которого — com.networknt.server.Server, а рабочий каталог — корневая папка вашего проекта. Вы можете отлаживать свой сервер так же, как приложение POJO.
mvn exec:exec
java -jar target/demo-0.1.0.jar
вы можете использовать Ctrl+C, чтобы убить сервер, но для производства используйте следующую команду
kill -s TERM <pid>
На сервере есть функция выключения, и приведенная выше команда позволяет его очистить. Например, выполните текущие запросы и закройте соединения с базой данных и т. д. Если используется реестр служб и обнаружение, сервер отправит событие завершения работы в реестр служб и продолжит обработку запросов в течение 30 секунд, пока все клиенты не обновят свой локальный кеш перед выключением. .
Light-4j и все платформы Light-*-4j доступны по лицензии Apache 2.0. Дополнительную информацию смотрите в файле ЛИЦЕНЗИИ.