数据库防火墙关键特性系列之二丨高性能和可扩缩性

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
云防火墙,500元 1000GB
简介:

作为一个技术人,对于文字的造诣远不及对代码的掌控,笔者不擅长用华丽的辞藻表达数据库防火墙所背负的重任,在大部分人眼中,它只是一个冰冷的盒子,但笔者依然希望依靠有限的语言能力,用技术人的思维把这样一个盒子的自我进阶之路讲给你们听。

实现了高可用性,解决了最基本的能不能串接部署的问题,数据库防火墙的“人生”可以说成功了一小半,下一个人生挑战随之而来:高性能和可扩缩性。

在这里,我们还是有必要先介绍一下数据库防火墙和传统网络防火墙的根本性差异:

一、关于深度协议解析和内容分析的复杂性挑战

传统网络防火墙:通常只分析网络层的包头和部分协议特征,不会对通讯包进行深度分析,一般不会对应答包进行分析。

数据库防火墙:需要对数据库通讯协议的请求包和应答包(双向包)进行深度分析:

1、对于请求包,需要解析出包中的SQL语句、参数化语句、参数值、跟踪语句游标。

2、对于应答包,需要解析出返回字段信息、结果集、应答信息等。

3、对于SQL语句,需要进行词法和语法分析(下一篇文章会介绍为什么需要进行语法分析,而不是简单的关键词匹配)。

4、对于参数值,和结果集,需要进行格式转换,并根据策略进行必要的内容过滤。

很明显,二者对通讯包的处理工作量存在很大差异。面对这样的工作强度,我们必须赋予数据库防火墙一颗强大的“心”,对其进行专门的处理逻辑优化和性能优化,能够实现低延迟,保证数据库操作的高吞吐量要求。

二、核心业务数据库的高吞吐量和扩缩性挑战

在以银行、保险、电信为代表的大型企业,以税务、海关、航空为代表的行业,和以快递业为代表的新兴领域中,相比大规模的WEB应用服务器集群,数据库服务器基本上采用的是少量高端设备支撑大规模的核心应用,无论采用的是RAC集群还是分布式数据库集群,核心业务场景多数都是采用非常高端的小型机来搭建,动辄上百甚至几百个CPU,几百GB的内存,高端磁盘阵列,支撑起强大的数据库事务吞吐量(TPS)。

在这种场景下,对于串联接入的数据库防火墙,面临“小马拉大车”的局面,高吞吐量和可扩缩性挑战有多严峻?下面两个实例充分体现:

首先,介绍一个数据库防火墙的实际经典案例:

数据库防火墙经典案例 拓扑图

在这个经典案例中,业务系统采用两套RAC节点进行负载均衡(双活)运行,常规稳定运行的情况下,单套RAC节点的性能指标需求如下:

当有一路网络环境出现故障,原来分散在2套RAC节点上的的压力将集中在一个数据库防火墙上,也就是说,异常情况下,单台数据库防火墙面临的是支撑2倍的吞吐量和会话量压力,同时通讯包的延迟仍然需要保持在50微秒以内。

另外一个想拿来说说的案例,是截止到目前,数据库防火墙面临的最高端性能案例:

数据库防火墙高端案例 拓扑图

在这个案例中,整体的数据库集群的性能需求是:

折合到单个DBFirewall设备,考虑到设备故障情况,需要支撑的性能指标:

三、高性能和可扩缩性解决方案

通过介绍这两个经典案例和高端案例,相信不用多说,大家已经能够感受到数据库防火墙必须具备怎样一颗强大的心:低延迟、高吞吐量、高可扩缩性能力。

我们确立了这一目标,下一步要做的是制定具体的解决方案,核心技术点有四:

1.极小化每个SQL操作的处理过程

众所周知,SQL语法分析非常耗时,需要专门进行优化:基于词法和语法分析,对业务系统的SQL语句进行抽象化处理,形成软解析结果,并对SQL语句进行序列化、标签化,这样就只需要对语法特征不一样的SQL语句进行解析,而应用系统中SQL语法特征不一样的SQL语句是有限的,这样,就能够极大的减少应用系统SQL语句的语法解析量。

2.无锁化设计,支撑高并发下的线性性能

随着系统并发量的增加,互斥锁会成为主要的性能瓶颈点;无锁化的实现方式是必然,必要时可以通过异步处理来提升吞吐量。

3.低延迟网络处理技术

随着吞吐量的增加,串联的网络处理开销会成为主要的延迟;推荐采用基于Intel DPDK的透明网卡通讯包处理技术,跳过操作系统内核协议栈的处理,实现低延迟。

4.推荐采用经典的多进程机制

在关系型数据库领域中,最经典的设计要数Oracle数据库的多进程架构,每个数据库的连接会话对应一个独立的Oracle进程来处理,这样的机制为数据库带来了两个典型优势:

高可扩缩性:随着硬件性能的提升,可以实现接近线性的处理性能提升。

高安全性:一个会话(进程)的处理异常,不影响其他会话(进程)。

