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

OSCHINA-MIRROR/bytesoft-ByteTCC

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

ByteTCC — это реализация менеджера распределённых транзакций, основанная на механизме Try-Confirm-Cancel (TCC).

ByteTCC совместим с JTA и может быть легко интегрирован со Spring и другими контейнерами Java.

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

1.1 Добавить зависимость maven

1.1.1 Spring Cloud
<dependency>
	<groupId>org.bytesoft</groupId>
	<artifactId>bytetcc-supports-springcloud</artifactId>
	<version>0.5.10</version>
</dependency>
1.1.2 dubbo
<dependency>
	<groupId>org.bytesoft</groupId>
	<artifactId>bytetcc-supports-dubbo</artifactId>
	<version>0.5.10</version>
</dependency>

1.2 Создать бизнес-сервис

@Service("accountService")
@Compensable(
  interfaceClass = IAccountService.class 
, confirmableKey = "accountServiceConfirm"
, cancellableKey = "accountServiceCancel"
)
public class AccountServiceImpl implements IAccountService {

	@Resource(name = "jdbcTemplate")
	private JdbcTemplate jdbcTemplate;

	@Transactional
	public void increaseAmount(String accountId, double amount) throws ServiceException {
	    this.jdbcTemplate.update("update tb_account set frozen = frozen + ? where acct_id = ?", amount, acctId);
	}

}

1.3 Создать сервис подтверждения

@Service("accountServiceConfirm")
public class AccountServiceConfirm implements IAccountService {

	@Resource(name = "jdbcTemplate")
	private JdbcTemplate jdbcTemplate;

	@Transactional
	public void increaseAmount(String accountId, double amount) throws ServiceException {
	    this.jdbcTemplate.update("update tb_account set amount = amount + ?, frozen = frozen - ? where acct_id = ?", amount, amount, acctId);
	}

}

1.4 Создать сервис отмены

@Service("accountServiceCancel")
public class AccountServiceCancel implements IAccountService {

	@Resource(name = "jdbcTemplate")
	private JdbcTemplate jdbcTemplate;

	@Transactional
	public void increaseAmount(String accountId, double amount) throws ServiceException {
	    this.jdbcTemplate.update("update tb_account set frozen = frozen - ? where acct_id = ?", amount, accountId);
	}

}

2. Документация и примеры

3. Особенности

  • Поддержка декларативного управления транзакциями.
  • Поддержка обычных транзакций, транзакций TCC, транзакций компенсирующих сервисов.
  • Поддержка сценариев распределённых транзакций. Например, транзакции для нескольких источников данных, кросс-приложений и кросс-серверов.
  • Поддержка долгоживущих транзакций.
  • Поддержка фреймворка Dubbo.
  • Поддержка Spring Cloud.
  • Предоставление решений для обеспечения уникальности идентификаторов сервисов на уровне фреймворков.

4. Свяжитесь со мной

Если у вас есть какие-либо вопросы или комментарии по этому проекту, пожалуйста, свяжитесь со мной:

  1. Отправьте письмо на bytefox#126.com ИЛИ
  2. Добавьте меня в группу Tecent QQ: 537445956/606453172/383515467.

Мы рассмотрим все предложения и реализуем хорошие идеи в будущих выпусках.

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

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

Введение

ByteTCC Transaction Manager предназначен для обеспечения распределённого менеджера управления транзакциями на основе механизма TCC, который совместим с JTA. *Пользовательская документация: https://github.com/liuyangming/ByteTCC/wiki* Развернуть Свернуть
LGPL-3.0
Отмена

Обновления

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

Участники

все

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

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