论一种新颖的高并发技术
李万鸿2020-7-12
高并发是互联网应用的一个关键问题,当存在上亿的并发时,传统的java体系已力不从心,为此需要创新地采用新思路解决,这里给出一个基于Go、Kafka、Redis、RPC的新颖的高并发技术架构,支持数亿的并发数,可以有效地解决此问题。
充分使用CPU的多核、消息机制和高效RPC可以显著提升并发的能力,根据这个原理,设计了本方案。
Go语言使用协程技术,提供很高的并发处理能力,一个CPU支持1万个协程并发运行,可以用Go开发web,提供用户访问的入口。Kafka是高性能的消息中间件,性能优异,在大数据场景应用广泛,可以在Go的应用程序里把用户的请求数据发送到Kafka,并把返回的offset发送给Redis,用发消息Lpush语句发送offset到消息队列,后台开发处理程序,循环执行从Redis用Rpop从Redis的消息队列取出offset,然后进行处理,结果存入数据库。这是解决Iot物联网的一种有效办法,对于亿万个设备发来的海量数据进行高效处理。比如心脏监控,数亿传感器同时发病人的数据给云平台,并发数非常大,就需要本方法解决。
对互联网应用,把offset发送RPC请求给后台程序,RPC程序通过线程池快速处理,从Kafka获取数据完成业务,返回结果,Go的web程序把结果返回用户。对于淘宝、京东这样的大型互联网多用户高并发访问,可以这样解决并发难题。使用Zookeeper、Netty实现高效RPC,在实际项目中发挥奇效,取得了成功。这个架构巧妙新颖,具有实用价值。
总之,根据计算机和软件的基本原理,可以设计多种新颖的高并发方案,本方法巧妙运用最先进的技术,可以支撑数亿的高并发,行之有效,大家可以一试。抛砖引玉,请大家提宝贵意见商榷,共同消灭高并发这个拦路虎,谢谢!