乙巳🐍年

acc8226 的博客

节点-Nodes

Citus 是一个 PostgreSQL 扩展,它允许普通数据库服务器(称为节点)以“无共享”架构彼此协调。这些节点形成一个集群,使 PostgreSQL 能够比在单台计算机上容纳更多的数据并使用更多的 CPU 核。这种体系结构还允许数据库通过简单地向集群添加更多节点来扩展。

协调器 Coordinator 和工作器 Workers

每个集群都有一个称为协调器(coordinator)的特殊节点(其他节点称为工作器 workers)。应用程序将查询发送到协调节点,协调节点将查询转发给相关的 workers 并累积结果。

对于每个查询,协调器要么将其路由到单个工作节点,要么根据所需数据是存在于单个节点还是多个节点,将其并行化到多个工作节点。协调器知道如何通过查询其元数据表来实现这一点。这些特定于 Citus 的表跟踪工作节点的 DNS 名称和健康状况,以及跨节点的数据分布。有关更多信息,请参见我们的 Citus 表和视图。

阅读全文 »

在 Citus 集群上运行高效查询需要将数据正确地分布在计算机之间。这随应用程序类型及其查询模式的不同而不同。

在 Citus 上运行良好的应用程序大致有两种。数据建模的第一步是确定其中哪一个更类似于您的应用程序。

一览

Multi-Tenant Applications Real-Time Applications
模式中有时有几十或几百个表 Small number of tables
一次查询一个租户(公司/商店) 使用聚合的相对简单的分析查询
用于服务 Web 客户端的 OLTP 工作负载 摄取大部分不可变数据的高容量
为每个租户提供分析查询的 OLAP 工作负载 经常围绕着一个大的事件表

例子及特色

Multi-Tenant Application

这些通常是服务于其他公司、帐户或组织的 SaaS 应用程序。大多数 SaaS 应用程序本质上是关系型的。它们有一个自然的维度,可以在这个维度上将数据分布到节点上: 只需通过 tenant_id 分片即可。

Citus 使您能够向数百万租户扩展数据库,而无需重新构建应用程序。您可以保持所需的关系语义,比如连接、外键约束、事务、 ACID 和一致性。

  • 例如: 为其他企业提供门面服务的网站,如数字营销解决方案或销售自动化工具。
  • 特性: 与单个租户相关的查询,而不是跨租户连接信息。这包括用于服务 Web 客户端的 OLTP 工作负载,以及用于服务每租户分析查询的 OLAP 工作负载。在数据库模式中有几十或几百个表也是多租户数据模型的一个指示器。

使用 Citus 扩展多租户应用程序也需要对应用程序代码进行最小限度的更改。我们支持 Ruby on Rails 和 Django 这样的流行框架。

阅读全文 »

单节点 citus

通过 docker 进行安装

1
2
3
4
5
6
7
8
# start the image
docker run -d --name citus -p 5432:5432 -e POSTGRES_PASSWORD=pppppp citusdata/citus:11.2

# connect using psql within the Docker container
docker exec -it citus psql -U postgres

# # or, connect using local psql, verify it's running, and that Citus is installed:
psql -U postgres -h localhost -d postgres -c "SELECT * FROM citus_version();"
阅读全文 »

Apache JMeter 官网
https://jmeter.apache.org/index.html

下载地址
https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.zip

压力测试场景设计

1. 哪些业务需要做压力测试?

  • 比较常用的业务场景(or 功能模块)
  • 单业务场景/或者多业务场景
  • 项目要求做的业务场景

2. 压力测试的并发数是多少?

  • 有预期的数值?一次性达到?有上次性能测试的结果值?100 200 300 参照上次性能测试的结果 200 2:8
  • 无预期的数值?只有参考的在线用户数?2:8 原则———>可以用在线用户数的 20% 作为参考去测试。
阅读全文 »

多租户应用程序

在本教程中,我们将使用一个示例广告分析数据集来演示如何使用 Citus 为多租户应用程序提供支持。

本教程假设您已经安装并运行了 Citus。如果没有运行 Citus,可以使用 Single-Node Citus 中的一个选项在本地设置 Citus。

数据模型和示例数据

我们将演示为一个广告分析应用程序建立数据库,公司可以用来查看,更改,分析和管理他们的广告和活动(见一个应用程序的例子)。这样的应用程序具有典型的多租户系统的良好特征。来自不同租户的数据存储在一个中央数据库中,每个租户都有自己数据的独立视图。

我们将使用三个 Postgres 表来表示这些数据。首先,您需要下载这些表的示例数据:

1
2
3
curl https://examples.citusdata.com/tutorial/companies.csv > companies.csv
curl https://examples.citusdata.com/tutorial/campaigns.csv > campaigns.csv
curl https://examples.citusdata.com/tutorial/ads.csv > ads.csv
阅读全文 »
0%