优化了分布式系统的吞吐量。除了应用代码本身,它在很大程度上优化了它所依赖的中间件集群的处理能力。如:kafka/redis/rabbitmq/postgresql/分布式存储(CephFS、JuiceFS、Curve、Longhorn)等集群处理能力。分布式存储集群(Longhorn)这里主要用于Citus集群的coordinator和worker节点的数据持久化。具体文档可以参考:https://longhorn.io/这里主要使用分布式PostgreSQL集群(Citus)对Sentry事件源数据的大表nodestore_node进行分片。具体文档请参考:https://docs.citusdata.com/en/v11.1/读写分离与高可用(PgPool+Repmgr)主要用于读写Citus节点(coordinator/worker))主备分离和高可用。具体文档请参考:https://www.pgpool.net/docs/pgpool-II-4.2.3/en/html/example-kubernetes.htmlhttps://repmgr.org/管理集群节点(PgAdmin)具体文档,参考:https://www.pgadmin.org/nodestore_nodelargetablefragmentationselectdistributedkey,并将表转换为分布式表,这里将表分成64个分片,数据均匀分布到6个workernodes:#创建分布式表SELECTcreate_distributed_table('nodestore_node','id',colocate_with=>'none',shard_count=>64);#平衡分片SELECTrebalance_table_shards();#查询分片SELECT*FROMcitus_shards;总结中软件集群基础设施建设本身涉及到很多细节,可以说是另一个领域。本文提供了作者的一种实践思路,抛砖引玉。
