记得上下班打卡 | git大法好,push需谨慎

Commit c6129d33 authored by 张国柄's avatar 张国柄

opt;

parent 9131e43f
...@@ -33,6 +33,7 @@ public class RedisStreamConfig { ...@@ -33,6 +33,7 @@ public class RedisStreamConfig {
try { try {
if (stringRedisTemplate.hasKey(key)) { if (stringRedisTemplate.hasKey(key)) {
log.info("redis stream exist[{},{}]", key, group); log.info("redis stream exist[{},{}]", key, group);
stringRedisTemplate.opsForStream().createGroup(key, group);
} else { } else {
log.info("redis stream init[{},{}]", key, group); log.info("redis stream init[{},{}]", key, group);
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
...@@ -43,7 +44,7 @@ public class RedisStreamConfig { ...@@ -43,7 +44,7 @@ public class RedisStreamConfig {
stringObjectObjectStreamOperations.delete(key, recordId.getValue()); stringObjectObjectStreamOperations.delete(key, recordId.getValue());
} }
} catch (Exception e) { } catch (Exception e) {
log.error("Ex:redis stream init [{},{}]", key, group, e); log.error("Ex:redis stream init [{},{}],ex:{}", key, group, e.getMessage());
} }
} }
......
...@@ -2,8 +2,7 @@ package com.liquidnet.service.consumer.kylin.config; ...@@ -2,8 +2,7 @@ package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinNftOrderRdsReceiver; import com.liquidnet.service.consumer.kylin.receiver.*;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinSqlArtworkGenRdsReceiver;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -24,10 +23,64 @@ public class ConsumerCommonSqlRedisStreamConfig extends RedisStreamConfig { ...@@ -24,10 +23,64 @@ public class ConsumerCommonSqlRedisStreamConfig extends RedisStreamConfig {
@Autowired @Autowired
StringRedisTemplate stringRedisTemplate; StringRedisTemplate stringRedisTemplate;
@Autowired @Autowired
ConsumerGoblinSqlStoreRdsReceiver consumerGoblinSqlStoreRdsReceiver;
@Autowired
ConsumerGoblinSqlGoodsRdsReceiver consumerGoblinSqlGoodsRdsReceiver;
@Autowired
ConsumerGoblinSqlCouponRdsReceiver consumerGoblinSqlCouponRdsReceiver;
@Autowired
ConsumerGoblinSqlArtworkGenRdsReceiver consumerGoblinSqlArtworkGenRdsReceiver; ConsumerGoblinSqlArtworkGenRdsReceiver consumerGoblinSqlArtworkGenRdsReceiver;
@Autowired @Autowired
ConsumerGoblinNftOrderRdsReceiver consumerGoblinNftOrderRdsReceiver; ConsumerGoblinNftOrderRdsReceiver consumerGoblinNftOrderRdsReceiver;
@Bean// 店铺相关
public List<Subscription> subscriptionSqlStore(RedisConnectionFactory factory) {
List<Subscription> subscriptionList = new ArrayList<>();
MQConst.GoblinQueue stream = MQConst.GoblinQueue.SQL_STORE;
this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
for (int i = 0; i < 2; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlStoreRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
}
@Bean// 商品相关
public List<Subscription> subscriptionSqlGoods(RedisConnectionFactory factory) {
List<Subscription> subscriptionList = new ArrayList<>();
MQConst.GoblinQueue stream = MQConst.GoblinQueue.SQL_GOODS;
this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
for (int i = 0; i < 3; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlGoodsRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
}
@Bean// 店铺优惠券相关
public List<Subscription> subscriptionSqlStoreCoupon(RedisConnectionFactory factory) {
List<Subscription> subscriptionList = new ArrayList<>();
MQConst.GoblinQueue stream = MQConst.GoblinQueue.SQL_COUPON;
this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
for (int i = 0; i < 10; i++) {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer = this.buildStreamMessageListenerContainer(factory);
subscriptionList.add(listenerContainer.receiveAutoAck(
Consumer.from(stream.getGroup(), getConsumerName(stream.name() + i)),
StreamOffset.create(stream.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlCouponRdsReceiver
));
listenerContainer.start();
}
return subscriptionList;
}
@Bean// 藏品生成 @Bean// 藏品生成
public List<Subscription> subscriptionSqlArtworkGen(RedisConnectionFactory factory) { public List<Subscription> subscriptionSqlArtworkGen(RedisConnectionFactory factory) {
List<Subscription> subscriptionList = new ArrayList<>(); List<Subscription> subscriptionList = new ArrayList<>();
...@@ -45,7 +98,7 @@ public class ConsumerCommonSqlRedisStreamConfig extends RedisStreamConfig { ...@@ -45,7 +98,7 @@ public class ConsumerCommonSqlRedisStreamConfig extends RedisStreamConfig {
} }
@Bean// NFT订单 @Bean// NFT订单
public List<Subscription> subscriptionBizNftOrder(RedisConnectionFactory factory) { public List<Subscription> subscriptionSqlNftOrder(RedisConnectionFactory factory) {
List<Subscription> subscriptionList = new ArrayList<>(); List<Subscription> subscriptionList = new ArrayList<>();
MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_NFT_ORDER; MQConst.GoblinQueue stream = MQConst.GoblinQueue.GOBLIN_NFT_ORDER;
this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup()); this.initStream(stringRedisTemplate, stream.getKey(), stream.getGroup());
......
package com.liquidnet.service.consumer.kylin.config; //package com.liquidnet.service.consumer.kylin.config;
//
import com.liquidnet.common.cache.redis.config.RedisStreamConfig; //import com.liquidnet.common.cache.redis.config.RedisStreamConfig;
import com.liquidnet.service.base.constant.MQConst; //import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinSqlCouponRdsReceiver; //import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinSqlCouponRdsReceiver;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinSqlGoodsRdsReceiver; //import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinSqlGoodsRdsReceiver;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinSqlStoreRdsReceiver; //import com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinSqlStoreRdsReceiver;
import lombok.var; //import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory; //import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.stream.Consumer; //import org.springframework.data.redis.connection.stream.Consumer;
import org.springframework.data.redis.connection.stream.MapRecord; //import org.springframework.data.redis.connection.stream.MapRecord;
import org.springframework.data.redis.connection.stream.ReadOffset; //import org.springframework.data.redis.connection.stream.ReadOffset;
import org.springframework.data.redis.connection.stream.StreamOffset; //import org.springframework.data.redis.connection.stream.StreamOffset;
import org.springframework.data.redis.stream.StreamMessageListenerContainer; //import org.springframework.data.redis.stream.StreamMessageListenerContainer;
import org.springframework.data.redis.stream.Subscription; //import org.springframework.data.redis.stream.Subscription;
//
@Configuration //@Configuration
public class ConsumerGoblinSqlUstoreRedisStreamConfig extends RedisStreamConfig { //public class ConsumerGoblinSqlUstoreRedisStreamConfig extends RedisStreamConfig {
@Autowired // @Autowired
ConsumerGoblinSqlStoreRdsReceiver consumerGoblinSqlStoreRdsReceiver; // ConsumerGoblinSqlStoreRdsReceiver consumerGoblinSqlStoreRdsReceiver;
@Autowired // @Autowired
ConsumerGoblinSqlGoodsRdsReceiver consumerGoblinSqlGoodsRdsReceiver; // ConsumerGoblinSqlGoodsRdsReceiver consumerGoblinSqlGoodsRdsReceiver;
@Autowired // @Autowired
ConsumerGoblinSqlCouponRdsReceiver consumerGoblinSqlCouponRdsReceiver; // ConsumerGoblinSqlCouponRdsReceiver consumerGoblinSqlCouponRdsReceiver;
//
/** // /**
* 店铺相关 // * 店铺相关
* // *
* @param listenerContainer StreamMessageListenerContainer // * @param listenerContainer StreamMessageListenerContainer
* @param t 消费者序号 // * @param t 消费者序号
* @return Subscription // * @return Subscription
*/ // */
private Subscription receiveSqlStore(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) { // private Subscription receiveSqlStore(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.SQL_STORE.getGroup(), getConsumerName(MQConst.GoblinQueue.SQL_STORE.name() + t)), // return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.SQL_STORE.getGroup(), getConsumerName(MQConst.GoblinQueue.SQL_STORE.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.SQL_STORE.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlStoreRdsReceiver); // StreamOffset.create(MQConst.GoblinQueue.SQL_STORE.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlStoreRdsReceiver);
} // }
//
/** // /**
* 商品相关 // * 商品相关
* // *
* @param listenerContainer StreamMessageListenerContainer // * @param listenerContainer StreamMessageListenerContainer
* @param t 消费者序号 // * @param t 消费者序号
* @return Subscription // * @return Subscription
*/ // */
private Subscription receiveSqlGoods(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) { // private Subscription receiveSqlGoods(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.SQL_GOODS.getGroup(), getConsumerName(MQConst.GoblinQueue.SQL_GOODS.name() + t)), // return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.SQL_GOODS.getGroup(), getConsumerName(MQConst.GoblinQueue.SQL_GOODS.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.SQL_GOODS.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlGoodsRdsReceiver); // StreamOffset.create(MQConst.GoblinQueue.SQL_GOODS.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlGoodsRdsReceiver);
} // }
//
/** // /**
* 店铺优惠券相关 // * 店铺优惠券相关
* // *
* @param listenerContainer StreamMessageListenerContainer // * @param listenerContainer StreamMessageListenerContainer
* @param t 消费者序号 // * @param t 消费者序号
* @return Subscription // * @return Subscription
*/ // */
private Subscription receiveSqlCoupon(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) { // private Subscription receiveSqlCoupon(StreamMessageListenerContainer<String, MapRecord<String, String, String>> listenerContainer, int t) {
return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.SQL_COUPON.getGroup(), getConsumerName(MQConst.GoblinQueue.SQL_COUPON.name() + t)), // return listenerContainer.receiveAutoAck(Consumer.from(MQConst.GoblinQueue.SQL_COUPON.getGroup(), getConsumerName(MQConst.GoblinQueue.SQL_COUPON.name() + t)),
StreamOffset.create(MQConst.GoblinQueue.SQL_COUPON.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlCouponRdsReceiver); // StreamOffset.create(MQConst.GoblinQueue.SQL_COUPON.getKey(), ReadOffset.lastConsumed()), consumerGoblinSqlCouponRdsReceiver);
} // }
//
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */ // /* —————————————————————————— | —————————————————————————— | —————————————————————————— */
//
/* -------------------------------------------------------- | 店铺相关 */ // /* -------------------------------------------------------- | 店铺相关 */
//
@Bean // @Bean
public Subscription subscriptionSqlStore0(RedisConnectionFactory factory) { // public Subscription subscriptionSqlStore0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlStore(listenerContainer, 0); // var subscription = receiveSqlStore(listenerContainer, 0);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlStore1(RedisConnectionFactory factory) { // public Subscription subscriptionSqlStore1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlStore(listenerContainer, 1); // var subscription = receiveSqlStore(listenerContainer, 1);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
/* -------------------------------------------------------- | 用户中心 */ // /* -------------------------------------------------------- | 用户中心 */
//
@Bean // @Bean
public Subscription subscriptionSqlGoods0(RedisConnectionFactory factory) { // public Subscription subscriptionSqlGoods0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlGoods(listenerContainer, 0); // var subscription = receiveSqlGoods(listenerContainer, 0);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlGoods1(RedisConnectionFactory factory) { // public Subscription subscriptionSqlGoods1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlGoods(listenerContainer, 1); // var subscription = receiveSqlGoods(listenerContainer, 1);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlGoods2(RedisConnectionFactory factory) { // public Subscription subscriptionSqlGoods2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlGoods(listenerContainer, 2); // var subscription = receiveSqlGoods(listenerContainer, 2);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
/* -------------------------------------------------------- | 店铺优惠券相关 */ // /* -------------------------------------------------------- | 店铺优惠券相关 */
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon0(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon0(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 0); // var subscription = receiveSqlCoupon(listenerContainer, 0);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon1(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon1(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 1); // var subscription = receiveSqlCoupon(listenerContainer, 1);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon2(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon2(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 2); // var subscription = receiveSqlCoupon(listenerContainer, 2);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon3(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon3(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 3); // var subscription = receiveSqlCoupon(listenerContainer, 3);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon4(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon4(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 4); // var subscription = receiveSqlCoupon(listenerContainer, 4);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon5(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon5(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 5); // var subscription = receiveSqlCoupon(listenerContainer, 5);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon6(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon6(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 6); // var subscription = receiveSqlCoupon(listenerContainer, 6);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon7(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon7(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 7); // var subscription = receiveSqlCoupon(listenerContainer, 7);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon8(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon8(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 8); // var subscription = receiveSqlCoupon(listenerContainer, 8);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
@Bean // @Bean
public Subscription subscriptionSqlCoupon9(RedisConnectionFactory factory) { // public Subscription subscriptionSqlCoupon9(RedisConnectionFactory factory) {
var listenerContainer = this.buildStreamMessageListenerContainer(factory); // var listenerContainer = this.buildStreamMessageListenerContainer(factory);
var subscription = receiveSqlCoupon(listenerContainer, 9); // var subscription = receiveSqlCoupon(listenerContainer, 9);
listenerContainer.start(); // listenerContainer.start();
return subscription; // return subscription;
} // }
//
/* -------------------------------------------------------- | */ // /* -------------------------------------------------------- | */
} //}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment