1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-SOFABoot

Клонировать/Скачать
README_ZH.md 21 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 22.06.2025 08:50 44f1040

SOFABoot

Сборка и тестирование Статус покрытия лицензия Среднее время решения проблемы Процент открытых проблем maven

SOFABoot — это открытый фреймворк для разработки, созданный Ant Financial, основанный на Spring Boot. Он предоставляет такие возможности, как проверка готовности (Readiness Check), изоляция контекста, классов и логов, что позволяет расширить функциональность Spring Boot. В то же время, SOFABoot обеспечивает удобное использование SOFA middleware в рамках приложений Spring Boot.

1. ОбзорSpring Boot — это отличный открытый фреймворк для создания приложений на основе Spring. Однако, даже используя его, могут возникнуть некоторые проблемы: Spring Boot предоставляет базовые возможности для проведения проверок здоровья, которые могут быть расширены промежуточными слоями и приложениями для реализации собственной логики проверки. Однако, проверки здоровья в Spring Boot имеют только возможность проверки живости (Liveness Check), но отсутствует возможность проверки готовности (Readiness Check). Это может привести к серьезным проблемам. Когда микросервисное приложение запускается, важно сначала убедиться, что после запуска приложение является здоровым, прежде чем направлять трафик от верхних уровней (например, от RPC, шлюзов, задач с периодическим выполнением и т. д.), иначе это может привести к значительному количеству ошибок в течение некоторого времени.* Хотя Spring Boot использует управление зависимостями (Dependency Management) для обеспечения максимальной совместимости управляемых им JAR-файлов, неизбежно возникают конфликты при использовании других JAR-файлов. Часто эти конфликты трудно решить. Например, если конфликтующие библиотеки связаны с сериализацией, например, Hessian, и один компонент приложения требует использование Hessian 3, а другой — Hessian 4, то из-за несовместимости между Hessian 3 и Hessian 4, а также поскольку сериализация затрагивает верхние и нижние уровни микросервисов, объединение всех этих библиотек в одну версию становится очень сложной задачей.

  • В контексте масштабируемого микросервисного обслуживания, платформенный подход к обслуживанию является необходимым решением, а мониторинг является одним из самых важных аспектов. Что касается мониторинга журналов, Spring Boot не предлагает никаких решений. Большинство открытых компонентов позволяют пользователям приложений определять, какие журналы должны быть созданы, куда они должны быть отправлены и в какие файлы. Это приводит к тому, что каждое приложение имеет свои уникальные конфигурации журналов, что делает процесс настройки мониторинга журналов для каждого приложения очень затратным.* В корпоративных сценариях, модульное программирование является эффективным решением для снижения затрат на взаимодействие между командами. Каждая коммерческая команда сосредоточена на разработке своих модулей приложений, каждый из которых является автономным и легко тестируется. Однако Spring Boot по умолчанию не поддерживает модульное программирование, все бины используют общий контекст Spring, что может привести к конфликтам BeanId при работе нескольких команд.

2. Обзор функциональностиЧтобы решить проблемы, возникающие при реализации масштабной архитектуры микросервисов с использованием Spring Boot, SOFABoot предоставляет следующие возможности:

2.1 Усиление возможностей проверки состояния здоровья Spring Boot

Для решения проблемы отсутствия возможности Readiness Check в Spring Boot, SOFABoot расширяет существующие возможности проверки состояния здоровья Spring Boot, добавляя возможность Readiness Check. Эта возможность позволяет компонентам SOFA Middleware принимать трафик только после успешного прохождения проверки готовности. Например, при использовании RPC, сервис регистрируется в центре управления службами только после успешного прохождения проверки готовности.

Кроме того, системы PaaS могут использовать событие Readiness Check для контроля доступа к трафику, обращаясь к URL http://localhost:8080/actuator/readiness, чтобы получить информацию о состоянии проверки готовности и контролировать доступ к трафику устройствами балансировки нагрузки.

2.2 Предоставление способности к изоляции классовЧтобы решить проблему конфликтов зависимостей классов в Spring Boot, SOFABoot использует SOFAArk для предоставления способности к изоляции классов в Spring Boot. В системе SOFABoot, если включены зависимости SOFAArk, то загрузчики классов (ClassLoaders) для классов SOFA Middleware и классов приложения будут изолированы друг от друга, что предотвращает конфликты классов. Пользователи также могут использовать SOFAArk для изоляции других middleware, сторонних зависимостей и классов приложения.### 2.3 Изоляция пространства логов

Для унификации вывода логов middleware в масштабах крупной архитектуры микросервисов, SOFABoot предоставляет возможность изоляции пространства логов для SOFA Middleware. После применения этой возможности, компоненты SOFA Middleware автоматически изолируют свои логи от логов приложения, что делает мониторинг этих логов более удобным и управляемым.

2.4 Интеграция и управление SOFA Middleware

Используя возможности автоматической конфигурации Spring Boot, SOFABoot предоставляет унифицированные и удобные для использования API программирования и Starter для Spring Boot, что облегчает использование SOFA Middleware в среде Spring Boot. Компоненты SOFA Middleware являются независимыми и модульными, что экономит время разработки и снижает затраты на последующее обслуживание.

2.5 Модульное развитие

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

3. Быстрый старт

Для быстрого начала работы с SOFABoot ознакомьтесь с разделом Быстрый старт.## 4. Как внести вклад

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

Требования к среде сборки SOFABoot включают JDK17 и использование версии Apache Maven 3.5.4 или выше для сборки.

5. Благодарности

Первый выпуск SOFA был создан Аньси, мы благодарим его за заложенную основу SOFA. Также мы выражаем благодарность всем, кто вносил свой вклад в развитие SOFA.

6. Примеры

Примеры проектов SOFABoot доступны в sofaboot-samples:

7. Документация

Для получения более подробной информации обратитесь к официальной документации SOFABoot.

Исходный код

8. Лицензия

SOFABoot распространяется под лицензией Apache License 2.0. Лицензии сторонних компонентов, используемых в SOFABoot, можно найти в разделе сообщение об авторских правах.

9. Знаменитые пользователиВ данном разделе представлен список компаний и организаций, использующих SOFAStack в полном или частичном объёме в производственной среде. Вы можете зарегистрироваться как пользователь SOFAStack по этой ссылке.

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

Анти集团股份有限公司 网商银行 恒生电子 数立信息 Paytm 天弘基金 中国人民保险集团 信美人寿相互保险 南京银行 民生银行 重庆农村商业银行 中信证券 富滇银行 挖财 拍拍贷 OPPO金融 运满满
阿里云 译筑科技WuKSTpZSEkE 杭州米雅信息科技 邦道科技 申通快递 深圳大头兄弟文化 烽火科技 亚信科技 成都云智天下科技 上海溢米辅导 态赋科技 风一科技 武汉易企盈 极致医疗 京东 小象生鲜 北京云族佳 欣亿云网 山东网聪Shàngyáng ruòjiàn Chángshā diǎn sān Wúyì yún yīnyuè Hǔyá zhízhōng Zhōngguó Yóuxiàng Wúzhǐ kējì Huángjīn qiánbāo Dúmùqiáo wǎngluò wueasy Běijīng yōulè kējì Yìbǎo zhùfèi Wēimǎ qìchē Yìtōng guójì Xīnhuà sān klilalagroup

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-SOFABoot.git
git@api.gitlife.ru:oschina-mirror/mirrors-SOFABoot.git
oschina-mirror
mirrors-SOFABoot
mirrors-SOFABoot
master