一些问题

TCP

1、三次握手、四次挥手

2、time_wait的两个作用,time_wait过多怎么处理

防止最后一个ack丢失

防止上一次的socket链接的包的干扰2MSL;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

3、流量控制:滑动窗口、拥塞控制

4、粘包问题

nagle算法(TCP_NODELAY。没有ACK,或者包达到MSS 1460或者最大窗口的一半)导致的,面向链接,多包组合只有一个消息头。udp为何没有粘包问题:无连接,一对多,skbuff里每个消息都有头。

TCP的一对一和UDP的一对多也说明了为什么前者是面向流协议和后者是数据报的协议。

 

HTTP

  • 200 - 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

RPC

golang

1、goroutine实现

GPM

2、线程和协程的区别

3、GC

 

Redis:

0、数据类型

String——字符串
Hash——字典
List——列表
Set——集合
Sorted Set——跳表(实现简单、插入删除不用再平衡、节省空间)

1、如何做到高可用?

2、持久化:RDB和AOF

RDB:save和bgsave (copy on write)

AOF:appendfsync everysec/always  先写入aof_buf,每秒刷一次磁盘,兼顾性能和安全性,最多丢失一秒的数据。

3、缓存穿透

回填空值或者布隆过滤器

4、大key

5、整点密集推送方案

6、分布式锁redlock

设置过期时间、delete的时候要检验值(如uuid)

7、主从模式和sentinel模式和cluster模式

cluster:对每个key计算CRC16值,然后对16384取模

  

kafka:

1、kafka是如何保证消息的有序性? 局部有序。

一定要全局有序,需要送到同一个partition。发送1条消息的时候,可以指定(topic, partition, key) 3个参数,同一个key发送到同一个partition

2、如何做到exactly once

acks=0, 1, -1

3、发送端幂等设计:0.11版本后添加了producer ID和sequence number<topic, partition>,只能实现session级别的。

 

zookeeper

0、节点类型

1、zab协议

崩溃恢复

广播协议

2、会话一致性

 

ES

1、倒排索引 

2、大搜索的过程和结果汇总

算法:

1、总结经典DP算法题、动态转移方程,以及文章;

 

案例设计:

1、定时抢红包

2、定时推送给海量订阅用户新闻

3、定时秒杀

4、高并发下的秒杀--1、高并发问题 2、超买超卖

5、feed流的文章点赞、转发、评论数计数服务(冷数据的文章计数处理、特别是存储SSD);系统通知计数服务;

 

 

posted @ 2020-03-02 10:01  guhowo  阅读(204)  评论(0编辑  收藏  举报