数据压缩

SOFA 注册中心通过特有的三层架构模型,实现了理论上无限水平扩容的能力。可以支持海量客户端的接入和海量服务数据的注册和订阅。但是凡事皆有瓶颈,当应用集群达到一定规模后,网络带宽将成为阻碍。SOFA 注册中心提供了数据压缩功能,可以优化推送的数据包大小,进一步提升大规模应用集群的支持。

默认情况下,注册中心并不会开启数据压缩功能,如果要使用数据压缩功能,需要服务端和客户端双边进行配置。任何一边未开启,数据压缩都不会生效。本文主要介绍客户端侧的配置。

重要

开启数据压缩后,默认情况下只有当推送数据大于 4KB 时,推送数据才会被压缩传输。这是为了平衡带宽与运算的损耗。此外,开启数据压缩后,注册中心客户端与服务端之间会切换到 protobuf 序列化通讯。

客户端配置

您可以在application.properties文件中配置spring.cloud.sofa.discovery.compressEncoding参数来指定压缩算法,配置该参数即意味着客户端允许服务端使用这些算法进行数据压缩。

spring.cloud.sofa.discovery.compress-encoding=zstd,gzip

该配置可指定多种压缩算法,算法间用半角逗号(,)分隔,服务端会根据上传的算法来判断使用哪种算法进行压缩,排在前面的算法会优先匹配。目前注册中心提供了 ZSTD 和 GZIP 两种压缩算法的支持。