上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 49 下一页

2021年10月14日

多线程 - 线程池的4种拒绝策略

摘要: 1.拒绝时机 线程池会在以下两种情况下会拒绝新提交的任务 当我们调用 shutdown 等方法关闭线程池的时候,如果此时继续向线程池提交任务,就会被拒绝当任务队列(workQueue)已满,而且线程达到最大线程数(maximumPoolSize),如果再增加任务,也会被拒绝 2.拒绝策略 2.1 核 阅读全文

posted @ 2021-10-14 11:07 frank_cui 阅读(1031) 评论(0) 推荐(0)

2021年10月13日

DevOps - 测试框架 Junit v.s. TestNg

摘要: 一、总结 TestNG与JUnit的相同点 使用annotation,且大部分annotation相同。 都可以进行单元测试(Unit test)。 都是针对Java测试的工具。 TestNG与JUnit的不同点 JUnit只能进行单元测试,不能做“依赖性测试”;TestNG可以进行单元测试,也能做 阅读全文

posted @ 2021-10-13 20:44 frank_cui 阅读(154) 评论(0) 推荐(0)

多线程 - yield()能立马让线程让出CPU时间片么?

摘要: 答案:不能 线程之间的关系,是“协同式”的,不是“抢占式”的。 yield不会强制让渡CPU, interrupt也不会强制停止线程。 根据源码注释: 调用yield,只是想处理器processor暗示:“当前线程愿意让渡yield时间片”。但是处理器可以自由的忽略这个暗示。 这就说明了:线程之间的 阅读全文

posted @ 2021-10-13 14:56 frank_cui 阅读(375) 评论(0) 推荐(0)

Financial - Bid Price vs Ask Price

摘要: 定义 Bid Price:buyer愿意出的最高价格,去购买这个债券 -- 一般高于现在的价格 Ask Price:seller愿意出的最低价格,去出售这个债券 -- 一般低于现在的价格 阅读全文

posted @ 2021-10-13 12:18 frank_cui 阅读(592) 评论(0) 推荐(0)

2021年10月12日

Financial - clean price 净价交易 VS dirty price 全价交易

摘要: 全价交易dirty price 是指债券价格中将应计利息(Accrued interest)包含在内的债券交易方式,其中应计利息Accrued interest是指从上次付息日到购买日债券的利息。应计利息是根据票面利率coupon rate计算出来的。 净价交易是以不含利息的价格进行的交易。这种交易 阅读全文

posted @ 2021-10-12 23:44 frank_cui 阅读(774) 评论(0) 推荐(0)

2021年10月11日

JVM - 为什么要有Survivor区?为什么要有两个Survivor区?

摘要: 一、为什么要有Survivor区 如果没有Survivor,Eden区每进行一次Minor GC,存活的对象就会被送到老年代。老年代很快被填满,触发Major GC。 又因为老年代的内存空间远大于新生代,进行一次Full GC消耗的时间比Minor GC长得多。频发的Full GC消耗的时间是非常可 阅读全文

posted @ 2021-10-11 23:20 frank_cui 阅读(685) 评论(0) 推荐(0)

FI - 情景分析是什么?

摘要: TODO... 阅读全文

posted @ 2021-10-11 22:40 frank_cui 阅读(201) 评论(0) 推荐(0)

Archi - 如何将单体应用改造为微服务?

摘要: 总结 1.分布式组件的优先级 1、服务发现、服务路由、服务容错:这是最基本的微服务基础设施。 2、接口框架、API 网关:主要是为了提升开发效率,接口框架是提升内部服务的开发效率,API 网关是为了提升与外部服务对接的效率。 3、自动化部署、自动化测试、配置中心:主要是为了提升测试和运维效率。 4、 阅读全文

posted @ 2021-10-11 14:50 frank_cui 阅读(286) 评论(0) 推荐(0)

Archi - 一个热榜功能怎么设计,怎么设计缓存?

摘要: 总结 关键点1:Redis 有序集合(sorted set) Redis 有序集合sorted set和集合一样也是 string 类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个 double 类型的分数。Redis 正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成 阅读全文

posted @ 2021-10-11 13:20 frank_cui 阅读(743) 评论(0) 推荐(0)

2021年10月8日

RabbitMQ - RabbitMQ 集群

摘要: 一、关键概念 1.1 元数据 元数据包含以下内容: queue元数据:queue名称、属性 exchange元数据:exchange名称、类型、属性 binding元数据:exchange和queue之间、exchange和exchange之间的绑定关系 vhost元数据:vhost内部的命名空间、 阅读全文

posted @ 2021-10-08 00:49 frank_cui 阅读(932) 评论(0) 推荐(0)

2021年10月7日

RabbitMQ - RabbitMQ 消息发送过程?

摘要: 建立连接Connection。由producer和consumer创建连接,连接到broker的物理节点上。 建立消息Channel。Channel是建立在Connection之上的,一个Connection可以建立多个Channel。producer连接Virtual Host 建立Channel 阅读全文

