Skip to content

User Guide 0.4.x

liuyangming edited this page Jun 27, 2017 · 5 revisions

一、使用约束

  1. 必须且仅可指定一个<dubbo:application name="..." />元素,其name不能为空,且必须唯一;
  2. 必须且仅可指定一个<dubbo:protocol port="..." />元素,其port不能为空,也不能为-1;本约束与ByteJTA采用的负载均衡分发粒度相关,当使用ByteJTA按请求粒度负载均衡时可忽略该约束
  3. 定义dubbo服务提供者时(<dubbo:service />):a、filter必须为transaction;b、loadbalance必须为transaction;c 、cluster必须为failfast;d、retries必须为0;e、group必须为org.bytesoft.bytejta;
  4. 定义dubbo服务消费者时(<dubbo:reference />):a、filter必须为transaction;b、loadbalance必须为transaction;c 、cluster必须为failfast;d、retries必须为0;e、group必须为org.bytesoft.bytejta;
  5. JDK版本:7.0及以上版本;

二、配置ByteJTA

2.1、引入ByteTCC配置

<import resource="classpath:bytetcc-supports-dubbo.xml" />
2.2.2、配置扫描的应用包名
<context:component-scan base-package="com.yourcompany.service..." />
2.2.3、配置数据源
	<bean id="dontUseThisDataSourceDirectly_1" class="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource">
		<property name="url" value="jdbc:mysql://127.0.0.1:3306/inst01" />
		<property name="user" value="root" />
		<property name="password" value="123456" />
	</bean>
	<bean id="dontUseThisDataSourceDirectly_2" class="org.bytesoft.bytejta.supports.jdbc.XADataSourceImpl">
		<property name="xaDataSource" ref="dontUseThisDataSourceDirectly_1" />
	</bean>
	<bean id="dataSource" class="org.apache.commons.dbcp.managed.BasicManagedDataSource">
		<property name="transactionManager" ref="bytejtaTransactionManager" />
		<property name="xaDataSourceInstance" ref="dontUseThisDataSourceDirectly_2" />

		<!-- ...... -->
	</bean>

注意:不要直接使用本例中定义的dontUseThisDataSourceDirectly_1和dontUseThisDataSourceDirectly_2这两个数据源,而应该使用dataSource数据源。

三、ByteJTA对dubbo集群的支持

ByteJTA计划对负载均衡的支持粒度,可分为两种:a、按事务进行负载均衡;b、按请求进行负载均衡。

7.1、按事务进行负载均衡

在某个事务T内,consumer端应用app1首次向provider端应用app2(集群环境)发起请求时,ByteJTA使用random负载均衡策略将其随机分发到一个app2实例(如inst2);后续app1在该事务T内再次向app2发起请求时,将始终落在inst2(即首次请求的处理实例)上。

注意
1)ByteJTA 0.4.x版本默认支持“按事务进行负载均衡”的特性。

7.2、按请求进行负载均衡

consumer端应用app1向provider端应用app2(集群环境)发起请求时,ByteJTA始终按用户指定的负载均衡策略将请求分发到一个app2实例。

注意
1)ByteJTA 0.4.x版本暂不提供“按请求进行负载均衡”的特性,如果您希望使用该特性,请联系[email protected]

If you've found byteJTA useful, and would like to support future development of byteJTA, please consider donating. Any amount is appreciated.

WeiXin

Alipay

Clone this wiki locally