分类目录归档:基础知识

git 基本操作


config 的三个作用域

git config --local # local 只对某个仓库有效
git config --global # golbal 对当前用户所有仓库有效
git config --system # system 对系统所有登陆的用户有效
git config

显示 config 的配置, 加 --list

git config --list --local
 git config --list --global
 git config --list --system

重命名

git mv a b

add 更新文件

git add -u

git 查看日志

gi

Read more

正则表达式


正则表达式 NFA DFA

DFA自动机(Deterministic Final Automaton 确定有限状态自动机)和NFA自动机(Non deterministic Finite Automaton 非确定有限状态自动机)。

对比来看,构造DFA自动机的代价远大于NFA自动机,但DFA自动机的执行效率高于NFA自动机

假设一个字符串的长度是n,如果用DFA自动机作为正则表达式引擎,则匹配的时间复杂度为O(n);如果用NFA自动机作为正则表达式引擎,由于NFA自动机在匹配过程中存在大量的分支和回溯,假设NFA的状态数为s,则该匹配算法的时间复杂度为O(ns)。

NFA自动机的优势是支持更

Read more

端口被CLOSE_WAIT占用如何排查?


可以通过tcpdump抓包看看连接状态,分析是否是服务端的FIN packet没有发出去。

正常的关闭流程是:服务端在接收到客户端发送的关闭请求FIN后,会进入CLOSE_WAIT状态,同时发送ACK回去。在完成与客户端直接的通信操作之后,再向客户端发送FIN,进入LAST_ACK状态。

如果连接是CLOSE_WAIT状态,而不是LAST_ACK状态,说明还没有发FIN给Client,那么可能是在关闭连接之前还有许多数据要发送或者其他事要做,导致没有发这个FIN packet。

建议确定关闭请求的四次握手,哪个环节出了问题,再去排查业务代码,可能是由于超时或者异常导致没有正常关闭连接。

两张动

Read more

kafka 基础知识


mq和rpc调用的区别是什么?

mq和rpc的区别往大了说属于数据流模式(dataflow mode)的问题。我们常见的数据流有三种:1. 通过数据库;2. 通过服务调用(REST/RPC); 3. 通过异步消息传递(消息引擎,如Kafka) RPC和MQ是有相似之处的,毕竟我们远程调用一个服务也可以看做是一个事件,但不同之处在于:

  1. MQ有自己的buffer,能够对抗过载(overloaded)和不可用场景
  2. MQ支持重试
  3. 允许发布/订阅模式 当然它们还有其他区别。应该这样说RPC是介于通过数据库和通过MQ之间的数据流模式。

Broker端参数

静态参数(Static Configs)

所谓

Read more

http1.1 http2 http3 区别


HTTP/1.1有两个主要的缺点:安全不足和性能不高。
HTTP/2完全兼容HTTP/1,是“更安全的HTTP、更快的HTTPS",头部压缩、多路复用等技术可以充分利用带宽,降低延迟,从而大幅度提高上网体验; QUIC 基于 UDP 实现,是 HTTP/3 中的底层支撑协议,该协议基于 UDP,又取了 TCP 中的精华,实现了即快又可靠的协议。

解读HTTP/2与HTTP/3 的新特性(推荐)_浪里行舟的博客-CSDN博客

Read more

设计模式


什么是面向对象编程和面向对象编程语言?什么是面向对象分析和面向对象设计?

面向对象编程(OOP) 面向对象分析(OOA) 面向对象设计(OOD)

面向对象编程的英文缩写是OOP,全称是Object Oriented Programming。对应地,面向对象编程语言的英文缩写是OOPL,全称是Object Oriented Programming Language

面向对象分析英文缩写是OOA,全称是Object Oriented Analysis

面向对象设计的英文缩写是OOD,全称是Object Oriented Design。

OOA、OOD、OOP三个连在一起就是面向对象分析、设计、编

Read more

base理论与cap 理论


base理论

base 是指basically available 基本可用,soft-state 软状态,eventual-consistency 最终一致性。base理论的核心思想是 即使无法做到强一致性,也可以做到最终一致性。

cap 理论

cap 原则指的是 在一个分布式系统中,一致性,可用性,分区容错性,这三个特性最多满足两个,三者不可兼得。

一致性是指,在同一时刻的数据完全一致。可用性是指任何时候对分布式系统总是可以成功读写。分区容错性是指某些节点或者网络故障的时候,仍然能够提供满足一致性和可用性的服务。

既然无法满足三者,那就有取舍。

第一个就是 CA ,放弃分区容错性,但是这也

Read more

缓存雪崩、穿透、击穿区别


现象 解决 雪崩 大量key同时过期,然后请求落到数据库 随机过期时间 穿透 缓存中不存在的key,可以用布隆过滤器解决。 布隆过滤器 击穿 大量请求访问同一个key,但是这个key过期了,请求都落到数据库。 主动更新,不设置过期时间,缓存不存在落到数据库的时候加锁获取

Read more