文章已收录在 GitHub JavaKeeper ,N 线互联网开发、面试必备技能兵器谱,笔记自取。 微信搜「 JavaKeeper 」程序员成长充电站,互联网技术武道场。无套路领取 500+ 本电子书和 30+ 视频教学和源码。 ..
2022-06-09
CAP设计一个分布式系统必定会遇到一个问题—— 因为分区容忍性(partition tolera..
点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技..
2022-03-01
zk 分布式
CAP设计一个分布式系统必定会遇到一个问题—— 因为分区容忍性(partition tolerance)的存在,就必定要求我们需要在系统可用性(availability)和数据一致性(consistency)中做出权衡 。这就是著名的 CAP 定理。 大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区容错的意思是,..
JVM
点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取 在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。 本篇主要包括如下 OOM 的介绍和示例: java.lang.StackOverflowErr..
Redis
现如今的互联网应用大都是采用 分布式系统架构 设计的,所以 消息队列 已经逐渐成为企业应用系统 内部通信 的核心手段, 它具有 低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。 当前使用较多的 消息队列 有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分数据库 如 Redis、MyS..
2022-02-09
一、Redis 集群是啥我们先回顾下前边介绍的几种 Redis 高可用方案:持久化、主从同步和哨兵机制。但这些方案仍有痛点,其中最主要的问题就是存储能力受单机限制,以及没办法实现写操作的负载均衡。 Redis 集群刚好解决了上述问题,实现了较为完善的高可用方案。 1.1 Redis 集群化集群,即 Redis Cluster,是 Redis 3.0 开..
2021-10-11
文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱 假设现在有这样一个业务,用户获取的某些数据来自第三方接口信息,为避免频繁请求第三方接口,我们往往会加一层缓存,缓存肯定要有时效性,假设我们要存储的结构是 hash(没有String的’SET anotherkey “will expire in a minute” E..
2021-10-09
我们知道 Reids 提供了主从模式的机制,来保证可用性,可是如果主库发生故障了,那就直接会影响到从库的同步,怎么办呢? 所以,如果主库挂了,我们就需要运行一个新主库,比如说把一个从库切换为主库,把它当成主库。这就涉及到三个问题: 主库真的挂了吗? 该选择哪个从库作为主库? 怎么把新主库的相关信息通知给从库和客户端呢? 围绕这 3 个问题,我们来..
2021-10-08
我们总说的 Redis 具有高可靠性,其实,这里有两层含义:一是数据尽量少丢失,二是服务尽量少中断。 AOF 和 RDB 保证了前者,而对于后者,Redis 的做法就是增加副本冗余量,将一份数据同时保存在多个实例上,来避免单点故障。即使有一个实例出现了故障,需要过一段时间才能恢复,其他实例也可以对外提供服务,不会影响业务使用。 这就是 Redis 的..
Design Pattern
一、开场假设我们有这样的一个需求,读取文件内容,并过滤包含 “hello” 的字符串,然后将其反转 Linux 一行搞定 cat hello.txt | grep "hello" | rev 用世界上最好语言 Java 实现也很简单 File file = new File("/Users/starfish/Docum..
2021-08-01
带着疑问,或者是面试问题去看 Redis 的持久化,或许会有不一样的视角,这几个问题你废了吗? Redis 有哪几种持久化方式?有什么区别? 如何选择合适的持久化方式?项目中用的哪种,为什么? aof 如果文件越来越大,怎么办? Redis 采用 aof 持久化时,数据是先写入内存,还是先写入日志,为什么? Redis 的数据全部在内存..
2020-12-20