安华金和数据库防火墙,正是基于以上四点核心技术设计开发的一款成熟的数据库防火墙产品,且已经经过了社保,金融,运营商等高端行业的验证。

至此数据库防火墙的自我修养之二——高性能和可扩缩性介绍完毕,欢迎广大用户继续关注数据库防火墙的自我修养系列文章。

名词术语解释

[1]DPDK:全称Data Plane Development Kit,是intel开发的x86芯片上用于高性能网络处理的基础库;是一款数据包转发处理套件;适合网络数据包分析,处理等操作;对于大数据包的转发,多核操作有一定的性能提升。


作者:杨海峰

来源:51CTO

相关文章
|
9天前
|
存储 人工智能 固态存储
软硬联合创新:打造极致压缩比的高性能瑶池数据库
本文介绍了阿里云瑶池数据库的软硬联合创新,旨在打造极致压缩比和高性能的数据库系统。内容涵盖五个方面:1) AMD EPC赋能阿里云数据库,提升计算性能;2) AMD EPYC全面支持阿里云数据库及AI应用;3) 小盈科技分享Polar DB的最佳实践,解决业务发展中的挑战;4) 基于阿里云新硬件完成存储规模拓展和性能演进,实现大规模数据处理;5) 阿里云资源存储部件的应用历史与演进,展示自研硬件的进步。通过这些创新,瑶池数据库实现了延迟降低30%、存储成本降低40%,并提供更高的安全性和灵活性。
|
2月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
6月前
|
SQL Linux 数据库
|
6月前
|
SQL 机器学习/深度学习 Oracle
关系型数据库Oracle关键特性
【7月更文挑战第5天】
106 3
|
2月前
|
SQL 安全 网络安全
Web应用防火墙(WAF)与数据库应用防火墙有什么区别?
Web应用防火墙(WAF)专注于Web应用系统和网站的应用层防护,可有效应对OWASP Top 10等常见攻击,防止SQL注入、CC攻击等。而数据库应用防火墙则位于应用服务器与数据库之间,提供数据库访问控制、攻击阻断、虚拟补丁等高级防护功能,直接保护数据库免受攻击。两者分别针对Web层和数据库层提供不同的安全保护。
57 4
|
3月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
205 2
|
5月前
|
开发者 UED Java
Play Framework惊天秘密:如何让异常处理优雅得像芭蕾舞?
【8月更文挑战第31天】在Web应用开发中,异常处理至关重要,直接影响应用稳定性和用户体验。Play Framework作为轻量级Java Web框架,提供了基于Scala偏函数的灵活异常处理机制。通过实现`HttpErrorHandler`接口可定义全局异常逻辑,而在控制器中使用try-catch块则能捕获特定异常。定义自定义异常类也有助于表示特定错误情况。最佳实践包括保持处理一致性、提供有用错误信息、记录日志及分类处理异常。掌握这些技巧,能使Play应用更健壮可靠。
74 1
|
5月前
|
Java 前端开发 Spring
技术融合新潮流!Vaadin携手Spring Boot、React、Angular,引领Web开发变革,你准备好了吗?
【8月更文挑战第31天】本文探讨了Vaadin与Spring Boot、React及Angular等主流技术栈的最佳融合实践。Vaadin作为现代Java Web框架,与其他技术栈结合能更好地满足复杂应用需求。文中通过示例代码展示了如何在Spring Boot项目中集成Vaadin,以及如何在Vaadin项目中使用React和Angular组件,充分发挥各技术栈的优势,提升开发效率和用户体验。开发者可根据具体需求选择合适的技术组合。
118 0
|
5月前
|
SQL 数据库 开发者
全面提速你的数据访问:Entity Framework Core性能优化指南,从预加载到批量操作的最佳实践揭秘,打造高性能数据库交互体验
【8月更文挑战第31天】本文详细介绍如何在Entity Framework Core(EF Core)中优化数据访问性能,涵盖从创建项目到定义领域模型、配置数据库上下文的最佳实践。文章通过具体代码示例讲解了预加载、惰性加载、显式加载、投影及批量操作等技术的应用,并介绍了如何使用SQL查询和调整查询性能来进一步提升效率。通过合理运用这些技术,开发者可以构建出高效且响应迅速的数据访问层,提升应用程序的整体性能和用户体验。
102 0
|
5月前
|
存储 SQL NoSQL
探索数据存储的多样性:深入比较Entity Framework Core与NoSQL数据库MongoDB的特性与应用
【8月更文挑战第31天】在现代软件开发中,选择合适的数据存储方案对应用性能至关重要。本文通过对比Entity Framework Core(EF Core)和MongoDB,探讨两者的特点及适用场景。EF Core作为.NET生态中的ORM,简化了SQL数据库的交互;MongoDB则是一种灵活的NoSQL文档数据库,适合处理大量非结构化数据。两者在数据模型、查询方式及性能上各有优势,选择时需根据具体应用需求决定。理解这些差异有助于做出更合理的技术选型。
118 0