东方通(TongTech)作为国产中间件领域的领军企业,其产品体系覆盖了企业级应用的多个核心场景。以下是主要中间件产品的技术解析与Java对接实现方案:
一、核心中间件产品矩阵
1. TongWeb(应用服务器)
- 定位:对标WebLogic/WebSphere的JavaEE应用服务器
- 核心能力:
- 支持Servlet 4.0/JSP 3.0规范
- 提供JDBC连接池、JNDI服务
- 集群会话复制
- 应用场景:政务/金融核心业务系统部署
2. TongLINK/Q(消息中间件)
- 定位:高可靠消息队列(对标IBM MQ)
- 核心指标:
- 单队列TPS 10万+
- 消息持久化存储
- 事务消息支持
- 应用场景:跨机构金融交易、电力调度指令传输
3. TongEASY(分布式事务中间件)
- 定位:XA协议增强型事务协调器
- 核心特性:
- 最大努力型事务补偿
- 两阶段提交优化
- 事务日志加密存储
4. TRedis(分布式缓存)
- 定位:国产化Redis替代方案
- 差异化能力:
- 国密算法支持(SM2/SM3/SM4)
- 多级缓存自动降级
- 审计日志合规输出
5. TongRDS(分布式数据库中间件)
- 定位:数据库分库分表解决方案
- 核心功能:
- SQL解析路由
- 读写分离
- 分布式唯一ID生成
二、典型中间件对接实现
1. TongWeb应用部署(SpringBoot集成)
// 部署描述文件tongweb.xml
<tongweb-app>
<resource-ref>
<res-ref-name>jdbc/primaryDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</tongweb-app>
// 数据源配置(JNDI获取)
@Configuration
public class TongWebConfig {
@Bean(destroyMethod = "close")
public DataSource dataSource() throws NamingException {
return (DataSource) new InitialContext().lookup("java:comp/env/jdbc/primaryDS");
}
}
// 启动类适配
@SpringBootApplication
public class App extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(App.class);
}
}
2. TongLINK/Q消息收发(JMS规范实现)
// 消息生产者
public class TLQProducer {
public void sendMessage(String msg) throws JMSException {
ConnectionFactory factory = new TongLINKQConnectionFactory("tcp://10.0.0.1:61616");
Connection conn = factory.createConnection("admin", "Encrypted@Pass");
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("GOV.REQUEST.QUEUE");
MessageProducer producer = session.createProducer(queue);
TextMessage message = session.createTextMessage(msg);
producer.send(message);
conn.close();
}
}
// 消息消费者(监听模式)
@JmsListener(destination = "GOV.RESPONSE.QUEUE")
public void onMessage(Message message) {
if (message instanceof TextMessage) {
try {
String text = ((TextMessage) message).getText();
processResponse(text);
} catch (JMSException e) {
log.error("消息处理异常", e);
}
}
}
3. TongEASY分布式事务管理
// 事务管理器配置
@Bean
public PlatformTransactionManager transactionManager() {
TongEasyTransactionManager tm = new TongEasyTransactionManager();
tm.setXidGenerator(new SnowflakeXidGenerator());
return tm;
}
// 跨库事务操作
@Transactional(rollbackFor = Exception.class)
public void crossDBOperation() {
// 操作Oracle数据库
jdbcTemplateOracle.update("UPDATE account SET balance = balance - 100 WHERE id = 1");
// 操作达梦数据库
jdbcTemplateDameng.update("UPDATE inventory SET stock = stock - 1 WHERE product_id = 1001");
}
4. TongRDS分库分表示例
// 分片策略配置
public class OrderShardingAlgorithm implements PreciseShardingAlgorithm<Long> {
@Override
public String doSharding(Collection<String> availableTargetNames,
PreciseShardingValue<Long> shardingValue) {
long orderId = shardingValue.getValue();
return "ds_" + (orderId % 4 / 2); // 分2库
}
}
// SQL执行(自动路由)
public List<Order> getOrdersByUserId(Long userId) {
String sql = "SELECT * FROM t_order WHERE user_id = ?";
return jdbcTemplate.query(sql, new OrderRowMapper(), userId);
}
三、对接注意事项
1. 安全合规配置
# TongWeb安全加固配置
security.ciphers=TLS_ECDHE_SM4_SM3
security.clientAuth=true
security.ocspEnable=true
# TRedis国密支持
tredis.security.mode=SM4_CBC
tredis.auth.sm2Key=MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE...
2. 性能调优参数
// TongLINK/Q连接池优化
TongLINKQConnectionFactory factory = new TongLINKQConnectionFactory();
factory.setConnectionPoolSize(50);
factory.setSessionCacheSize(200);
factory.setRedeliveryPolicy(new RedeliveryPolicy() {{
setMaximumRedeliveries(3);
setInitialRedeliveryDelay(5000);
}});
3. 故障排查工具
# TongWeb线程分析
$TW_HOME/bin/twadmin.sh dump_threads
# TRedis慢查询日志
tredis-cli --slowlog get 10
四、最佳实践建议
-
渐进式迁移策略:
- 通过流量镜像验证中间件兼容性
- 使用双写模式保障数据一致性
- 建立熔断降级机制
-
监控体系建设:
// 自定义健康检查端点 @Component public class TongWebHealthIndicator implements HealthIndicator { @Override public Health health() { return Health.up() .withDetail("activeSessions", getSessionCount()) .withDetail("jdbcPoolUsage", getConnectionPoolUsage()) .build(); } } -
自动化测试方案:
// 中间件兼容性测试框架 @RunWith(SpringRunner.class) @SpringBootTest @TestPropertySource(properties = { "tongweb.datasource.jndi-name=jdbc/testDS", "tredis.mode=cluster" }) public class MiddlewareCompatibilityTest { @Autowired private BusinessService service; @Test public void testCrossMiddlewareOperation() { service.executeComplexTransaction(); // 验证数据库与缓存一致性 } }
通过以上技术方案,可构建符合信创要求的国产化中间件技术栈。实际实施时建议:
- 优先在非核心业务试点验证
- 建立厂商支持快速响应通道
- 制定中间件专项应急预案
- 定期进行国产化组件攻防演练

1万+

被折叠的 条评论
为什么被折叠?



