Знакомство с проектом Huawei с открытым исходным кодом ServiceComb

Микросервисы Архитектура
Знакомство с проектом Huawei с открытым исходным кодом ServiceComb

Резюме

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

Источник контента:26 октября 2017 года Цзян Нин, эксперт в области открытого исходного кода Huawei PaaS, выступил с речью «Введение в проект ServiceComb с открытым исходным кодом» на «ServiceComb Live Online». IT big coffee сообщил, что как эксклюзивный видео-партнер, он был выпущен с разрешения организатора и спикера.

Количество прочитанных слов: 1822 | 4 минуты чтения

Видеопросмотр выступлений гостей:suo.im/3ISGit

Проблемы, с которыми сталкивается разработка микросервисов корпоративных приложений

Бизнес-логика предприятия сложна, как осуществлять межкомандную совместную разработку?

Как поддержать быстрое преобразование услуг большого количества старых системных кодов?

Облачные приложения сложны и сталкиваются с проблемой отслеживания вызовов при распределении мониторинга?

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

В то же время микросервисный движок Huawei, который имеет то же происхождение, что и ServiecComb, также будет независимо запущен для публичного бета-тестирования в середине-начале ноября.


На приведенном выше рисунке показана архитектурная схема ServiceComb.Среда выполнения ServiceComb включает два основных модуля. Одна часть — это сервисный контракт, который представляет собой стандартную информацию описания для сервисов Restful, реализованных на основе открытого API, который является независимым и специфичным языком. Сервисный контракт — очень важная основная функция ServiceComb.

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

Зачем нужен сервисный контракт

Как потребитель услуги:

Нужно точно знать, как вызвать службу?

Нужно знать, каковы параметры вызова службы?

Нужно знать, что передается?

Как поставщик услуг:

Сложно предоставить документацию с подробным описанием?

Также сложно предоставить и поддерживать стандартный SDK?

Оказание поддержки пользователям также неудобно.

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

определение контракта на обслуживание


ServiceCombJava SDK поддерживает режимы разработки API First и Code First, и пользователи могут гибко выбирать в соответствии со своими потребностями.

Ориентирован на контракты интерфейса, а не на логику, и инструменты могут генерировать соответствующий код-заглушку или программы вызова службы в соответствии с контрактом;

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

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

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


ServiceCombJava SDK получает информацию описания интерфейса Restful непосредственно с уровня кода путем прямого анализа файла класса интерфейса службы и создает информацию описания контракта. В настоящее время ServiceComb Java SDK поддерживает Spring MVC и JAXRS, а также другие методы определения службы Restful.

Гарантированная производительность системы благодаря асинхронным операциям обработки событий


Вся структура основана на управлении событиями и обрабатывается по принципу Event-Loop, что дает самое большое преимущество в том, что не будет слишком большого переключения потоков. Асинхронные операции могут значительно повысить эффективность обработки приложений. В настоящее время инфраструктура обработки событий ServiceCombJavaSDK поддерживает не только протокол Restful, но и протокол RPC.

Распределенное отслеживание звонков

ServiceComb Java SDK поддерживает стандартный протокол трассировки на основе Zipkin, а также поддерживает @span для расширения возможностей трассировки транзакций.

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

Информация о кодовой базе ServiceComb

Java-шасси: Java-версия микросервисного фреймворка;

сервис-центр: сервисный центр на языке go;

ServiceComb-Saga: давно работающая структура обработки транзакций.

Новые возможности компонентов ServiceComb

Сервис-Центр 0.2.0:

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

Java-шасси0.3.0:

Поддерживает определение транзакций с помощью аннотаций @Span, унифицирует обработку запросов Http и поддерживает пользовательскую обработку вызовов Rest.

Сага0.1.0:

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

вклад сообщества

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

Проект ServiceComb полностью интегрирован с открытым исходным кодом и с момента своего рождения придерживается трех концепций открытости, стандартов и экологии. ServiceComb использует подход с открытым исходным кодом для сотрудничества с сообществом, и пользователи могут участвовать в развитии сообщества в любой роли, будь то разработчик, писатель, тестировщик или пользователь, все очень приветствуются. В настоящее время работа сообщества ведется на github (https://github.com/ServiceComb), официальном сайте (https://www.servicecomb.io) и JIRA (https://servicecomb.atlassian.net). ), разработчики и пользователи Всю информацию о проекте можно найти выше. ServiceComb с нетерпением ждет участия членов сообщества. Пользователи могут упоминать проблемы, обнаруженные в процессе использования, в списке задач или JIRA или инициировать обсуждения, или они могут заявить о проблемах и внести свой вклад в PR. Любой метод приветствуется.

Разработчики могут прочитать руководство разработчика по адресу http://servicecomb.io/cn/developers/.

Вот и все на сегодняшнем обмене, спасибо всем!