Clay 的技术空间

用进废退 | 艺不压身

查看整机系统性能

top

使用 top 命令,可以查看系统的负载情况,重点关注的是 %CPU%MEMload average 三个性能指标。

1
top
阅读全文 »

大纲

前言

学习资源

版本说明

本文使用各软件的版本如下表所示:

软件版本说明
C++ 标准17高版本的 Protobuf 库依赖 C++ 17
Protobuf31.1Protobuf 库,核心代码主要是用 C++ 开发
G++(GCC)12.2.0建议使用 9 版本的 G++(GCC) 编译器
CMake3.25.1C/C++ 项目构建工具
LinuxDebian 12

Protobuf 介绍

  • Protocol Buffers(简称 Protobuf)是 Google 提出的一种高效、可扩展的结构化数据序列化格式,用于数据交换。它独立于平台和编程语言,具有良好的跨平台兼容性和扩展性。

  • Google 为多种主流编程语言提供了 Protobuf 的官方实现,包括 Java、C#、C++、Go 和 Python 等。每种语言的实现都包含相应的编译器插件(protoc)和运行时库,使得开发者可以在不同语言间无缝进行数据通信。

  • 由于 Protobuf 采用紧凑的二进制编码格式,其序列化和反序列化效率远高于基于文本的格式。相比 XML,Protobuf 的传输效率可提高约 20 倍;相比 JSON,也有近 10 倍的性能提升。这使得它特别适用于对性能要求高的场景。

  • Protobuf 广泛应用于分布式系统间的数据通信、异构平台的数据交换,也适合用作网络传输协议的数据格式、高效配置文件的载体、或用于数据持久化存储。作为一种兼具效率与可维护性的序列化方案,Protobuf 在大规模系统设计中具有极高的实用价值。

阅读全文 »

大纲

SpringBoot 整合 Kafka

本节将介绍 SpringBoot 项目如何整合 Kafka,包括发送消息到 Kafka 和从 Kafka 消费消息。值得一提的是,本节给出的配置和代码同样适用于 SpringCloud 项目整合 Kafka,具体案例请看 这里

代码下载

本节所需的案例代码,可以直接从 GitHub 下载对应章节 kafka-lesson-19

阅读全文 »

大纲

前言

本文主要介绍 Sentinel 整合主流框架,比如 OpenFeign、Spring Cloud Gateway 等。

阅读全文 »

ES 优化

  • 索引优化

    • 映射(Mapping):合理设计索引映射,避免使用动态映射,并为每个字段明确指定数据类型。
    • 字段类型:对于不需要全文搜索的字段,使用 keyword 类型而非 text 类型。
    • 合并(Merging):通过配置 index.merge 参数优化段合并,以减少 I/O 开销。
    • 刷新间隔:调整 index.refresh_interval 参数,减少刷新频率以提高写入性能(默认是 1 秒,可以根据实际需要调整)。
  • 查询优化

    • 缓存:利用 ES 的节点查询缓存和过滤器缓存来加速常见查询。
    • 分片首选项:设置 preference 参数来避免每次查询都访问不同的副本,从而提高缓存命中率。
    • 分页:避免深分页,使用 search_afterscroll 来处理大量结果集。
阅读全文 »

大纲

前言

官方资源

版本说明

在本文的所有案例中,各个组件统一使用以下版本:

组件版本说明
Spring Boot3.2.0
Spring Cloud2023.0.0
Spring Cloud Alibaba2022.0.0.0
Sentinel Dashboard1.8.7
阅读全文 »

大纲

前言

官方资源

版本说明

在本文的所有案例中,各个组件统一使用以下版本:

组件版本说明
Spring Boot3.2.0
Spring Cloud2023.0.0
Spring Cloud Alibaba2022.0.0.0
Sentinel Dashboard1.8.7
阅读全文 »