C++ 快速上手使用 Protobuf
大纲
前言
学习资源
版本说明
本文使用各软件的版本如下表所示:
| 软件 | 版本 | 说明 |
|---|---|---|
| C++ 标准 | 17 | 高版本的 Protobuf 库依赖 C++ 17 |
| Protobuf | 31.1 | Protobuf 库,核心代码主要是用 C++ 开发 |
| G++(GCC) | 12.2.0 | 建议使用 9 版本的 G++(GCC) 编译器 |
| CMake | 3.25.1 | C/C++ 项目构建工具 |
| Linux | Debian 12 |
Protobuf 介绍
Protocol Buffers(简称 Protobuf)是 Google 提出的一种高效、可扩展的结构化数据序列化格式,用于数据交换。它独立于平台和编程语言,具有良好的跨平台兼容性和扩展性。
Google 为多种主流编程语言提供了 Protobuf 的官方实现,包括 Java、C#、C++、Go 和 Python 等。每种语言的实现都包含相应的编译器插件(
protoc)和运行时库,使得开发者可以在不同语言间无缝进行数据通信。由于 Protobuf 采用紧凑的二进制编码格式,其序列化和反序列化效率远高于基于文本的格式。相比 XML,Protobuf 的传输效率可提高约 20 倍;相比 JSON,也有近 10 倍的性能提升。这使得它特别适用于对性能要求高的场景。
Protobuf 广泛应用于分布式系统间的数据通信、异构平台的数据交换,也适合用作网络传输协议的数据格式、高效配置文件的载体、或用于数据持久化存储。作为一种兼具效率与可维护性的序列化方案,Protobuf 在大规模系统设计中具有极高的实用价值。
SpringBoot 整合 Kafka
Sentinel 进阶教程 - 整合篇(2024 年)
大纲
- Sentinel 入门教程 - 基础篇(2020 年)
- Sentinel 入门教程 - 中级篇(2020 年)
- Sentinel 入门教程 - 整合篇(2020 年)
- Sentinel 进阶教程 - 基础篇(2024 年)
- Sentinel 进阶教程 - 中级篇(2024 年)
- Sentinel 进阶教程 - 整合篇(2024 年)
前言
本文主要介绍 Sentinel 整合主流框架,比如 OpenFeign、Spring Cloud Gateway 等。
ElasticSearch 性能优化教程
ES 优化
索引优化:
- 映射(Mapping):合理设计索引映射,避免使用动态映射,并为每个字段明确指定数据类型。
- 字段类型:对于不需要全文搜索的字段,使用
keyword类型而非text类型。 - 合并(Merging):通过配置
index.merge参数优化段合并,以减少 I/O 开销。 - 刷新间隔:调整
index.refresh_interval参数,减少刷新频率以提高写入性能(默认是 1 秒,可以根据实际需要调整)。
查询优化:
- 缓存:利用 ES 的节点查询缓存和过滤器缓存来加速常见查询。
- 分片首选项:设置
preference参数来避免每次查询都访问不同的副本,从而提高缓存命中率。 - 分页:避免深分页,使用
search_after或scroll来处理大量结果集。
Sentinel 进阶教程 - 中级篇(2024 年)
大纲
- Sentinel 入门教程 - 基础篇(2020 年)
- Sentinel 入门教程 - 中级篇(2020 年)
- Sentinel 入门教程 - 整合篇(2020 年)
- Sentinel 进阶教程 - 基础篇(2024 年)
- Sentinel 进阶教程 - 中级篇(2024 年)
- Sentinel 进阶教程 - 整合篇(2024 年)
前言
官方资源
版本说明
在本文的所有案例中,各个组件统一使用以下版本:
| 组件 | 版本 | 说明 |
|---|---|---|
| Spring Boot | 3.2.0 | |
| Spring Cloud | 2023.0.0 | |
| Spring Cloud Alibaba | 2022.0.0.0 | |
| Sentinel Dashboard | 1.8.7 |
Sentinel 进阶教程 - 基础篇(2024 年)
大纲
- Sentinel 入门教程 - 基础篇(2020 年)
- Sentinel 入门教程 - 中级篇(2020 年)
- Sentinel 入门教程 - 整合篇(2020 年)
- Sentinel 进阶教程 - 基础篇(2024 年)
- Sentinel 进阶教程 - 中级篇(2024 年)
- Sentinel 进阶教程 - 整合篇(2024 年)
前言
官方资源
版本说明
在本文的所有案例中,各个组件统一使用以下版本:
| 组件 | 版本 | 说明 |
|---|---|---|
| Spring Boot | 3.2.0 | |
| Spring Cloud | 2023.0.0 | |
| Spring Cloud Alibaba | 2022.0.0.0 | |
| Sentinel Dashboard | 1.8.7 |
