这道面试题涉及的知识点比较多,主要考察的是面试者的综合技术能力。高并发系统的设计手段有很多,主要体现在以下五个方面。1、前端层优化①静态资源缓存:将活动页面上的所有可以静态的元素全部静态化,尽量减少动态元素;通过CDN、浏览器缓存,来减少客户端向服务器端的数据请求。②禁止重复提交:用户提交之后按钮置灰,禁止重复提交。③用户限流:在某一时间段内只允许用户提交一次请求,比如,采取IP限流。2、中间层负
分类:
其他好文 时间:
2020-08-02 10:17:55
阅读次数:
84
敲了一天的代码,正准备git add,git commit, git push 然后开开心心下班回家的时候,突然发现还没git pull, 好吧,先放弃一下本地修改,然后合并冲突再提交吧,执行了个git reset HEAD~,由于commit了两次,我又执行了一下git reset HEAD~ 然 ...
分类:
其他好文 时间:
2020-07-30 21:46:22
阅读次数:
61
前言 最近中了docker的毒,发现Alpine Linux真是个好东西,麻雀虽小五脏俱全。 只可惜Docker的Hyper-V和VMware Workstation不相容,由于业务关系只得放弃docker for windows。 之前在Ubuntu Server虚拟机里跑Gogs觉得太重,空镜像 ...
分类:
系统相关 时间:
2020-07-28 22:34:41
阅读次数:
117
1. 主从复制简介 1.1 互联网“三高”架构 高并发 高性能 高可用 1.2 Redis是否高可用 单机redis的风险与问题 问题1.机器故障 现象:硬盘故障、系统崩溃 本质:数据丢失,很可能对业务造成灾难性打击 结论:基本上会放弃使用redis. 问题2.容量瓶颈 现象:内存不足,从16G升级 ...
分类:
其他好文 时间:
2020-07-28 13:52:15
阅读次数:
69
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置 ...
分类:
数据库 时间:
2020-07-24 15:56:59
阅读次数:
75
停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。 在java中有以下3种方法可以终止正在运行的线程: 使用退出标志,使线 ...
分类:
编程语言 时间:
2020-07-24 09:43:29
阅读次数:
66
1.概述 为什么虚拟机要进行垃圾回收? 因为Java虚拟机中的内存是有限的,在程序运行中无时无刻不在创建对象,消耗内存,如果不对内存进行回收,就无法解决内存不足的问题,自然程序无法运行持久。 如今内存动态分配与内存回收技术相当成熟,为什么还要了解它? 因为即使内存动态分配和内存回收技术在怎么成熟,也 ...
分类:
其他好文 时间:
2020-07-24 09:32:03
阅读次数:
68
线程锁 自旋锁:为了不放弃CPU执行事件,循环的使用CAS技术对数据尝试进行更新,直到成功。 悲观锁:假定会发生并发冲突,同步所有对数据的相关操作,从数据就开始上锁。 乐观锁:假定没有冲突,在修改数据时如果数据发现和之前获取的不一致,则读最新数据,修改后重新修改。 独享锁(写):给资源加上写锁,线程 ...
分类:
编程语言 时间:
2020-07-22 11:25:38
阅读次数:
64
TCP协议同样是运输层的协议,掌握TCP重点要关注这几个问题:顺序问题、丢包问题、连接维护、流量控制、拥塞控制。先解析下TCP报文段结构,相比于UDP要复杂很多。 首先还是两个端口号,对应着具体的应用进程。 序号指的是包的序号,为了解决包乱序问题。 发出去的包应该有确认,如果接收方没有收到就应该重新 ...
分类:
其他好文 时间:
2020-07-19 23:25:22
阅读次数:
70
进程的三状态及进程调度算法算法 在了解其他概念之前,我们首先要了解进程的几个状态。在程序运行的过程中,由于被操作系统的调度算法控制,程序会进入几个状态:就绪,运行和阻塞。 (1)就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态 ...
分类:
编程语言 时间:
2020-07-19 16:29:52
阅读次数:
51