个人小笔记

网络篇

基础概念

路由器:

  1. 在同一个子网就可以通过广播,以太网协议,发送帧,不在一个子网,就需要通过路由器转发。
  2. 路由器可以配置多个网卡,多个网卡对应多个不同的子网
  3. 原服务器,发送数据包时,判断如果不在一个子网,就填路由器的mac地址,发送到路由器。
  4. arp:ip->mac,缓存在路由器,,网关即路由器统称
  5. ● 主机中含有路由表。在 Linux 系统中,我们可以使用 arp -a 命令来查看 ARP 缓存的内容、和网卡不同,交换机的端口不具有 MAC 地址。
    交换机:
  6. 交换机作用于同一个子网,通过交换机,子网内的设备进行联通的,广播的时候,通过交换机进行广播的,所以交换机在数据链路层。
    大杂烩:
    127.x.x.x都是环回地址,回环地址,ping 都走lo网卡,不走真实网卡,所以即使断网也可ping通127.xxx。

Http

Tcp

  1. 原因是 TCP 有可变长的「选项」字段,而 UDP 头部长度则是不会变化的,无需多一个字段去记录 UDP 的首部长度。IPV6 128位,16一个组,8组
  2. ping应用的底层,用的是网络层的ICMP协议
  3. 其次就是 0.0.0.0,执行 ping 0.0.0.0 ,是会失败的,因为它在IPV4中表示的是无效的目标地址。localhost即127.0.0.1。0.0.0.0表示监听的本机所有IP

IP

  1. 网络号+主机号=IP
    网络号有多少位是有子网"掩码"决定的,子网掩码有01,组成,IP & 子网掩码 就能知道前面的多少位是网络号了。为了直接区分,采用斜线记录 :192.0.2.12/30 前30位是网络号。
  2. 子网划分:子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址。
  3. 假设对 C 类地址进行子网划分,网络地址 192.168.1.0,
    使用子网掩码 255.255.255.192 对其进行子网划分。
    C 类地址中前 24 位是网络号,最后 8 位是主机号,根据子网掩码可知从 8 位主机号中借用 2 位作为子网号。子网划分

系统篇