posted @ 2021-10-07 23:31 frank_cui 阅读(528) 评论(0) 推荐(0)

2021年10月6日

RabbitMQ - 怎么避免消息丢失?

摘要: 一、数据丢失的三个场景 一条消息从生产者发送到消费者消费的过程: 可以看出,一条消息整个过程要经历两次的网络传输: 从生产者发送到RabbitMQ服务器,从RabbitMQ服务器发送到消费者 在消费者未消费前存储在队列(Queue)中 所以可以知道,有三个场景下是会发生消息丢失的: 生产者发送消息到 阅读全文

posted @ 2021-10-06 21:21 frank_cui 阅读(703) 评论(0) 推荐(0)

2021年10月4日

RabbitMQ - Virtual Host 的作用是什么?

摘要: vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列、绑定、交换器和权限控制; vhost通过在各个实例间提供逻辑上分离,允许你为不同应用程序安全保密地运行数据; vhost是AMQP概念的基础,必须在连接时进行指定,RabbitMQ包含了默认vhost:“/”; 当在Rabbi 阅读全文

posted @ 2021-10-04 16:33 frank_cui 阅读(1888) 评论(0) 推荐(0)

RabbitMQ - RabbitMQ的使用场景有哪些?

摘要: 总结 1.异步处理: 用户注册后,发送“注册邮件”和“注册短信”。用户注册完成后,提交任务到 MQ,发送模块并行获取 MQ 中的任务。 2.系统解耦:比如用注册完成,再加一个发送微信通知。只需要新增发送微信消息模块,从 MQ 中读取任务,发送消息即可。无需改动注册模块的代码,这样注册模块与发送模块通 阅读全文

posted @ 2021-10-04 16:26 frank_cui 阅读(751) 评论(0) 推荐(0)

2021年10月3日

Redis - Redis缓存和Mysql数据库如何保证数据一致性

摘要: 一、缓存和数据库一致性问题 读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。因为写和读是并发的,没法保证顺序,就会出现缓存和数据库的数据不一致的问题。 无论是“先删除缓存,再写库”,还是“先写MySQL数据 阅读全文

posted @ 2021-10-03 17:56 frank_cui 阅读(1052) 评论(0) 推荐(1)

2021年10月1日

Redis - 管道技术 pipeline

摘要: 一、管道概念 1.1 为什么要有redis管道? redis本身处理速度很快,但是如果你连续调用10条redis命令,它们要有10个网络来回,这速度就会降下来了,那么有没有办法把这10条命令一起发送到服务端呢?有,它就是redis管道 1.2 redis管道的本质是什么? redis管道的本质是将要 阅读全文

posted @ 2021-10-01 00:52 frank_cui 阅读(1018) 评论(0) 推荐(1)

2021年9月30日

Redis - Redis中如何找出已知前缀的key?

摘要: 方法一:keys 指令 - 会导致线程阻塞,不推荐 KEYS pattern #用法 KEYS t?? #查询如two,ttt这类的key KEYS * #查询所有key Redis的单线程的。KEYS命令一次性返回所有匹配的key,keys指令会导致线程阻塞一段时间,线上服务会停顿,直到指令执行完 阅读全文

posted @ 2021-09-30 10:15 frank_cui 阅读(5474) 评论(0) 推荐(0)

Redis - 哈希槽(Hash Slot)

摘要: 一、哈希槽介绍 Redis Cluster在设计中没有使用一致性哈希(Consistency Hashing),而是使用数据分片引入哈希槽(hash slot)来实现; 一个 Redis Cluster包含16384(0~16383)个哈希槽(补充:为什么redis集群的最大槽数是16384个?), 阅读全文

posted @ 2021-09-30 01:27 frank_cui 阅读(9343) 评论(2) 推荐(0)

Redis - 为何redis集群用哈希槽,而不用一致性哈希?

摘要: 总结 1:Hash slot(slot 空间)对比一致性哈希(环空间) 可以做到数据分配更均匀 有 N 个节点,每个节点是准确的承担 1/N 的容量 一致性哈希,它使用的是hash函数返回的值是随机的。 2:Hash slot 更便捷的新增/删除节点 假设已有R1、R2、R3 节点 若新增 R4 节 阅读全文

posted @ 2021-09-30 01:04 frank_cui 阅读(2928) 评论(0) 推荐(0)

2021年9月29日

Redis - 为什么redis集群的最大槽数是16384个?

摘要: 为什么是16384(2^14)个? 在redis节点发送心跳包时需要把所有的槽放到这个心跳包里,以便让节点知道当前集群信息,16384=16k,在发送心跳包时使用char进行bitmap压缩后是2k(2 * 8 (8 bit) * 1024(1k) = 16K),也就是说使用2k的空间创建了16k的 阅读全文

posted @ 2021-09-29 22:25 frank_cui 阅读(2010) 评论(1) 推荐(0)

上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 49 下一页

导航

levels of contents