被面试官问道 : 高并发系统可以采用哪些手段来解决,分布式系统如何解决一致性的问题的时候 一脸懵逼。
所以需要自己反省一下 搜罗网文 汇聚于此 如有抄袭 定会标注
参考2:https://www.cnblogs.com/lr393993507/p/5909804.html
感谢以上博主的内容让我涨知识 如果我的转述有说的不对的请指出来我定加以改正 如果觉得不妥可联系我删除
这三点 总是相伴而生 各有侧重 :
1 分布式
比较倾向于是一个概念 : 主要是解决单个物理服务器造成的容量和性能瓶颈的一种手段
该领域好汉很多问题:分布式文件系统,分布式缓存,分布式数据库,分布式计算等,涉及到的名词:Hadoop,zookeeper,MQ等
分布式实现有两种形式:
水平扩展:同一个服务,因为流量太多遭不住了,一台服务器处理这些流量费劲,就把流量分到两台服务器上,不行就再加,大家干同一个事。(不是干一个同事)
就好比有一桌子饭菜 一个人吃不了 大家一起吃
垂直拆分:客户端有多种需求,把这些需求拆分开,放在不同的服务器上 ,大家处理不同的事情,合起来构成一个整体。
就好比有一桌子饭菜 分工明确谁吃哪一盘
2 高并发
同时有多少量
高并发可以通过分布式解决 将并发量分配到不同的机器上。除此之外 还可以使用缓存和多线程技术让一台服务器的效能发挥更好。
说说高并发如何解决吧!
要想解决高并发 就要知道两个概念:同步和异步
同步:执行方法的过程不能干别的事 进程是阻塞的。单线程
关键字:synchronized 当一个对象访问 带有synchronized 关键字的代码块时候 其他对象需要等候上一个对象访问完 才能进行访问 叫做同步。
异步:执行方法过程中无法阻塞 如果发出异步请求 就进行下一件事。多线程
如果没有那个关键字则说明不同对象可以同时访问代码块 叫做异步。、
处理异步问题 就是使其加锁变为同步
Java:加synchronized
数据库:加悲观锁(传统物理锁)或乐观锁 详情参考另一篇文章:
3 多线程
软件或硬件实现多个线程并发执行的技术:它更多是解决cpu调度多个进程的问题。从而让这些进程看上去是同步进行的(实际上是交替运行的)。
原文:https://www.cnblogs.com/xcgShare/p/11642831.html