![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日记
xTinyer
这个作者很懒,什么都没留下…
展开
-
接口冥等与kafka和docker部署
如何实现接口的冥等性? 其实这个问题就是方式页面大量重复请求和重复提交的问题,这种问题可以根据接口调用规则,给相同时间一定时间的调用绑定一个唯一id,id可以放在header里面,比如支付订单时,不能让用户多次支付同一个订单,这是你就可以把订单id当成唯一的id了,在后台通过分布式锁的方案来加锁实现kafka的一些了解kafka相对与rabbitMq是采取分布式集群来部署的,比较适合处理高并发的业务,因为kafka对接的是流式对象,每条记录都是包含key,value和时间戳的,kafka里面是.原创 2021-04-01 20:05:58 · 100 阅读 · 0 评论 -
jvm的划分与微服务注册/追踪/监控
jvm发展历史:serial(单线程jvm)--cms(经典分代jvm)---G1(最新jvm,采用元空间,不再分代)jvm 现在主流用的是jdk8,所以还是需要了解分代的,jvm主要分为:方法区(也叫永久代),堆,虚拟机栈,本地方法栈,指令控制区其中 方法区 主要是存储类型的信息,常量定义与值,方法的定义,常量池等,堆主要就是存储对象的,虚拟机栈一般都是存储方法内局部变量,操作,动态链接等,本地方法栈就是存储本地方法的,如指令控制区就是存储指令的其中栈的寿命随着线程的生死而生死,就是出栈和入栈原创 2021-03-31 20:16:10 · 116 阅读 · 0 评论 -
分布式锁的几种实现
解决超卖问题的几种方式 用mysql实现,在mysql表中存储一张表专门记录加锁对象的id的记录,设置过期时间,当过期时间到了由mysql的计划任务自动删除记录,多个服务同时去请求锁会先访问数据库的这种表。这种方法缺点是mysql资源开销大,而且mysql一般都是集群部署,容易出现主从同步延迟问题,导致不同服务读取的结果不同 用redis实现,redis的java api设置分布式锁很简单,只是需要在设置分布式锁的逻辑加上watch dog逻辑也就是在加锁的逻辑中另起一个线程不断去判断当前设置的原创 2021-03-30 20:01:58 · 68 阅读 · 0 评论