!125 优化redisson配置

Merge pull request !125 from OceansDeep/feature/pg
This commit is contained in:
OceansDeep 2022-02-11 06:57:37 +00:00 committed by Gitee
commit 191709e983
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
14 changed files with 65 additions and 132 deletions

View File

@ -1,21 +0,0 @@
---
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: lilishop
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 24
connectionPoolSize: 64
database: 0
dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.MarshallingCodec> {}
transportMode: "NIO"

View File

@ -1,21 +0,0 @@
---
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: lilishop
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 24
connectionPoolSize: 64
database: 0
dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.MarshallingCodec> {}
transportMode: "NIO"

View File

@ -1,21 +0,0 @@
---
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: lilishop
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 24
connectionPoolSize: 64
database: 0
dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.MarshallingCodec> {}
transportMode: "NIO"

View File

@ -1,12 +1,17 @@
package cn.lili.cache.config.redis;
import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.ClusterServersConfig;
import org.redisson.config.Config;
import org.redisson.config.SentinelServersConfig;
import org.redisson.config.SingleServerConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@ -20,7 +25,6 @@ import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.ClassPathResource;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
@ -31,9 +35,10 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.io.IOException;
import java.time.Duration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -54,6 +59,9 @@ public class RedisConfig extends CachingConfigurerSupport {
@Value("${lili.cache.timeout:7200}")
private Integer timeout;
@Autowired
private RedisProperties redisProperties;
/**
* 当有多个管理器的时候必须使用该注解在一个管理器上注释表示该管理器为默认的管理器
@ -105,9 +113,41 @@ public class RedisConfig extends CachingConfigurerSupport {
}
@Bean(destroyMethod = "shutdown")
public RedissonClient redisson() throws IOException {
return Redisson.create(
Config.fromYAML(new ClassPathResource("redisson.yaml").getInputStream()));
public RedissonClient redisson() {
Config config = new Config();
if (redisProperties.getSentinel() != null && !redisProperties.getSentinel().getNodes().isEmpty()) {
// 哨兵模式
SentinelServersConfig sentinelServersConfig = config.useSentinelServers();
sentinelServersConfig.setMasterName(redisProperties.getSentinel().getMaster());
List<String> sentinelAddress = new ArrayList<>();
for (String node : redisProperties.getCluster().getNodes()) {
sentinelAddress.add("redis://" + node);
}
sentinelServersConfig.setSentinelAddresses(sentinelAddress);
if (CharSequenceUtil.isNotEmpty(redisProperties.getSentinel().getPassword())) {
sentinelServersConfig.setSentinelPassword(redisProperties.getSentinel().getPassword());
}
} else if (redisProperties.getCluster() != null && !redisProperties.getCluster().getNodes().isEmpty()) {
// 集群模式
ClusterServersConfig clusterServersConfig = config.useClusterServers();
List<String> clusterNodes = new ArrayList<>();
for (String node : redisProperties.getCluster().getNodes()) {
clusterNodes.add("redis://" + node);
}
clusterServersConfig.setNodeAddresses(clusterNodes);
if (CharSequenceUtil.isNotEmpty(redisProperties.getPassword())) {
clusterServersConfig.setPassword(redisProperties.getPassword());
}
} else {
SingleServerConfig singleServerConfig = config.useSingleServer();
singleServerConfig.setAddress("redis://" + redisProperties.getHost() + ":" + redisProperties.getPort());
if (CharSequenceUtil.isNotEmpty(redisProperties.getPassword())) {
singleServerConfig.setPassword(redisProperties.getPassword());
}
}
return Redisson.create(config);
}
/**

View File

@ -1,7 +1,7 @@
package cn.lili.cache.limit.interceptor;
import cn.lili.cache.limit.enums.LimitTypeEnums;
import cn.lili.cache.limit.annotation.LimitPoint;
import cn.lili.cache.limit.enums.LimitTypeEnums;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.utils.IpUtils;
@ -17,7 +17,6 @@ import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
/**

View File

@ -1,7 +1,6 @@
package cn.lili.common.aop.annotation;
import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;
/**
* 防止重复提交注解

View File

@ -26,7 +26,7 @@ public class DemoInterceptor {
@Before("@annotation(demoSite)")
public void doAfter(DemoSite demoSite) {
if (systemSettingProperties.getIsDemoSite()) {
if (Boolean.TRUE.equals(systemSettingProperties.getIsDemoSite())) {
throw new ServiceException(ResultCode.DEMO_SITE_EXCEPTION);
}
}

View File

@ -1,15 +1,11 @@
package cn.lili.common.utils;
import cn.lili.cache.Cache;
import com.alibaba.fastjson.JSON;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.concurrent.TimeUnit;
/**
* SnowflakeInitiator
@ -25,7 +21,7 @@ public class SnowflakeInitiator {
/**
* 缓存前缀
*/
private static String KEY = "{Snowflake}";
private static final String KEY = "{Snowflake}";
@Autowired
private Cache cache;

View File

@ -106,13 +106,14 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
}
@Override
@Transactional(rollbackFor = Exception.class)
public MemberEvaluationDTO addMemberEvaluation(MemberEvaluationDTO memberEvaluationDTO, Boolean isSelf) {
//获取子订单信息
OrderItem orderItem = orderItemService.getBySn(memberEvaluationDTO.getOrderItemSn());
//获取订单信息
Order order = orderService.getBySn(orderItem.getOrderSn());
//检测是否可以添加会员评价
if (isSelf) {
if (Boolean.TRUE.equals(isSelf)) {
checkMemberEvaluation(orderItem, order);
}
//获取用户信息

View File

@ -2,34 +2,30 @@ package cn.lili.modules.member.serviceimpl;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.system.entity.dto.PointSettingItem;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.CurrencyUtil;
import cn.lili.common.utils.DateUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.modules.member.entity.dos.MemberSign;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.mapper.MemberSignMapper;
import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.member.service.MemberSignService;
import cn.lili.modules.system.entity.dos.Setting;
import cn.lili.modules.system.entity.dto.PointSetting;
import cn.lili.modules.system.entity.dto.PointSettingItem;
import cn.lili.modules.system.entity.enums.SettingEnum;
import cn.lili.modules.system.service.SettingService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 会员签到业务层实现
@ -74,7 +70,7 @@ public class MemberSignServiceImpl extends ServiceImpl<MemberSignMapper, MemberS
memberSign.setMemberId(authUser.getId());
memberSign.setMemberName(authUser.getUsername());
//如果size大于0 说明昨天已经签到过获取昨天的签到数反之新签到
if (signs.size() > 0) {
if (!signs.isEmpty()) {
//截止目前为止 签到总天数 不带今天
Integer signDay = signs.get(0).getSignDay();
memberSign.setSignDay(CurrencyUtil.add(signDay, 1).intValue());

View File

@ -82,6 +82,7 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
*/
@Override
@CacheEvict(key = "#memberId")
@Transactional(rollbackFor = Exception.class)
public void receiveBuyerCoupon(String couponId, String memberId, String memberName) {
Coupon coupon = couponService.getById(couponId);
if (coupon != null && !CouponGetEnum.FREE.name().equals(coupon.getGetType())) {
@ -94,6 +95,7 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
@Override
@CacheEvict(key = "#memberId")
@Transactional(rollbackFor = Exception.class)
public void receiveCoupon(String couponId, String memberId, String memberName) {
Coupon coupon = couponService.getById(couponId);
if (coupon != null) {
@ -219,6 +221,7 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
@Override
@CacheEvict(key = "#memberId")
@Transactional(rollbackFor = Exception.class)
public void used(String memberId, List<String> ids) {
if (ids != null && !ids.isEmpty()) {
List<MemberCoupon> memberCoupons = this.listByIds(ids);
@ -247,6 +250,7 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
*/
@Override
@CacheEvict(key = "#memberId")
@Transactional(rollbackFor = Exception.class)
public void cancellation(String memberId, String id) {
LambdaUpdateWrapper<MemberCoupon> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(MemberCoupon::getId, id);
@ -260,6 +264,7 @@ public class MemberCouponServiceImpl extends ServiceImpl<MemberCouponMapper, Mem
* @param couponIds 优惠券id集合
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void closeMemberCoupon(List<String> couponIds) {
LambdaUpdateWrapper<MemberCoupon> memberCouponLambdaUpdateWrapper = new LambdaUpdateWrapper<MemberCoupon>()
.in(MemberCoupon::getCouponId, couponIds)

View File

@ -3,6 +3,8 @@ package cn.lili.modules.system.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 积分签到设置
*
@ -10,7 +12,7 @@ import lombok.Data;
* @since 2021-02-26 11:48
*/
@Data
public class PointSettingItem implements Comparable<PointSettingItem> {
public class PointSettingItem implements Comparable<PointSettingItem>, Serializable {
@ApiModelProperty(value = "签到天数")
@ -21,7 +23,7 @@ public class PointSettingItem implements Comparable<PointSettingItem> {
private Integer point;
public Integer getPoint() {
if (point != null || point < 0) {
if (point == null || point < 0) {
return 0;
}
return point;

View File

@ -1,21 +0,0 @@
---
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: lilishop
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 24
connectionPoolSize: 64
database: 0
dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.MarshallingCodec> {}
transportMode: "NIO"

View File

@ -1,21 +0,0 @@
---
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: lilishop
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 24
connectionPoolSize: 64
database: 0
dnsMonitoringInterval: 5000
threads: 16
nettyThreads: 32
codec: !<org.redisson.codec.MarshallingCodec> {}
transportMode: "NIO"