一个典型的大型互联网应用系统使用了哪些技术
负载均衡技术
Web 服务器,直接面向用户,需要承载大量并发请求,单台服务器难以负荷,我使用多台 WEB 服务器组成集群,前端使用负载均衡技术,将请求分散的发送到我们的后端服务器集群中。
把客户端的请求分发到不同服务器,解决服务器访问压力的问题。常见的负载均衡算法有根据客户端请求 ip, 时间片轮询,自定义轮询算法等。现在广泛使用的是 Nginx 作为负载均衡中间件。
消息中间件
如果一次访问涉及到多个转发处理或多个系统间处理,可能使客户端响应时间过长或服务请求失败,为了解决这些问题,可以把先把客户端的请求放到消息中间件中并返回给客户端响应结果,后续逻辑处理从消息队列中去处理,中间过程客户无需感知。
主要解决了应用解耦,异步消息,流量削锋等问题,实现高性能,高可用。常用到的消息中间件包括 Rabbitmq,Kafka,Rocketmq 等。
使用场景
缓存中间件
主要解决对数据库访问压力,客户端请求的时候,首件从缓存中拿数据,减少对数据库的访问压力。
常用的技术有 Redis.
数据库分库分表,读写分离
解决数据库存储对数据表存储压力大,分库分表技术可以是数据分散到不同数据库不同的数据表中。
主流的方案使用 Sharding-JDBC 和 Mycat 数据库中间件
读写分离
一个库负责写数据,一个库负责读数据,写库把数据同步到读库中。
分库分表
分库加读写分离
评论