总结一下:微服务下的几个难点问题及常见的解决方案
环境
springboot1.5.9
记录一下项目开发和技术研究中遇到的微服务难点,能够解决项目问题的才是适合的,目前能力有限,只能持续迭代开发。
1.接口幂等
参考:https://cloud.tencent.com/developer/news/136205
https://blog.csdn.net/xichenguan/article/details/78085801
场景:同一个订单多次执行;
电商订单的创建;
页面的多次提交问题;
并发下的计数问题;
大型系统中的消息消费问题;
解决:
1)选择为业务单号加上唯一的索引或者组合索引,在并发的场景中,只有第一笔插入的交易请求能够成功,后续的请求哪怕是慢1ms或者更短时间,都会触发数据库的唯一索引异常而失败,那么你可以捕获这个异常;不能仅仅依赖先去查询一下订单,
2)Redis是提供分布式节点下的原子事务操作的,
又或者你想把幂等放在服务的最前端,减少实际服务处