在软件研发过程中,经常会听到高并发、高可用这两词,但是很多人都不知道如何做到服务的高并发、高可用?要实现这个要求,多线程技术,分布式技术,缓存技术和epoll多路复用技术等都是非常有效的。除了服务开发过程中需要注意相关技术的应用,关键还是服务部署时需要注意的问题。专业的事需要交给专家来完成。一个专业级别的服务器(集群)已经包含了用户大部分的关注和需求,能让用户能更专注于系统实施及应用。
如何做到服务的高并发、高可用?
这个看起来好像只有一个问题?实际上却需要专著来阐述才能完成清晰的解答,在此只能泛泛而谈说个概念。高并发,高可用是两个方面。
高并发: 在同一时间内能够处理越多的请求越好,这就要求我们的服务器能够响应这些请求,比如需要加大内存,加大带宽,在这些达到一定程度的时候,我们就只能通过水平扩展了,就是进行分布式部署,让请求落在不同的机器上,这样就可以处理更多的请求,如何让请求落在不同的机器上呢,这就需要我们设置代理转发,一般是nginx进行负载均衡,让请求合理的分配到各个机器上。同时还要做到如下几点:
1、应用级缓存
2、HTTP缓存
3、多级缓存
4、池化
5、异步并发
6、扩容
7、队列
高可用: 就是数据不能丢失,出现问题之后,要能有自愈能力,就是一个服务器挂了,并不影响服务的提供,这里我们就可以设置数据库备份,主从配置,服务器也进行监听,如果有服务器宕机,可以自动切换到可用的机器上。haproxy可以做到这样的控制。同时还要做到如下几点:
1、负载均衡
2、限流
3、降级
4、隔离
5、超时与重试
6、回滚
7、压测与预案
通过上述介绍,如何做到服务的高并发、高可用相信大家已经清楚了吧,想了解更多关于高并发、高可用的信息,请继续关注。