Browse Source

chore: 架构升级 rocketmq案例基本实现 移除部分代码后续重构

master
wangxiang 2 years ago
parent
commit
7d8eb450a6
  1. 4
      kicc-common-demo/kicc-common-demo-mq/kicc-message-consumer/pom.xml
  2. 4
      kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/pom.xml
  3. 18
      kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/src/main/java/com/cloud/kicc/mq/listener/OrderTransactionListener.java
  4. 12
      kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/src/main/java/com/cloud/kicc/mq/service/impl/TransactionOrderServiceImpl.java
  5. 6
      kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/src/main/resources/application.yml
  6. 20
      kicc-common/kicc-common-bom/pom.xml

4
kicc-common-demo/kicc-common-demo-mq/kicc-message-consumer/pom.xml

@ -29,6 +29,10 @@
<groupId>com.cloud</groupId> <groupId>com.cloud</groupId>
<artifactId>kicc-common-data</artifactId> <artifactId>kicc-common-data</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

4
kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/pom.xml

@ -29,6 +29,10 @@
<groupId>com.cloud</groupId> <groupId>com.cloud</groupId>
<artifactId>kicc-common-data</artifactId> <artifactId>kicc-common-data</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

18
kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/src/main/java/com/cloud/kicc/mq/listener/OrderTransactionListener.java

@ -1,3 +1,4 @@
/*
package com.cloud.kicc.mq.listener; package com.cloud.kicc.mq.listener;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
@ -15,24 +16,28 @@ import org.springframework.messaging.MessageHeaders;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
*/
/** /**
* 发送之后用于控制原子性的类 * 发送之后用于控制原子性的类
* 在消息发送之后收到rocketmq的发送结果通知后才提交的本地事务 * 在消息发送之后收到rocketmq的发送结果通知后才提交的本地事务
* *
* @author entfrm开发团队-王翔 * @author entfrm开发团队-王翔
* @link https://blog.csdn.net/guzhangyu12345/article/details/107989633 * @link https://blog.csdn.net/guzhangyu12345/article/details/107989633
*/ *//*
@Slf4j @Slf4j
@RocketMQTransactionListener(txProducerGroup = MessageConstant.ORDER_BINDER_GROUP) @RocketMQTransactionListener(txProducerGroup = MessageConstant.ORDER_BINDER_GROUP)
public class OrderTransactionListener implements RocketMQLocalTransactionListener { public class OrderTransactionListener implements RocketMQLocalTransactionListener {
/** */
/**
* rocketmq 消息发送成功之后提交本地事务 * rocketmq 消息发送成功之后提交本地事务
* *
* @param message 消息 * @param message 消息
* @param o  args * @param o  args
* @return RocketMQLocalTransactionState * @return RocketMQLocalTransactionState
*/ *//*
@Override @Override
public RocketMQLocalTransactionState executeLocalTransaction(Message message, Object o) { public RocketMQLocalTransactionState executeLocalTransaction(Message message, Object o) {
@ -53,12 +58,14 @@ public class OrderTransactionListener implements RocketMQLocalTransactionListene
} }
/** */
/**
* rocketmq 回查,判断提交还是回滚 * rocketmq 回查,判断提交还是回滚
* *
* @param message Message * @param message Message
* @return RocketMQLocalTransactionState * @return RocketMQLocalTransactionState
*/ *//*
@Override @Override
public RocketMQLocalTransactionState checkLocalTransaction(Message message) { public RocketMQLocalTransactionState checkLocalTransaction(Message message) {
Order order = JSON.parseObject(new String((byte[]) message.getPayload()), Order.class); Order order = JSON.parseObject(new String((byte[]) message.getPayload()), Order.class);
@ -73,3 +80,4 @@ public class OrderTransactionListener implements RocketMQLocalTransactionListene
} }
} }
} }
*/

12
kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/src/main/java/com/cloud/kicc/mq/service/impl/TransactionOrderServiceImpl.java

