关于数据库:腾讯云-TDSQL-审计原理揭秘

3次阅读

共计 2707 个字符,预计需要花费 7 分钟才能阅读完成。

开源数据库往往不具备商业数据库一样的高端能力,然而却因简略易用,无需 license 费用等深得大家喜爱,但在云服务时代,打造一款同时具备了开源数据库的性价比和商业数据库的安全性的数据库,简直是所有使用者心中的幻想。腾讯云数据库 TDSQL 基于这样的思考,实现了云化的审计能力,上面就让咱们一起来看看具体的技术细节。

各模块特点

1) proxy

三个无差别 proxy Ip,保障一个或者两个 proxy 故障时,残余 proxy Ip 失常工作用户无感知。
旁路信息进入 kafka 时,对数据进行压缩上传同时 kafka 必须半数节点响应胜利后才算正确上传。
每个用户实例都有本人独自的 proxy,在数据上传是不同实例音讯并发上传到 kafak 的 topic , 保障每个用户信息及时进入审计音讯队列。

2) Kafka

Kafka 是一种分布式的,基于公布 / 订阅的音讯零碎。次要设计指标如下:
以工夫复杂度为 O(1)的形式提供音讯长久化能力,即便对 TB 级以上数据也能保障常数工夫的拜访性能
高吞吐率。即便在十分便宜的商用机器上也能做到单机反对每秒 100K 条音讯的传输
反对 Kafka Server 间的音讯分区,及分布式生产,同时保障每个 partition 内的音讯程序传输
同时反对离线数据处理和实时数据处理
Kafka 解析

Terminology

Broker:Kafka 集群蕴含一个或多个服务器,这种服务器被称为 broker。
Topic:每条公布到 Kafka 集群的音讯都有一个类别,这个类别被称为 topic。(物理上不同 topic 的音讯离开存储,逻辑上一个 topic 的音讯尽管保留于一个或多个 broker 上但用户只需指定音讯的 topic 即可生产或生产数据而不用关怀数据存于何处)。
Partition:parition 是物理上的概念,每个 topic 蕴含一个或多个 partition,创立 topic 时可指定 parition 数量。每个 partition 对应于一个文件夹,该文件夹下存储该 partition 的数据和索引文件。
Producer:负责公布音讯到 Kafka broker
Consumer:生产音讯。每个 consumer 属于一个特定的 consumer group(可为每个 consumer 指定 group name,若不指定 group name 则属于默认的 group)。应用 consumer high level API 时,同一 topic 的一条音讯只能被同一个 consumer group 内的一个 consumer 生产,但多个 consumer group 可同时生产这一音讯。

一个典型的 kafka 集群中蕴含若干 producer(能够是 web 前端产生的 page view,或者是服务器日志,零碎 CPU、memory 等),若干 broker(Kafka 反对程度扩大,个别 broker 数量越多,集群吞吐率越高),若干 consumer group,以及一个 Zookeeper 集群。Kafka 通过 Zookeeper 治理集群配置,选举 leader,以及在 consumer group 发生变化时进行 rebalance。producer 应用 push 模式将音讯公布到 broker,consumer 应用 pull 模式从 broker 订阅并生产音讯。

3) audit-server

audit-server 是分布式服务,采纳一致性 hash 算法进行路由。
多协程并发解决模式保障 kafka 数据秒级别生产。
一致性 hash

在分布式集群中,对于机器的增加和删除曾经故障机器主动脱离集群不影响服务是分布式集群的最根本的性能。本次审计服务采纳一致性 hash 实现这种基本功能。

具体形容如下:依照罕用的 hash 算法来将对应的 key 哈希到一个具备 2^32 次方个桶的空间中,即 0~(2^32)- 1 的数字空间中,也就是将 object1,object2, object3, object4 四个(假如有四个实例对象)实例对象通过 hash 散列到 hash 环上。

同时将三个服务节点(假如三个服务节点),通过 hash 也散列到 hash 环上。如图(来自于网络),通过找出间隔本人最近的 node 节点,即可找到服务节点。

在服务节点增加删除或故障时实例对象都会主动的调整找到间隔本人最近的服务节点进行审计服务。

同时,在引入 audit-server 路由时,咱们发现 node 服务节点散布越平均,每个服务节点的负载也就越平均。这里援用了虚构节点来解决这一问题。

审计策略

独立规定加载协程:在规定加载时,不影响审计规定功能区性能
优先级:策略反对用户自定义优先级,在策略匹配时,优先匹配到优先级较高的策略。
规定设置丰盛: 反对规定 =, !=,>, >=, <, <= 以及正则匹配。
权限:反对二次认证,保证数据安全性。
多并发协程

协程,不须要抢占式调度,能够无效进步线程的工作并发性,而防止多线程的毛病(go 原生反对)
故障优化

耦合关系:保障一个子系统产生故障时,不会影响其余零碎的失常运行。
审计服务故障时保障数据不丢:音讯生产时会动静的记录匹配到规定的或者超过肯定阈值音讯的 offset,保障服务被调配到其余节点或者故障服务修复启动时都会从正确的地位生产音讯。
数据旁路 kafka 数据不丢:在数据传入到 kafka 是必须保障半数以上的节点响应此音讯时,才进行上面的数据传输。
告警及时感知:kafka 或者 MongoDB 不可用时会秒级别感知,发送告警信息给零碎负责人,及时复原服务。
主动扩容:匹配规定音讯存储采纳腾讯云 MongoDB,通过后盾买通,在存储空间不够时反对主动扩容。
数据程序性:每个音讯在旁路时都会被打上一个工夫戳同时音讯也是按程序进入音讯队列,在数据读取时依照工夫戳程序读取。

3) 腾讯云 MongoDB

腾讯云 MongoDB 特点:

设计服务数据存储采纳,腾讯云自有的 MongoDB 服务,该产品具备以下特点:

云存储服务,是腾讯云平台提供的面向互联网利用的数据存储服务。
提供了高性能、高牢靠、易用、便捷的 MongoDB 集群服务,每一个实例都是至多一主一从的正本集或者蕴含多个正本集的分片集群。
整合了备份、扩容等性能,尽可能的保障用户数据安全以及动静伸缩能力
当然,为了用户的平安思考,咱们所有的数据,都是须要用户被动开启审计的前提下,才会记录流水数据,并对数据进行过滤和存储。

应用云数据库 MongoDB 服务的益处:

平安:提供在线的至多两份数据存储,确保线上数据安全。同时通过备份机制保留多天的备份数据以便于在劫难状况进行数据恢复。
高性能:集中装置专用高性能存储服务器(高内存全 SSD 机型)来反对海量拜访。
省心:提供 7×24 小时的业余服务,扩容和迁徙对用户通明且不影响服务。提供全面监控,可随时掌控 MongoDB 服务质量。

正文完
 0