![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工作面试总结
文章平均质量分 91
工作麦女士总结
curd_boy
热爱编程,喜欢探索新技术
展开
-
《后端》开放平台API安全设计
在设计开放平台接口过程中,往往会涉及接口传输安全性相关的问题,加上之前面试中也被问到项目中开放平台的安全相关问题,因此有时间整理下思路,对于接口加密及签名的相关知识做了一个系统性的总结开放平台API接口加密,签名策略参考各大平台策略支付宝支付: appid+ PrivateKey私匙转账+退款:1.RSA2(非对称)公匙加密 2.根证书 3.应用公匙证书func (s *transferAccountService) newClient() *alipay.Client { client, e原创 2022-04-04 00:27:48 · 2724 阅读 · 0 评论 -
【面试】Docker 面试篇
文章目录为什么容器技术在docker之前没有爆发的原因?docker 如何做到资源隔离?namespace有五种容器与镜像的关系docker重要组件有哪些?dockerdrunC 与 containerd剖析 Docker 网络实现及 Libnetwork 底层原理Dcoker 网络标准docker 网络模式host模式container模式bridge 桥接模式linux veth bridgenone模式docker同宿主机容器和不同宿主机容器之间怎么通信?你对k8s的理解为什么容器技术在docker原创 2021-11-19 15:49:52 · 1859 阅读 · 0 评论 -
【面试】系统架构设计(持续更新)
微博热搜数据设计设计一个限流器,满足100w QPS 的限流。令牌桶。100w的计数器,然后每次请求去获取令牌,拿到就请求,拿不到就丢弃或者等待,等待超时就丢弃。然后面试官问怎么实现?我回答了,然后不满足他的要求,让我继续优化。然后我说在代理层面做,他说不一定能抗住这么大的请求量,你的处理延时怎么处理。然后我说分发在每个服务器上面做,每个服务器限小流,然后如果负载均衡就可以实现整体限流满足要求。......原创 2021-10-29 18:15:05 · 3147 阅读 · 0 评论 -
【Go】面试题篇 三
根对象到底是什么?根对象在垃圾回收的术语中又叫做根集合,它是垃圾回收器在标记过程时最先检查的对象,包括:全局变量:程序在编译期就能确定的那些存在于程序整个生命周期的变量。执行栈:每个 goroutine 都包含自己的执行栈,这些执行栈上包含栈上的变量及指向分配的堆内存区块的指针。寄存器:寄存器的值可能表示一个指针,参与计算的这些指针可能指向某些赋值器分配的堆内存区块。有了 GC,为什么还会发生内存泄露?形式1:预期能被快速释放的内存因被根对象引用而没有得到迅速释放(局部变量被全局变量引用原创 2021-08-04 12:24:13 · 226 阅读 · 0 评论 -
【Go】Golang内存管理篇 ⑤
一. 内存管理内存分配器堆和栈区别1.空间分配区别:栈:由操作系统(编译器)自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。堆:一般由代码分配释放,若代码没有显式释放,程序结束时可能由OS回收,分配方式类似链表。2.缓存方式区别:栈:使用的是一级缓存,通常都是被调用时处于存储空间中,调用完毕立即释放。堆:存放在二级缓存中,生命周期由垃圾回收算法来决定。3.数据结构区别:栈:先进后出的线性结构。堆:类似于一颗树。1.1 go内存分配原创 2021-07-16 15:19:18 · 966 阅读 · 0 评论 -
【数据库篇】Elasticsearch知识总结
在公司需要用到es,这里做下知识点的记录吧一、基础工具阿里云es提供查询工具,包括kibana集群信息 推荐es-head 用Chrome插件 或者 GitHub查询index结构GET user_login_log/message/_mapping二、简单查询ES 读取过程分为GET和Search两种操作。GET/MGET(批量GET): 需要指定_index、_type、_id。也就是根据id从正排索引中获取内容。Search: Search不指定_id,根据关键词从哪个倒排索原创 2020-10-29 11:15:30 · 1401 阅读 · 1 评论 -
【数据库篇】Redis知识点
2.1 redis 特性redis为什么这么快1.基于内存Redis是纯内存数据库,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在IO上,所以读取速度快。2.单线程上下文切换线程只需要保存线程的上下文(相关寄存器状态和栈的信息)Redis采用了单线程的模型,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU。3.IO多路复用技术redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。多路-指的是多个socket原创 2021-07-14 15:45:02 · 2272 阅读 · 1 评论 -
【面试篇】牛客网面试总结
运维etcd 如何保持高可用性只有当集群中多数节点正常的情况下,才可以进行运行时的配置管理。如果集群多数节点损坏,集群就失去了写入数据的能力。官方推荐3,5,7为etcd cluster数目,其中7可以满足大部分情况通常情况下,如果是Follower节点宕机,如果剩余可用节点数量超过半数,集群可以几乎没有影响的正常工作。如果是Leader节点宕机,那么Follower就收不到心跳而超时,发起竞选获得投票,成为新一轮term的Leader,继续为集群提供服务。灾难恢复当集群超过半数的节点都失效时,就原创 2021-05-12 00:08:26 · 1616 阅读 · 2 评论 -
【微服务】Go进阶② 微服务可用性设计
微服务可用性设计隔离隔离,本质上是对系统或资源进行分割,从而实现当系统发生故障时能限定传播范围和影响范围,即发生故障后只有出问题的服务不可用,保证其他服务仍然可用。服务隔离动静分离、读写分离轻重隔离核心、快慢、热点物理隔离线程、进程、集群、机房读写分离:主从、Replicaset、CQRS。核心隔离业务按照 Level 进行资源池划分(L0/L1/L2)。核心/非核心的故障域的差异隔离(机器资源、依赖资源)。多集群,通过冗余资源来提升吞吐和容灾能力。快慢隔离我们可以把原创 2021-04-16 00:20:53 · 849 阅读 · 0 评论 -
【计算机基础】计算机网络知识点②
TCP UDPTCPTCP/IPTCP/IP是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。 TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。 通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。TCP三次握手① A 的 TCP原创 2021-03-07 00:01:11 · 510 阅读 · 0 评论 -
操作系统知识点
系统调用什么是系统调用?Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。从某种角度来看,系统调用和普通的函数调用非常相似。区别仅仅在于,系统调用由操作系统核心提供,运行于内核态;而普通的函数调用由函数库或用户自己提供,运行于用户态。随Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,因为这些库函数与系统调用的关系非常紧密,所以习惯上把这些函数也称为系统调用。为什么要用系统调用?实际上,很多已经被我原创 2021-01-30 00:20:48 · 775 阅读 · 0 评论 -
【Go】面试篇 ②
showmebug2 6年经验1.多核cpu cache怎么保持不冲突和一致MESI解决方案 把cache 设置为四个状态,是两个bit来表示,四种状态:修改、独占、共享、失效状态更新:把内存的一块数据加载到cache中,某一个内核对这个数据进行修改,这时就是修改状态,独占的状态。有另外一个相同的数据资源修改时,这时会检测到,将独占状态变为共享状态,之前读取的数据会变成失效的状态,新的内存里面加载到cache里面,还有一些不同的情况:当一个数据处于共享状态,比如两个内核都加载同一份数据,到内核ca原创 2021-01-23 23:49:53 · 486 阅读 · 0 评论 -
【运维篇】运维知识点
容器容器和虚拟机的区别1.容器技术简介对于容器,它首先是一个相对独立的运行环境,在这一点有点类似于虚拟机,但是不像虚拟机那样彻底。在容器内,应该最小化其对外界的影响,比如不能在容器内把宿主机上的资源全部消耗,这就是资源控制。容器可以看成一个装好了一组特定应用的虚拟机,它直接利用了宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快。可以做到秒级,甚至毫秒级启动相比于虚拟机,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统——实例规模更小、创建和迁移速度也更快。.原创 2021-01-18 10:59:53 · 569 阅读 · 1 评论 -
【数据库篇】MySQL基础知识
IO多路复用技术redis 采用网络IO多路复用技术来保证在多连接的时候, 系统的高吞吐量。多路-指的是多个socket连接,复用-指的是复用一个线程。多路复用主要有三种技术:select,poll,epoll。epoll是最新的也是目前最好的多路复用技术。这里“多路”指的是多个网络连接,“复用”指的是复用同一个线程。采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗),且Redis在内存中操作数据的速度非常快(内存内的操作不会成为这里的性能瓶颈),主要以上两点原创 2021-01-10 16:48:42 · 463 阅读 · 1 评论 -
【Go】Go语言面试②
文章目录1.11.22.12.2京东make new的区别数组和切片的区别Go线程安全?PythonPython3 GIL(Global Interpreter Lock) 下 多线程与多进程1.1Go语言中Select用法如何通俗理解docker?集装箱、Docker容器提供的是虚拟化的运行环境集群、微服务与分布式的理解分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。简单说原创 2021-01-10 16:46:02 · 505 阅读 · 0 评论 -
【Golang】Go语言面试①
Go 语言笔试面试题汇总Go 语言笔试面试题(基础语法)原创 2021-01-10 16:43:59 · 553 阅读 · 0 评论 -
秒杀系统总结
文章目录一、问题二、解决思路1. 高并发Redis集群2. 超卖服务单一职责:一、问题高并发超卖二、解决思路1. 高并发分布式服务Nginx负载均衡、轮询(ip黑名单)分布式服务器(服务单一职责,)Redis 高可用 (集群,主从同步、读写分离,哨兵机制,开启持久化)Mysql高可用(集群、读写分离)静态页面消息队列(MQ,Redis等消息队列)限流 降级前端 : 按钮时间、链接等(后端、秒杀次数Redis缓存库存预热Redis集原创 2020-08-04 22:35:08 · 842 阅读 · 0 评论 -
视频网站解决带宽问题(总结)
自己搜来的一些方案,汇总下供自己学习吧1.大带宽是重中之重所有了解视频类应用的人都知道,视频网站的带宽才是重中之重。在线视频播放网站每天都会产生巨额的流量,每个客户都会占据非常大的带宽。如果带宽不够就会出现用户播放卡顿,甚至网站崩溃掉线的情况。而带宽过大则会造成非常高额的成本浪费,毕竟带宽成本是视频类应用最大的开销。如何合理的选择服务器带宽呢?要根据视频的码率来估算单个用户加载视频需要占用的带宽,再乘以同时加载视频的用户的数量,就得到理论上服务器需求的带宽大小了。注意我们说的是同事加载视频的用户数量,并转载 2020-07-16 20:41:32 · 5109 阅读 · 0 评论 -
python 面试题
GIL全局解释器锁原创 2020-06-05 00:30:03 · 135 阅读 · 0 评论 -
排序算法
1.冒泡原创 2020-01-07 12:45:30 · 86 阅读 · 0 评论