@ -1,3 +1,4 @@
/*
package com.cloud.kicc.mq.service.impl; package com.cloud.kicc.mq.service.impl;
import com.cloud.kicc.common.rocketmq.channel.KiccSource; import com.cloud.kicc.common.rocketmq.channel.KiccSource;
@ -15,6 +16,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.UUID; import java.util.UUID;
*/
/** /**
*<p> *<p>
* 订单事务消息实现 * 订单事务消息实现
@ -22,7 +24,8 @@ import java.util.UUID;
* *
* @Author: entfrm开发团队-王翔 * @Author: entfrm开发团队-王翔
* @Date: 2022/3/9 * @Date: 2022/3/9
*/ *//*
@Slf4j @Slf4j
@Service @Service
@AllArgsConstructor @AllArgsConstructor
@ -32,10 +35,12 @@ public class TransactionOrderServiceImpl implements TransactionOrderService {
private final KiccSource kiccSource; private final KiccSource kiccSource;
/** */
/**
* 这里消息发送只是half发送 * 这里消息发送只是half发送
* 后面消息队列中half成功后在TestTransactionListener中的executeLocalTransaction的方法中决定是否要提交本地事务 * 后面消息队列中half成功后在TestTransactionListener中的executeLocalTransaction的方法中决定是否要提交本地事务
*/ *//*
@Override @Override
public void testTransaction() { public void testTransaction() {
@ -78,3 +83,4 @@ public class TransactionOrderServiceImpl implements TransactionOrderService {
log.info("half消息发送成功"); log.info("half消息发送成功");
} }
} }
*/

6
kicc-common-demo/kicc-common-demo-mq/kicc-message-producer/src/main/resources/application.yml

@ -4,6 +4,12 @@ spring:
application: application:
name: @artifactId@ name: @artifactId@
cloud: cloud:
cloud:
nacos:
discovery:
server-addr: ${NACOS_HOST:192.168.3.10}:${NACOS_PORT:8848}
namespace: ${seata.registry.nacos.namespace}
group: ${seata.registry.nacos.group}
stream: stream:
rocketmq: rocketmq:
# rocketmq-binder配置项,对应RocketMQBinderConfigurationProperties类 # rocketmq-binder配置项,对应RocketMQBinderConfigurationProperties类

20
kicc-common/kicc-common-bom/pom.xml

@ -17,9 +17,8 @@
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
<kicc.common.version>${project.version}</kicc.common.version> <kicc.common.version>${project.version}</kicc.common.version>
<spring-boot.version>2.6.3</spring-boot.version> <spring-boot.version>2.6.3</spring-boot.version>
<security.oauth.version>2.1.8.RELEASE</security.oauth.version> <!--<security.oauth.version>2.1.8.RELEASE</security.oauth.version>-->
<cloud.stream.version>3.0.13.RELEASE</cloud.stream.version> <!--<alibaba-seata.version>2021.0.1.0</alibaba-seata.version>-->
<alibaba-seata.version>2021.0.1.0</alibaba-seata.version>
<log4j2.version>2.17.1</log4j2.version> <log4j2.version>2.17.1</log4j2.version>
<fastjson.version>1.2.78</fastjson.version> <fastjson.version>1.2.78</fastjson.version>
<swagger.core.version>1.5.24</swagger.core.version> <swagger.core.version>1.5.24</swagger.core.version>
@ -116,24 +115,17 @@
</dependency> </dependency>
<!--最新版本2021.1 com.alibaba.cloud.seata.rest.SeataRestTemplateAutoConfiguration有自调Bean问题 <!--最新版本2021.1 com.alibaba.cloud.seata.rest.SeataRestTemplateAutoConfiguration有自调Bean问题
与当前 spring cloud 2021 不兼容,更换2021.0.1.0兼容版本--> 与当前 spring cloud 2021 不兼容,更换2021.0.1.0兼容版本-->
<dependency> <!--<dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
<version>${alibaba-seata.version}</version> <version>${alibaba-seata.version}</version>
</dependency> </dependency>-->
<!--稳定版本,目前最新版采用函数编程经过测试rocketMQ消费者接受消息收不到,
目前最新版适配还存在一定的问题,替代spring-cloud-starter-stream-rocketmq2021.1 bom内置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
<version>${cloud.stream.version}</version>
</dependency>
<!--稳定版本,替代spring security2.6.3 bom内置--> <!--稳定版本,替代spring security2.6.3 bom内置-->
<dependency> <!--<dependency>
<groupId>org.springframework.security.oauth.boot</groupId> <groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId> <artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>${security.oauth.version}</version> <version>${security.oauth.version}</version>
</dependency> </dependency>-->
<!--swagger 最新依赖内置版本--> <!--swagger 最新依赖内置版本-->
<dependency> <dependency>
<groupId>io.swagger</groupId> <groupId>io.swagger</groupId>

Loading…
Cancel
Save