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

OSCHINA-MIRROR/mirrors-Seata

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Seata: простая расширяемая автономная архитектура транзакций

Build Status

codecov

license

maven

Что такое Seata?

Это решение для распределённых транзакций, которое отличается высокой производительностью и простотой использования в архитектуре микросервисов.

Проблема распределённой транзакции в микросервисах

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

В архитектуре микросервисов три упомянутых модуля представляют собой три сервиса, работающие с тремя разными источниками данных (шаблон «База данных на сервис»). Согласованность данных внутри каждого сервиса естественным образом обеспечивается локальной транзакцией.

Но как насчёт всей области бизнес-логики?

Как работает Seata

Seata — это решение проблемы, описанной выше.

Во-первых, что такое распределённая транзакция?

Мы говорим, что распределённая транзакция — это глобальная транзакция, которая состоит из пакета ветвящихся транзакций, а ветвящаяся транзакция обычно является локальной транзакцией.

Есть три роли в Seata Framework:

  • Координатор транзакций (TC): поддерживает статус глобальных и ветвящихся транзакций, управляет глобальным подтверждением или откатом.
  • Менеджер транзакций (TM): определяет область глобальной транзакции: начинает глобальную транзакцию, подтверждает или отменяет глобальную транзакцию.
  • Диспетчер ресурсов (RM): управляет ресурсами, над которыми работают ветвящиеся транзакции, общается с TC для регистрации ветвящихся транзакций и сообщает о статусе ветвящихся транзакций, а также управляет подтверждением или отменой ветвящейся транзакции.

Типичный жизненный цикл управляемой Seata распределённой транзакции:

  1. TM просит TC начать новую глобальную транзакцию. TC генерирует XID, представляющий глобальную транзакцию.
  2. XID распространяется по цепочке вызовов микросервисов.
  3. RM регистрирует локальную транзакцию как ветвь соответствующей глобальной транзакции XID в TC.
  4. TM запрашивает у TC подтверждение или отмену соответствующей глобальной транзакции XID.
  5. TC управляет всеми ветвящимися транзакциями в рамках соответствующей глобальной транзакции XID для завершения подтверждения или отмены.

Для получения более подробной информации о принципе работы и дизайне перейдите на страницу вики Seata (https://github.com/apache/incubator-seata/wiki).

История

Alibaba:

— TXC: конструктор транзакций Taobao. Команда Alibaba middleware начала этот проект в 2014 году, чтобы решить проблемы распределённых транзакций, вызванные изменением архитектуры приложений с монолитной на микросервисы. — GTS: глобальный. Сервис транзакций TXC как продукт промежуточного программного обеспечения Aliyun с новым названием GTS был опубликован с 2016 года.

Fescar: с 2019 года мы начали проект с открытым исходным кодом Fescar на основе TXC/GTS, чтобы тесно сотрудничать с сообществом в будущем.

Ant Financial

XTS: расширенный сервис транзакций. Команда промежуточного программного обеспечения Ant Financial разработала распределённое промежуточное программное обеспечение для транзакций, которое широко используется в Ant Financial и решает проблемы согласованности данных между базами данных и сервисами.

DTX: расширенная распределённая транзакция. С 2013 года XTS публикуется в облаке Ant Financial под именем DTX.

Сообщество Seata

Seata: простая расширяемая автономная архитектура транзакций. Ant Financial присоединяется к Fescar, что делает его более нейтральным и открытым сообществом для распределённых транзакций, а Fescar переименовывается в Seata.

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

В зависимости от сценария выберите одну из двух зависимостей: io.seata:seata-all или io.seata:seata-spring-boot-starter.

<properties>
  <seata.version>2.0.0</seata.version>
</properties>

<dependencies>
<!--зависимости для не-SpringBoot фреймворка приложения-->
  <dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-all</artifactId>
    <version>${seata.version}</version>
  </dependency>

<!--Если ваш проект основан на Spring Boot, вы можете напрямую использовать следующие зависимости-->
<!--Обратите внимание: seata-spring-boot-starter уже включает зависимость seata-all-->
  <dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-spring-boot-starter</artifactId>
    <version>${seata.version}</version>
  </dependency>
</dependencies>

Быстрый старт

Быстрый старт

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

Вы можете просмотреть полную документацию на официальном сайте Seata: страница сайта Seata.

Отчёт об ошибках

Пожалуйста, следуйте шаблону для сообщения о любых проблемах.

Безопасность

Пожалуйста, не используйте наш общедоступный трекер проблем, обратитесь к нашей политике безопасности.

Вклад

Добро пожаловать участникам проекта Seata. Пожалуйста, ознакомьтесь с CONTRIBUTING и CONTRIBUTING-CN, чтобы узнать, как внести свой вклад в этот проект.

Контакты

Экосистема Seata

Участники

Этот проект существует благодаря всем людям, которые вносят свой вклад. [Участники].

Лицензия

Seata находится под лицензией Apache 2.0. Подробнее см. в файле LICENSE.

Кто использует

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

В тексте присутствуют только специальные символы, которые используются для форматирования HTML-кода. Они не имеют перевода и оставлены без изменений. Данный текст не содержит технической информации. Это список изображений с сайтов, их описание и атрибуты. ```

熙菱信息 鲸算科技 杭州沃朴物联科技有限公司 深圳市臻络科技有限公司 白云电气 百果园 海尔 六倍体科技 泉州银行 小滴课堂 医百顺 正泰中自控制 中国电子科技网络 卓源软件 重庆直通物流有限公司 海澜集团 南宁微服信息技术有限公司 日事清 小鹏汽车 平安人寿 光大银行
```

Комментарии ( 0 )

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

Введение

Seata — это открытое распределённое решение для управления транзакциями, которое предоставляет высокопроизводительные и простые в использовании распределённые транзакционные сервисы. Развернуть Свернуть
Java и 6 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-Seata.git
git@api.gitlife.ru:oschina-mirror/mirrors-Seata.git
oschina-mirror
mirrors-Seata
mirrors-Seata
2.x