项目中遇到的难题
0.Long类型精度损失的问题
# 前后端进行参数传入传出的时候
# 在实体类加上这个注解
@JsonSerialize(using = ToStringSerializer.class)
1.分布式事务
# 多服务多数据源
# 对远程调用的增删改
2.线程池异步处理和分布式锁
# 获取热点文章使用线程池异步处理
首先创建线程池注册成bean
在热点评论的点赞方法上面添加@Async注解
# 文章点赞功能
使用 分布式锁
3.下单支付服务对数据表的涉及
# 原先的企业配置信息表
将所需要的第三方的配置信息(比如阿里商户appid、阿里公钥、商户私钥等)用行字段存储
这样如果后面需要添加第三方支付平台要需要添加字段,还要修改业务逻辑,会非常麻烦
# 优化:列式存储,将key和value分别进行维护
我们使用列式存储,将原先的一张表分开为两张表
一张表(pay_config)存储第三方的配置信息的key(比如阿里商户appid、阿里公钥、商户私钥等)和支付类型(比如支付宝1,微信2)
然后两外一张表(pay_configvalue)存储的是相对应的值,商户id,状态等
两张表通过pay_config.id和商户号关联