Shell

  1. 命名管道?
    单引号中双引号原样输出、字符串长度:KaTeX parse error: Expected '}', got '#' at position 2: {#̲str}、截取字符串:{string:1:4}

内存管理

  1. 段页式内存:内存分段:段基址+段内偏移量 = 物理内存的地址 解决了程序不用关心实际的物理内存地址的问题。不足:1.内存碎片(程序需要多少内存就分配多大的段,不会存在内部碎片,但是会出现外部碎片)。2.内存交换率低下。解决外部碎片就是将中间的程序写到磁盘,再从磁盘读回到内存。这样内存交换到磁盘速度很慢的,所以内存交换效率低下。
    好处:产生连续的内存空间
  2. 内存分页:页4KB,很小,所以不会产生外部碎片。在页表中找不到时,产生缺页中断。可能会出现不需要一个数据页的,也分配一个数据页。
    分页内存:拿到虚拟地址分为偏移量和页号(虚拟页号+物理页号)–> 物理页号+偏移量得到了物理地址。
  3. 简单分页的缺陷:空间上,32位的CPU,每个进程的虚拟空间是4G,从页大小4KB,页表项来计算需要的内存空间,结合加入100个进程?

算法篇

MySQL篇

Redis篇

数据同步

  1. 数据同步:第一次是全量同步(从库靠的是接收到的快照文件进行恢复的),后面是replication buffer。即快照+buffer.
    fork操作会阻塞主线程。从库较多的话,采用主-从-从的级联模式。让从库来fork线程创建快照。全量同步完成后,基于长连接的命令传播。如果网络连接断开呢???
    环形缓冲区:分别记录主库写入的位置master_repl_offset,与从库读取的位置slave_repl_offset,采用增量复制的方法,复制之间的。需要注意的是如果主库写入过快,从库读取满,主库会覆盖掉之前的操作,所以需要配置缓冲区的大小:
    缓冲空间的计算公式是:缓冲空间大小 = 主库 写入命令速度 * 操作大小 - 主从库间网络传输命令速度 * 操作大小
    在这里插入图片描述

哨兵

哨兵是Redis的另一个线程:监控,选主。ping 主,ping从。主挂了就选主,从挂了就标志状态为下线。
主库真的挂了吗?
1.该选择哪个从库作为主库?
2.怎么把新主库的相关信息通知给从库和客户端呢在这里插入图片描述

哨兵误判:主观觉得主库下线了,但是网络拥塞导致的,并没有下线,选主花销较大的。需要采用多个哨兵组成哨兵集群来判断,降低误判率。客观下线:满足下线的哨兵个数过半。从库筛选(总是和主库网络中断)->打分 选择新的主库。只要有一轮产生了最高分,那么就是新的主库。
三轮打分:1.slave-priority 优先级最高。2和旧主库同步的进度相接近。上文的master_repl_offset与slave_repl_offset。3.ID号最小的进度,得分高。
哨兵挂了呢
基于 pub/sub 机制的哨兵集群组成。哨兵在redis的主库上面发布消息(ip:port),其他哨兵在主库同一频道订阅消息,哨兵之间可以相互沟通了。
在这里插入图片描述
哨兵就是一个运行在特定模式下的 Redis 实例,只不过它并不服务请求操 作,只是完成监控、选主和通知的任务
让客户端从哨兵这里订阅消息 获取选主,切换到了哪一步。
由哪个哨兵执行主从切换?
执行主从切换的哨兵称为Leader,Leader选举流程,判断主库主观下线,后会向其他哨兵询问,并表示自己有意愿当Leader.拿到过半的赞成票,并且还需要满足赞成的票数超过配置的quorum值。选举询问流程。
至少配置3个哨兵实例。
要保证所有哨兵实例的配置是一致的,尤其是主观下线 的判断值 down-after-milliseconds(最大连接超时时间).
16384个hash槽,将这些槽分配到实例上。
MOVED命令会更新客户端的缓存,即哪个槽在哪个实例,ASK 命令则不会更新。
在这里插入图片描述

日志

AOF重写:将减少日志,只取初与末状态,bgrewriteaof线程完成重写,不会阻塞主线程。“一个拷贝,两个日志”:fork出bgrewriteaof线程时,会把内存中的最新数据给一份给bgrewriteaof线程。fork复制的是页表,不是物理内存。
快照save,bgsave在这里插入图片描述哨兵就是一个运行在特定模式下的 Redis 实例,只不过它并不服务请求操 作,只是完成监控、选主和通知的任务
让客户端从哨兵这里订阅消息 获取选主,切换到了哪一步。
由哪个哨兵执行主从切换?
执行主从切换的哨兵称为Leader,Leader选举流程,判断主库主观下线,后会向其他哨兵询问,并表示自己有意愿当Leader.拿到过半的赞成票,并且还需要满足赞成的票数超过配置的quorum值。选举询问流程。

至少配置3个哨兵实例。
要保证所有哨兵实例的配置是一致的,尤其是主观下线 的判断值 down-after-milliseconds(最大连接超时时间).
16384个hash槽,将这些槽分配到实例上。
MOVED命令会更新客户端的缓存,即哪个槽在哪个实例,ASK 命令则不会更新。

Java核心

  1. 接口定义的属性是常量,不能表达对象的状态,从接口的静态方法和非静态方法聊聊?
  2. final修饰的变量是常量,需要初始化。
  3. 修饰的是类变量:可以声明后在static代码块中进行初始化,或者在声明时就就行初始化。
  4. 修饰的成员变量部变量:声明时初始化,或者非静态代码块中初始化,或者构造器中初始化。
  5. 修饰的是局部变量:在声明时就需要初始化,且只能赋值一次。
  6. 抽象类的本质是代码的复用,接口的本质是对类的行为的“有”的约束行为,表明类必须要有哪些行为方法,只约束了行为的有无,但是对于实现无法限制。抽象类是一种is a 的关系,是一种对子类通用行为属性的高度抽象,而接口是一种模仿行为,对于具体实现并不关心
  7. ArrayList,LinkedList: 后者实现了Deque接口,可以当做队列来使用,还可以用来实现LRU算法
  8. 双亲委派模型:避免自己写的类覆盖java的核心类,String,避免重复加载,如果一个相同的class文件被不同的类加载文件加载就是两个不同的类
  9. GCroots对象:虚拟机栈中的引用对象,方法区中的常量引用与静态属性引用的对象。本地方法栈中JNI引用的对象。不可达对象并不是立即死亡。

SpringBoot

  1. bean名称:正常是返回首字母小写的bean,但是如果类名是第一个和第二个字母都是大写,则直接返回。可直接通过ApplicationUtils.getBean(xxx.class)获取。(AnnotationBeanNameGenerator.java )
  2. 扫包路径,Application根目录下,可以用@ComponentScan控制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值