上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 76 下一页
摘要: Hashtable 初始容量是11 ,扩容 方式为2N+1; HashMap 初始容量是16,扩容方式为2N; 阿里的人突然问我为啥扩容因子是0.75,回来总结了一下; 提高空间利用率和 减少查询成本的折中,主要是泊松分布,0.75的话碰撞最小, HashMap有两个参数影响其性能:初始容量和加载因 阅读全文
posted @ 2019-09-06 08:58 aspirant 阅读(35826) 评论(5) 推荐(11) 编辑
摘要: 还有一篇 讲解lock的实现原理,参考:解决多线程安全问题-无非两个方法synchronized和lock 具体原理以及如何 获取锁AQS算法 (百度-美团) synchronized 不管是读还是写,如果前面有锁,只能是等待, lock中有读写锁,可以做到读读并发,读写互斥,写写互斥,但是sync 阅读全文
posted @ 2019-09-06 08:29 aspirant 阅读(92604) 评论(23) 推荐(43) 编辑
摘要: 在项目中使用到了ObjectMapper,故研究了一下。现将自己的几个测试用例和大家分享一下~ 首先在pom.xml文件中,加入依赖: 创建一个实体类XwjUser: 先创建一个ObjectMapper,然后赋值一些属性: 1、对象与json字符串、byte数组 运行结果: 注意,对象转json字符 阅读全文
posted @ 2019-09-04 14:53 aspirant 阅读(3234) 评论(0) 推荐(0) 编辑
摘要: 1、引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目方面提供参考。 本文作者的另两 阅读全文
posted @ 2019-09-04 09:23 aspirant 阅读(989) 评论(0) 推荐(0) 编辑
摘要: 阿里的人问我 缓存雪崩(大量数据在同一时间过期了)了如何处理,缓存击穿了如何处理,回答的很烂,做了总结: 把redis作为缓存使用已经是司空见惯,但是使用redis后也可能会碰到一系列的问题,尤其是数据量很大的时候,经典的几个问题如下: 1. 缓存穿透 在大多数互联网应用中,缓存的使用方式如下图所示 阅读全文
posted @ 2019-09-04 08:45 aspirant 阅读(4336) 评论(2) 推荐(1) 编辑
摘要: CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。 CAP原则又称CAP定理,指的是在一个分布式系统中, 阅读全文
posted @ 2019-09-03 19:44 aspirant 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: 结论: 对于单机单库系统,数据一致性可通过关系型数据库的事务来满足,而且ACID特性中的C是指强一致性,各数据库本身都支持,而且很成熟。 分布式系统则需要以BASE理论作为指导,即以基本可用性和最终一致性作为目标。 远程RPC调用是一致性问题主要原因,异步解耦+消息队列可作为分布式系统满足最终一致性 阅读全文
posted @ 2019-09-03 19:41 aspirant 阅读(2021) 评论(0) 推荐(1) 编辑
摘要: 对于一个需要处理高并发的系统而言,可以从多个层面去解决这个问题。 1、数据库系统:数据库系统可以采取集群策略以保证某台数据库服务器的宕机不会影响整个系统,并且通过负载均衡策略来降低每一台数据库服务器的压力(当然用一台服务器应付一般而言没啥问题,找一台当备机放着应付宕机就行,如果一台应付不了,那么再加 阅读全文
posted @ 2019-09-03 09:22 aspirant 阅读(3223) 评论(2) 推荐(3) 编辑
摘要: 还有一篇文章 讲解guava如何删除过期数据的,与redis不同,guava没有维护线程删除过期key,只是在设置 key 或者 读取key的时候,顺带删除参考:GuavaCache简介(一)是轻量级的框架 少量数据,并且 过期时间相同 可以用 GuavaCache 内存上限Redis可以通过 ma 阅读全文
posted @ 2019-09-03 08:51 aspirant 阅读(1979) 评论(0) 推荐(0) 编辑
摘要: 三、如何保证消息的顺序性 拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点;或者就一个queue但是对应一个consumer,然后这个consumer内部用内存队列做排队,然后分发给底层不同的worker来处理 写入一个partition中的数据一定是有 阅读全文
posted @ 2019-09-03 08:44 aspirant 阅读(6355) 评论(2) 推荐(1) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 76 下一页