如何实现接口的冥等性?
其实这个问题就是方式页面大量重复请求和重复提交的问题,这种问题可以根据接口调用规则,给相同时间一定时间的调用绑定一个唯一id,id可以放在header里面,比如支付订单时,不能让用户多次支付同一个订单,这是你就可以把订单id当成唯一的id了,在后台通过分布式锁的方案来加锁实现
kafka的一些了解
kafka相对与rabbitMq是采取分布式集群来部署的,比较适合处理高并发的业务,因为kafka对接的是流式对象,每条记录都是包含key,value和时间戳的,kafka里面是一个个topic,每个topic都允许多个消费者来订阅,最关键一点是消息消费不会删除,只有等过了策略设置的消息保存时间才会消息消失掉,而且kafka是通过分区日志来保存消息的,每个topic都有一个或多个分区,一个分区因为集群部署的关系含有一个leader和多个follower,确保消息可靠性,而每个分区的消息是有序,消费者可以通过选定偏移量来随机访问分区上的消息,但是多个分区的消息就不是有序的,还有就是要注意分区的数量一定要大于每个消费组实例的数量,确保消费组的每个实例都能分配到一个分区
docker部署相关了解
现在都采用docker去打包部署项目,那docker是什么呢?docker直译为码头工人,安装docker,安装docker加速器,docker创建镜像,docker从docker registry拉取镜像,docker建立私有docker registry仓库,docker运行镜像创建容器
这么看起来docker有点像是maven,maven能从仓库拉取jar并通过插件运行项目,但是还是需要一些本地资源如java/redis/mysql之类的,但是docker就不一样了,它不仅可以拉去包还可以拉去很多软件然后创建一个容器让项目在容器里面跑起来,
很厉害,主要是编写好dockerfile里面的脚本
在实际项目,可以在maven集成docker插件,然后运行mvn clean package docker:build 直接打包创建容器运行,真是越来越智能化了