首页 > 数据库 > 数据库开发技术 > 企业级高可用网关案例剖析

前端层:
包括多个 APP 和 WEB 应用,直接面对用户。
LVS 层:
使用 LVS(Linux Virtual Server)进行负载均衡,将请求分发到多个 Nginx 服务器。
网关层:
使用 Nginx 作为反向代理服务器,分发请求到不同的 API GateWay。
每个 API GateWay 处理特定类型的 API 请求。
逻辑层:
包含多个逻辑处理模块(Logic1, Logic2, LogicN),负责具体的业务逻辑处理。
数据访问层:
包含 DAO(数据访问对象),用于与数据库进行交互。
数据库层:
使用多个数据库实例存储数据。
这种架构的特点是每个层次都可以进行横向扩展,增加服务器来提高系统的处理能力,较为灵活。
中心化架构展示在右边部分,特点如下:
前端层:
通过移动设备、网站、移动浏览器等多种入口访问系统。
服务层:
包括用户服务、商品服务、库存服务、订单服务、数据分析服务等多个服务,每个服务都有独立的数据库(如 MySQL, Redis)。
管理后台:
提供统一的管理后台,进行系统的监控和管理。
消息队列(MQ):
各个服务之间通过消息队列进行通信,确保数据的一致性和服务的解耦。
这种架构的特点是将系统划分为多个独立的微服务,每个服务专注于特定的业务功能,具有高度的可扩展性和灵活性。
去中心化架构注重系统的扩展性和灵活性,通过多个层次的分布式组件实现高可用和高性能。
中心化架构则通过微服务的方式将系统的各个功能模块独立出来,易于维护和扩展,同时通过消息队列实现各服务之间的通信,增强了系统的解耦性和容错能力。


























总结:
去中心化:使用网关层架构,通过LVS和Nginx进行负载均衡和请求转发,增强系统的扩展性和灵活性。
中心化:采用微服务架构,将系统划分为多个独立的服务,每个服务负责特定的功能,使用消息队列进行服务间通信。
请求鉴权:实现登录鉴权,确保只有合法用户才能访问系统。
数据完整性检查:确保数据包的完整性,避免数据丢失或篡改。
协议转换:将JSON格式的数据转换为内部使用的HashMap格式。
路由转发:根据请求的CMD将请求转发到不同的业务逻辑层。
服务治理:包括限流、降级和熔断等功能,确保系统的高可用性和稳定性。
缓存设计:使用缓存技术提高数据读取速度。
异步线程设计:通过异步处理提高系统的并发处理能力。
CORS:解决跨域资源共享问题,设置豁免清单,允许跨域请求和cookie的跨域使用。
无状态设计:确保系统的高可用性和可扩展性。
Session共享:使用Redis缓存服务统一存储Session,保证高性能和高可用性。
黑名单机制:通过IP、deviceId和uid等信息建立黑名单,拦截恶意流量。
协议约定:网关和前端使用JSON协议,RPC调用使用Map格式的入参,返回统一的Result对象。
负载均衡和服务发现:使用RPC框架实现负载均衡和服务发现。
熔断设计:采用Hystrix框架实现熔断功能。
Spring Cloud Netflix:包括Zuul、Eureka等组件。
Spring Cloud Alibaba:包括APIGateway、Dubbo、Nacos等组件。
原文作者:二进制跳动;如有侵权,请联系管理员删除。