1.TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
2.一体化实时HTAP数据库StoneDB,源码如何替换MySQL并实现近百倍分析性能的源码提升
TDengine 资深研发整理:基于 SpringBoot 多语言实现 API 返回消息国际化
SpringBoot,作为Java开发领域广受欢迎的源码技术框架,在构建Web应用程序和微服务方面发挥着重要作用。源码它通过简化开发流程、源码提供约定大于配置的源码打板战法主图源码原则以及集成常用库和组件,助力开发者高效构建应用程序。源码
为了帮助开发者更好地掌握SpringBoot,源码我们整理了TDengine资深研发的源码内部分享——《SpringBoot 多语言支持方案》,供开发者参考。源码
在项目依赖中引入spring-boot-starter和spring-boot-autoconfigure两个包,源码即可使用SpringBoot提供的源码多语言定义和解析工具。在spring-boot-autoconfigure的源码源码中,可以看到MessageSourceAutoConfiguration类已自动装配了MessageSource对象。源码
在IDEA中,源码在resources资源包上右键新建资源包,画地块 源码填写资源包名如:messages,选择区域设置,包括en、zh_CN、zh_TC等选项。在resources包内即可看到绑定的多语言文件。
在配置文件中添加message,格式为:{ code}={ message}。在业务模块中使用多语言消息,首先分析API服务请求响应流程,包括身份认证、API接口鉴权认证、权限识别等,验证通过后进入业务逻辑,最后通过接口返回。javajsp管理源码
异常国际化配置可以通过定义多语言message和获取LocaleMessageProvider实现。SpringBoot框架通过LocaleContextHolder.getLocale()获取Locale,并在RequestContextFilter中设置LocaleContext。
客户端在请求中添加Accept-Language=zh-CN头,即可验证返回的结果。例如,登录出错时,客户端接收到的信息为国际化后的错误信息。
以上就是基于SpringBoot多语言支持方案的完整分享,希望对开发者有所帮助。如有其他技术问题或时序数据处理难题,可联系TDengine的技术研发人员进行沟通。
TDengine是一款高性能、集群开源、云原生的深入qt源码时序数据库,专为物联网、工业互联网、电力、IT运维等场景设计。它具有内建的缓存、流式计算、数据订阅等系统功能,降低系统设计复杂度和研发运营成本。TDengine提供TDengine Enterprise和TDengine Cloud两个版本,用户可根据需求选择。
一体化实时HTAP数据库StoneDB,如何替换MySQL并实现近百倍分析性能的提升
众所周知,MySQL 是世界上最流行的 OLTP 数据库之一,拥有超过%的市场份额(数据来源:Slintel网站)。许多企业依赖 MySQL 实现业务系统的微软源码tfs运行。然而,随着数据量的增长,MySQL 在处理复杂分析任务如 BI 报表、可视化和大数据应用时面临挑战。MySQL 的架构(基于流式迭代器模型 Volcano Iterator 的执行引擎,没有充分利用现代多核 CPU 的并行处理能力,采用按行存储的存储引擎)在 AP 场景中存在天然缺陷。为解决这个问题,业界提出了多种解决方案,主要是围绕 MySQL 建立的异构 HTAP(同时支持事务处理和分析处理)数据库系统。
HTAP 的定义:在年,Gartner 定义 HTAP 旨在打破事务型负载和分析型负载之间的壁垒,允许系统在两个系统之间更自由地流动数据,并基于这些数据进行实时业务决策。传统架构中,通过一套事务处理系统加一套分析系统,通过 ETL 进行数据同步,以满足实时性需求,这是当前搭建 HTAP 的主流方案。
业界基于 MySQL 的 HTAP 解决方案:
1. MySQL + Hadoop:将 MySQL 数据通过 ETL 工具同步至开源大数据系统(如 Hive、Hadoop、Spark 等)的数据仓库进行分析。
2. MySQL + 数据湖:通过 ETL 工具将 MySQL 数据同步至数据湖平台,基于数据湖进行数据分析。
3. MySQL + ClickHouse/Greenplum:使用 ETL 工具将 MySQL 数据迁移到 ClickHouse/Greenplum 进行分析。ClickHouse 社区版 MaterializeMySQL 引擎允许将 ClickHouse 作为 MySQL 的从库同步主节点数据。
4. 基于多副本的 Divergent Design:如 TiDB,采用自研列式存储(TiFlash)以响应复杂 AP 查询,并通过智能路由功能自动选取数据源,实现分布式 HTAP 数据库系统。
以上方案存在一些问题,而 StoneDB 提供了一种全新的解决方案。
StoneDB 是一款开源的 MySQL 兼容的一体化实时 HTAP 数据库,采用原生 MySQL 架构,具备一体化行列混合存储能力,以极低的成本实现高性能实时 HTAP。StoneDB 的设计初衷是通过一套数据库同时解决事务处理和分析处理的问题,更轻量、更优雅、更便捷。其架构与国外厂商(如 Oracle、SQL Server、DB2)的方案类似,但 StoneDB 是开源的。
StoneDB 以插件形式接入 MySQL,通过查询/写入接口与 MySQL server 层进行交互。主要特性包括:
数据组织形式:数据按列进行组织,对各类压缩算法友好,可根据数据类型选择合适的高效压缩算法,节约 IO 和 Memory 资源。具备列数据压缩、数据组织结构与知识网格等优点。
知识网格概览:基于知识网格的查询优化,通过剪枝、解压、数据节点分类等策略优化查询效率。
处理流程:通过知识网格确定关联性和不确定性数据节点,执行计划构建时规避非关联节点,减少数据访问。
全面兼容 MySQL 生态的 StoneDB 一体化 HTAP 系统优势显著,包括:
高性能、低延迟、高可扩展性、易于部署和管理、低 TCO 等特点。
StoneDB 2.0 版本将引入基于内存计算的列存引擎,实现 AP 负载的全内存计算,进一步提升性能。更多信息请关注 StoneDB 官方网站。
StoneDB 开源仓库:
<a href="github.com/stoneatom/st...
作者:
李浩,StoneDB PMC、首席架构师,拥有华为、爱奇艺、北大方正等公司的数据库内核核心架构设计经验,擅长查询引擎、执行引擎、大规模并行处理等技术,拥有数十项数据库发明专利,著有《PostgreSQL查询引擎源码技术探析》。
高日耀,StoneDB PMC、HTAP 内核架构师,毕业于华中科技大学,专注于主流数据库架构和源码研究,8年数据库内核开发经验,曾参与 CirdroData、RadonDB 和 TDengine 的内核研发工作。