摘要: 1、Eureka承载大规模系统每天千万级访问的原理 1)、首先每个服务的eureka client组件默认30秒发送一个请求到eureka server拉取最近有变化的服务信息; 2)、eureka还有一个心跳机制,各个eureka client每隔30秒会发送一个心跳到eureka server告 阅读全文
posted @ 2018-12-18 09:16 几近虚年 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 1、消息的优缺点、选择哪种 常见的消息插件有Kafka、ActiveMQ、RabbitMQ、RocketMQ... 优点: 解耦,使得子系统之间的耦合关系降低,只需要关注消息的发送与接收,不用担心子系统1挂了以后对子系统2产生影响; 异步,系统直接的数据传输不需要直接请求,直接发送消息,其他系统接收 阅读全文
posted @ 2018-12-18 08:34 几近虚年 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1、线程的五种状态 1)、新建 当new创建一个线程,例如new thread(r),线程还没开始运行,处于新建状态; 2)、就绪 新建的新线程并不会自动运行,要执行需要调用start()方法创建线程运行的系统资源,返回后,此时线程就处于就绪状态; 但是处于就绪状态的线程也并不是就能立即执行run( 阅读全文
posted @ 2018-12-18 08:31 几近虚年 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1、分布式锁 需要满足的要求 1)、排他性:同一时间只会有一个客户端能获取到锁,其他客户端同时不能获取; 2)、避免死锁:锁在一段时间后一定会被释放; 3)、高可用:获取或释放锁的机制必须高可用且性能佳。 实现方式: a、基于数据库实现 基于数据库的乐观锁:在数据库表中引入一个版本号字段。在修改数据 阅读全文
posted @ 2018-12-18 08:29 几近虚年 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 1、如何对每秒上千场景下的分布式锁高并发优化 如果对一个商品不加锁,就可能出现库存超卖的情况(库存15,2个用户各买10个,没有锁的情况可能出现-5的最终库存)。所以我们可以用: 悲观锁、乐观锁、分布式锁、队列串行化、异步队列分散、Redis原子操作等等... 现在限定了分布式锁,有个问题:如果一套 阅读全文
posted @ 2018-12-18 08:27 几近虚年 阅读(344) 评论(0) 推荐(0) 编辑