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

OSCHINA-MIRROR/seata-io-seata

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

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

Build Status codecov license maven

Что такое Seata?

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

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

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

Естественно, согласованность данных будет гарантирована локальной транзакцией.

Монолитное приложение

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

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

Микросервисы

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

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

Решение Seata

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

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

Глобальные и ветвящиеся транзакции

В Seata есть три основных компонента:

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

Модель

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

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

Типичный процесс

Для получения более подробной информации о принципе работы и дизайне перейдите на страницу вики Seata.

История

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

  • DTX: Distributed Transaction Extended. С 2013 года XTS публикуется в облаке Ant Financial под названием DTX.

Alibaba
  • TXC: Taobao Transaction Constructor. Команда промежуточного программного обеспечения Alibaba начала этот проект с 2014 года, чтобы решить проблемы распределённых транзакций, вызванные изменением архитектуры приложений с монолитной на микросервисы.
  • GTS: Global Transaction Service. TXC как продукт промежуточного слоя Aliyun с новым именем GTS был опубликован с 2016 года.
  • Fescar: мы начали проект с открытым исходным кодом Fescar на основе TXC/GTS с 2019 года, чтобы тесно сотрудничать с сообществом в будущем.
Seata Community
  • Seata: Simple Extensible Autonomous Transaction Architecture. Ant Financial присоединяется к Fescar, что делает его более нейтральным и открытым сообществом для распределённых транзакций, а Fescar переименовывается в Seata.

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

<seata.version>1.4.2</seata.version>

<dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-all</artifactId>
    <version>${seata.version}</version>
</dependency>

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

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

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

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

Сообщение об ошибках

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

Вклад

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

Контакты

Экосистема Seata

Участники

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

Лицензия

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

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

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

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

Текст представляет собой список компаний с указанием их логотипов. Перевод названий компаний на русский язык:

  1. Идэн лайф.
  2. Чэндоу сачжисо.
  3. Бэйцзин чаоту.
  4. Цзянси цюньсян кэцзи юсянь гунсы.
  5. Сунчэн думцяо ванло юсянь гунсы.
  6. Юй сяобао (Цзянсу) ванло юсянь юсянь гунсы.
  7. Ханчжоу ситун кэцзи.
  8. Хайдянь чэньюань.
  9. Чжунюань цзянькан кэцзи юсянь гунсы.
  10. Суцянь миньфэн нуншан иньхан.
  11. Шанхай хайчжи цзайлянь.
  12. Цзюньцзя (Шанхай) гунъюань чжу.
  13. Аньхой гокэ синьцай кэ.
  14. Шанъин синь пайфу.
  15. Титай шифу юнь.
  16. Гуанчжоу лишэн синьси.
  17. Ханчжоу цицзянь кэцзи юсянь гунсы.
  18. Вэйлянь.
  19. Шанхай мэифу тэ.
  20. Цзянси цюньсян кэцзи юсянь гунсы.
  21. Ханчжоу чжунвэй хуэйюань илай кэцзи гунсы.
  22. Ицзу чжихуэй (Бэйцзин).
  23. Фошань цяоу цзинь.
  24. F5 вэйлай шандэн.
  25. Чунцин лейгао кэцзи юсянь гунсы.
  26. Чжэньпинь синьси кэцзи.
  27. Ханьюнь цюаньцю хэцюй цзинмао (Ханчжоу фэньбу).
  28. Шицзи цзия хуа.
  29. Куайпу лиан.
  30. Сику цзяхуа.
  31. Кунцюэ лянь.
  32. Синань шиюй дасюэ.
  33. Сямынь фуюнь синьси кэцзи юсянь гунсы.
  34. Лянке ванло.
  35. Мэйтун шэ.

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

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

Введение

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

Обновления

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

Участники

все

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

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