处理与理解高并发

处理与理解高并发

前言:

  • 在许多程序员眼里,遇到高并发和解决高并发,已经是烂大街的事情,觉得并不需要去深入的探讨和理解,但我认为,这却恰恰相反,解决高并发的手法、技术通常都有高低之分,适合的场景运用恰当的技术,往往能够使程序的性能提高不少,而我们最终的产品、项目不就是为了能够实现业务的同时,让用户有一个良好的体验,所以提升自我解决高并发的能力非常有必要,以下是小编的菜鸟个人理解,不对之处,请提醒。
    (小编从事的是golang、java、node.js开发技术,更多的是从这几门后端语言去考虑)

目录:
1、携程、线程、核
2、数据库仓库、数据库优化
3、缓存(redis)
4、算法
5、分布式
6、负载均衡

一:携程、线程、核

  • 线程、携程、进程,这几个我就不做介绍了,留下一片文章供大家参考: https://www.jianshu.com/p/392643fb8626
    开线程、携程,其实在某种意义程度上就是把同步变为了异步,让人感知认为他们是在同时运行(大多是在不会产生矛盾的io操作上进行),其实不然,cpu的基本单位是线程,就算使用的是携程,必定过cpu的时候也是一个一个过,这个时候就不存在并行走,而是产生了一前一后的顺序,这并没有最大化的给予程序优化,这个时候就产生了开核。
    开核:他是根据每台服务器的配置来决定开核的个数,一个cpu允许开多少个核,当然某种程度上开核是消耗了服务器的性能,提升项目的运行效率,开核完成:这个时候当我们的携程经过cpu时,他们会更具开核个数同时经过cpu,这样极大地提高了运行效率。可以使用jmeter去做压力测试。

二:数据库仓库、数据库优化

  • 数据库仓库个人没去研究,懂得不多,大数据方向听过几堂公开课,是为了存储千万、亿量级的数据,而加快其中的操作,听说现在超数据都已经出来了,说明数据的存储等操作,是极大地影响到整个产品的性能,不得不忽视。
    数据库优化:更多地可以先从最简单的sql语句查询开始下手,这里面的学问颇多,可以观看几篇文章学习学习,包括引擎等合理利用。

三:缓存(redis)

  • Redis其实算是另类的数据库,比如需要长时间存储的数据建议存储到mysql这种类型的数据库,而需要对数据不停的提取,建议存储到Redis,这样能加快程序的运行。
    他们存储的位置是磁盘,所以不必担心断电及丢失的事故。
    Redis使用教程可参考:http://www.runoob.com/redis/redis-tutorial.html

四:算法

  • 算法这东东我是无法做介绍,只知道一些基本的规则,建议去学习一些基本的算法,当时工作的时候深有体会,程序代码的简洁以及速度,对其的依赖性非常之高,不管所做的技术是什么,这东东都能受益终生。

五:分布式

  • 产品的最终成型,往往并不是一个后端服务建立的,更多地是多个模块多个后端服务的组成,形成了整个项目与产品,这样的好处在于降低了模块之间的耦合度,一个服务垮掉,并不会影响到其他模块,并且能够有效地提升性能,现在的分布式以及微服务应该以及很普遍了(最大的好处在于多台廉洁的服务器肯定比一台性能较高的服务器便宜,其实就是降低成本)。

六:负载均衡

  • 当服务器承受不住,则会转移,我们比作一台电脑承受量是100%,当越过这个底线时,服务器则会承受不住而垮掉,这个时候通常运用最多的就是负载均衡了,当目前访问的服务器承受量已到达多少时,会进行转移,让另外一台服务器去重新承受。

小编目前印象最深的就这几处吧,如果也有更好的方式或者觉得有不同之处,可以一起探讨探讨。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值