分布式、多线程与高并发 涉及到这些关键词到底是说的什么

被面试官问道 : 高并发系统可以采用哪些手段来解决,分布式系统如何解决一致性的问题的时候 一脸懵逼。

所以需要自己反省一下 搜罗网文 汇聚于此 如有抄袭 定会标注

参考1:https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=2651485135&idx=1&sn=99a86d349d06363935dc2e123dbf6044&chksm=bd251fb08a5296a6e8461d818cf326b9cc55deef0c7cc92586cab11653b2d1d18cb3d589b92f&scene=0&xtrack=1&key=ac0a697a2870cbd1d25f63b227e13733a37120518aff452f1ff8d12aa133757eadbfa7c7e3a191b40963fd7b0d744a0ab58e40405108f8ca01007d416eca6633fd729bd4f3a4a488ae7c911bbeb530ab&ascene=1&uin=NDQyMzgzMDEy&devicetype=Windows+10&version=62060833&lang=zh_CN&pass_ticket=J6r5mGuYqa0bPiY3FEzTrMYRn6e0suPjbXR7B0g4zoY7huGLSi%2B1odwtLcw5w5AK

参考2:https://www.cnblogs.com/lr393993507/p/5909804.html

感谢以上博主的内容让我涨知识 如果我的转述有说的不对的请指出来我定加以改正 如果觉得不妥可联系我删除

这三点 总是相伴而生 各有侧重 :

1 分布式 

比较倾向于是一个概念 : 主要是解决单个物理服务器造成的容量和性能瓶颈的一种手段 

该领域好汉很多问题:分布式文件系统,分布式缓存,分布式数据库,分布式计算等,涉及到的名词:Hadoop,zookeeper,MQ等

分布式实现有两种形式:

水平扩展:同一个服务,因为流量太多遭不住了,一台服务器处理这些流量费劲,就把流量分到两台服务器上,不行就再加,大家干同一个事。(不是干一个同事)

     就好比有一桌子饭菜  一个人吃不了 大家一起吃 

垂直拆分:客户端有多种需求,把这些需求拆分开,放在不同的服务器上 ,大家处理不同的事情,合起来构成一个整体。

     就好比有一桌子饭菜 分工明确谁吃哪一盘

2 高并发

同时有多少量

高并发可以通过分布式解决 将并发量分配到不同的机器上。除此之外 还可以使用缓存和多线程技术让一台服务器的效能发挥更好。

说说高并发如何解决吧!

要想解决高并发 就要知道两个概念:同步和异步

同步:执行方法的过程不能干别的事 进程是阻塞的。单线程 

   关键字:synchronized   当一个对象访问 带有synchronized 关键字的代码块时候 其他对象需要等候上一个对象访问完 才能进行访问 叫做同步。

异步:执行方法过程中无法阻塞 如果发出异步请求 就进行下一件事。多线程  

           如果没有那个关键字则说明不同对象可以同时访问代码块 叫做异步。、

处理异步问题 就是使其加锁变为同步 

Java:加synchronized 

数据库:加悲观锁(传统物理锁)或乐观锁 详情参考另一篇文章:

3 多线程

软件或硬件实现多个线程并发执行的技术:它更多是解决cpu调度多个进程的问题。从而让这些进程看上去是同步进行的(实际上是交替运行的)。

猜你喜欢

转载自www.cnblogs.com/xcgShare/p/11642831.html