支持强大的GIS地理信息系统
GIS地理信息系统是指一个空间数据库,它通过SQL语言高效的进行空间数据管理、数量测量与几何拓扑分析对地球表层(包括大气层)空间中的地理分布数据进行采集、储存、管理、运算、分析、显示和描述。TeleDB透过集群化的PostGis插件,使其更好的支持强大的GIS地理信息系统。
说明PostGIS插件不仅实现了Open Geospatial Consortium 所提出的基本要素类(点、线、面、多点、多线、多面等)的SQL实现参考。PostGIS还能使用well-known text与well-known binary在数据库中存储空间对象。well-known text是一种用文本表示空间对象的注记方法,well-known是一种用二进制流表示空间对象的存储方法。
GIS地理信息系统目前支持提供了如下的空间特性:
- 定义了一些基本的集合实体类型。
- 定义了一系列的函数和操作符来实现几何类型的操作和运算。
- 引入空间数据索引。
异构数据复制能力
在实际业务中,会涉及到非常多的TeleDB同其他数据库,包括PostgreSQL,MySQL,Oracle等的数据同步的需求。为了满足TeleDB和其它数据库包括PostgreSQL,MySQL,Oracle等实现数据同步,TeleDB开发了一款性能高效,安全可靠,功能完善的异构数据库复制工具。通过异构数据复制工具,让数据能够很好的在多个数据库中实现共享。
异构数据复制逻辑图如下:
异构数据复制原理主要通过数据实时同步、数据一致性同步和多种不同的数据同步方式组成。
-
数据实时同步 : 同步数据需准实时的(分钟级)由源库同步到目标库。
-
数据一致性同步:异构数据库同步具备高可靠性,当发生断网、服务器重启、服务器宕机一段时间恢复后等场景下,保障同步数据的最终一致性。
-
数据同步方式:TeleDB支持对所有数据的全量同步和对变化数据的增量同步,以及配置同步任务。
- 全量同步:一般在系统迁移中,有历史数据的迁移,一次需要支持高效快速的将历史数据迁移到新系统的能力,称为全量同步。一般在全量同步完成后,会切换为下文提到的增量同步模式。
- 增量同步:同步工具实时跟踪数据改变情况,并及时将增量数据同步到目标库。
- 定时同步:支持配置类似定时任务,支持周期性向目标进行数据同步。
集群负载均衡能力
负载均衡是将网络或应用流量有效分配到多个服务器或节点上,以实现资源优化利用、提高系统响应速度和可用性的技术。TeleDB已集成了LVS(Linux Virtual Server)负载均衡组件,支持把应用负载均分到任意多个协调节点(Coordinator)上,业务可以通过唯一的VIP地址连接到TeleDB。
TeleDB集成LVS负载均衡组件,其有如下优势:
提高系统并发处理能力
- 均衡负载分布:通过自动负载均衡,可以将客户端的请求均衡地分配到多个CN节点上,避免了单一节点的过载情况,从而提高了整个系统的并发处理能力。
- 资源高效利用:负载均衡确保每个CN节点的资源都能得到充分利用,避免了资源的闲置和浪费。
增强系统可用性和可靠性
- 故障自动切换:当某个CN节点发生故障时,负载均衡机制可以自动将请求路由到其他正常的CN节点,确保业务不中断,增强了系统的可用性。
优化用户体验
- 减少响应时间:负载均衡可以减少用户请求的等待时间,提高响应速度,从而提升用户体验。
- 提高系统稳定性:通过均衡负载,避免了系统因过载而出现的性能下降或崩溃情况,提高了系统的稳定性。
简化运维管理流程
- 自动化运维:负载均衡的自动化特性减轻了运维人员的负担,降低了人为错误的风险。
- 动态调整:当系统负载发生变化时,负载均衡机制可以自动调整策略,以适应新的负载情况,无需人工干预。
支持扩展
水平扩展:通过增加CN节点的方式可以轻松应对业务量的增长。负载均衡机制则确保了新增节点能够迅速接入并承担负载。
当某个CN停机,或者异常时,系统会自动把异常CN从负载均衡中剔除,确保业务访问到正常的节点。
支持负载均衡的容灾,当主节点宕机,流量会自动切换到备机,安全可靠。更多的负载均衡组件持续接入中。
LVS组件需满足如下要求:
- 提供VIP。
- Linux内核需要在2.6版本以上。
集群部署要求:
- 加入负载均衡的CN端口必须一致。
支持JSON数据类型
TeleDB支持非关系型数据类型 JSON,JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的,其核心优势在于能强制要求每个被存储的值符合JSON规则,且支持存储JSON 相关的函数和操作符。JSON 数据类型有json 和 jsonb,且两种数据类型接受完全相同的值集合作为输入,其主要的实际区别是效率。
- json数据类型存储输入文本的精准拷贝,处理函数必须在每次执行时必须重新解析该数据。
- jsonb数据被存储在一种分解好的二进制格式中,它在输入时要稍慢一些,因为需要做附加的转换。但是 jsonb在处理时要快很多,因为不需要解析。jsonb也支持索引,这也是一个令人瞩目的优势。