摘要:
开篇 例如我们常见的 kafka、nginx 以及 tomcat 等底层都用的这类技术,这里暂且用 kafka 来列举案例。 当我们从 kafka 读取数据的时候,我们会调用 read 方法读取指定的内容,然后调用 write 方法,将字节流写到 socket 中,那么,我们调用这两个方法,在 OS 阅读全文
摘要:
网上充斥着各类类似于这样的文章:rpc 比 http 快了多少倍?既然有了 http,为什么还要用 rpc 调用等等。遇到这类文章,说明对 http 和 rpc 是由理解误区的。 这里再次重复强调一遍,通信协议不是 rpc 最重要的部分,不要被这类回答带偏。如果要了解 rpc 请更多的去了解服务治理 阅读全文
摘要:
概念 Redis 事务的本质是通过 MULTI、EXEC、WATCH 等一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 redis 事务的三个阶段 事务开始 MULTI 阅读全文
摘要:
序列化 序列化是将一个对象变成一个二进制流就是序列化, 反序列化是将二进制流转换成对象。 为什么要序列化? 1. 减小内存空间和网络传输的带宽 2. 分布式的可扩展性 3. 通用性,接口可共用。 dubbo RPC是dubbo体系中最核心的一种高性能、高吞吐量的远程调用方式,我喜欢称之为多路复用的T 阅读全文
摘要:
简介 我们知道 Redis 中有五种基本结构,其中有一个叫 有序列表zset 的数据结构,它类似于 Java 中的 SortedSet 和 HashMap 的结合体,一方面它是一个 set 保证了内部 value 的唯一性,另一方面又可以给每个 value 赋予一个排序的权重值 score,来达到 阅读全文
摘要:
正常我们大家使用缓存都是这个原理,即: 如果我们的数据在缓存里边有,那么就直接取缓存的。 如果缓存里没有我们想要的数据,我们会先去查询数据库,然后 将数据库查出来的数据写到缓存中。 最后将数据返回给请求。 如果仅仅查询的话,缓存的数据和数据库的数据是没问题的。但是,当我们要 更新 时候呢?各种情况很 阅读全文
摘要:
1、为什么需要分布式锁 随着互联网世界的发展,单体应用已经越来越无法满足复杂互联网的高并发需求,转而慢慢朝着分布式方向发展。所以同样,我们需要引入 分布式锁 来解决分布式应用之间 访问共享资源 的并发问题。 一般情况下,我们使用分布式锁主要有两个场景: 避免不同节点重复相同的工作:比如用户执行了某个 阅读全文
摘要:
基础篇 1、int和Integer的区别 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数 阅读全文
摘要:
缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机或者大量缓存集中在某一个时间段失效。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别 阅读全文
摘要:
始因 有时候线上可能会遇到这样的问题: 明明我设置了对应的 key 以及超时时间,但是在使用的过程当中发现对应的 key 丢失了,尤其是在用户账号登录状态保持有效期的场景下,会越发的明显。即:一个用户正常登录会产生一个有效期为一天的 token,这样用户再次进入网站是不需要登录的。但是发生 key 阅读全文
摘要:
背景 要想完全彻底的搞清楚 epoll 底层原理,我们有必要了解一下整个 IO 的发展历程,计算机内核的每一次的优化升级都是由于其自身的缺点进而发展出来的,从而促使底层系统函数的迭代升级,进而才会促使整个 IT 技术的升级迭代。这里不会讲太细节性的东西,例如:网络通信、CPU 中断等,这个有兴趣的同 阅读全文
摘要:
前言 redis是一个纯内存的数据库,在存放大量数据时,内存的占用将会非常可观。那么在一些场景下,通过选用合适数据结构来存储,可以大幅减少内存的占用,甚至于可以减少80%-99%的内存占用。 利用 zipList 来代替大量的 key-value 先来看一下场景,在 广告系统、海量用户系统 经常会碰 阅读全文
摘要:
一、基础总结篇 1、谈一下 Redis 的优缺点 优点: 读写性能优异, Redis能读的速度是 110000 次/s,写的速度是 81000 次/s 支持数据持久化,支持 AOF 和 RDB 两种持久化方式 支持事务,Redis 的所有操作都是原子性的 数据结构丰富,除了支持 string 类型的 阅读全文
摘要:
Redis集群主从同步了解吗? 主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为 主节点(master),后者称为 从节点(slave)。且数据的复制是 单向 的,只能由主节点到从节点。 Redis 主从复制支持 主从同步 和 从从同步 两种,后者是 Red 阅读全文
摘要:
一、场景 我们现在要卖 100件 婴儿纸尿裤,然后我们根据以往这样秒杀活动的数据经验来看,目测来抢这100件纸尿裤的人足足有10万人。 你一听,完了呀,这我们的服务器哪里顶得住啊!说真的直接打DB肯定挂。但是别急嘛,我们在开始之前应该先思考下 会出现哪些问题? 二、问题罗列 2.1、高并发 是的 高 阅读全文