自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(201)
  • 收藏
  • 关注

原创 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇(内附开发 demo)

简介小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。系列云原生 API 网关,gRPC-Gateway V2 初探业务流程官方开发接入文档初始化项目开发环境为少 的本地开发环境go version# go version go1.14.14 darwin/amd64protoc --version# libprotoc 3.15.7protoc-gen-go --version# protoc-gen-go v1.26.

2021-04-07 10:22:24 1187 2

原创 Sentry(v20.12.1) K8S 云原生架构探索,玩转前/后端监控与事件日志大数据分析,高性能+高可用+可扩展+可伸缩集群部署

Sentry 算是目前开源界集错误监控,日志打点上报,事件数据实时分析最好用的软件了,没有之一。将它部署到 Kubernetes,再搭配它本身自带的利用 Clickhouse (大数据实时分析引擎)构建的 Snuba 服务进行数据分析~简直了。(已无敌????)在实战之前,我们先跟随官方文档初步了解下 Sentry 的整体项目架构。项目架构这一节,来自于官方文铛。https://develop.sentry.dev/architecture/注意:最新官方版 20.12.1。它的架构细节可能

2021-01-13 16:19:05 663

原创 使用容器快速在阿里云 ECS 多节点上搭建 Citus 12.1 集群

阿里云 ECS机器节点这里我们使用两台同一区域的 ECS 机器。机器配置:2 核 2 G。(ps: 阿里云 99 元一年的活动)一台安装 coordinator(协调器),这里内网 IP 为 172.18.60.11一台安装 worker,这里内网 IP 为 172.18.60.12操作系统两台机器分别安装了厂商的 Alibaba Cloud Linux 3 系统。lsb_...

2023-12-27 17:19:00 432

原创 使用 PostgreSQL 16.1 + Citus 12.1 作为多个微服务的分布式 Sharding 存储后端

在本教程中,我们将使用 PostgreSQL 16.1 + Citus 12.1 作为多个微服务的存储后端,演示此类集群的样例设置和基本操作。Citus 12.1 实验环境设置Docker 快速启动 Citus 分布式集群docker-compose.ymlversion: "3"services: master: container_name: "${COMPOSE...

2023-12-26 10:15:00 1019

原创 StackGres 数据库平台工程,使用 Citus + Patroni 创建生产级高可用分布式 PostgreSQL 分片集群...

系列StackGres, 可私有部署的云原生数据库平台工程StackGres数据库平台工程功能介绍与快速上手StackGres 1.6 数据库平台工程集群配置管理(K8S Pods/PostgreSQL/PgBouncer)StackGres 1.6 数据库平台工程,集群高可用(Patroni 3 管理)什么是 Sharded Cluster(分片集群)Sharded Clu...

2023-12-05 18:49:00 256

原创 StackGres 1.6 数据库平台工程集群配置管理(K8S Pods/PostgreSQL/PgBouncer)

Postgres 配置PostgreSQL 的配置在 SGPostgresConfig CRD 中指定。如果在创建集群时没有指定自定义配置,StackGres 将创建一个默认配置,您可以在 这里 看到。https://stackgres.io/doc/latest/reference/crd/sgpostgresconfig/https://stackgres.io/doc/lates...

2023-12-04 10:11:00 89

原创 StackGres 1.6 数据库平台工程功能介绍以及快速上手

StackGres 1.6 数据库平台工程功能声明式 K8S CRsStackGres operator 完全由 Kubernetes 自定义资源管理。除了 kubectl 或任何其他 Kubernetes API 访问之外,不需要安装任何客户端或其他工具来管理 StackGres。您的请求由 CRD 的 spec 部分表示,任何 result 信息都在集群中资源的 status 部分中提...

2023-12-01 12:55:00 103

原创 StackGres 1.6,可私有部署的云原生数据库中间件平台工程

StackGres 数据库平台工程简介Enterprise Postgres made easy. On KubernetesStackGres 是 Kubernetes 的全栈 PostgreSQL 发行版,打包成一个简单的部署单元。使用精心选择和调优的 PostgreSQL 组件。一个企业级的 PostgreSQL 栈需要几个其他的生态系统组件和重要的调整。不仅仅是 Pos...

2023-11-30 16:27:00 464

原创 云原生可观测框架 OpenTelemetry 基础知识(架构/分布式追踪/指标/日志/采样/收集器)...

什么是 OpenTelemetry?OpenTelemetry 是一个开源的可观测性框架,由云原生基金会(CNCF)托管。它是 OpenCensus 和 OpenTracing 项目的合并。旨在为所有类型的可观测信号(如跟踪、指标和日志)提供单一标准。https://opentelemetry.iohttps://www.cncf.iohttps://opencensus.ioO...

2023-08-08 09:04:00 1254

原创 React 前端应用中快速实践 OpenTelemetry 云原生可观测性(SigNoz/K8S)

OpenTelemetry 可用于跟踪 React 应用程序的性能问题和错误。您可以跟踪从前端 web 应用程序到下游服务的用户请求。OpenTelemetry 是云原生计算基金会(CNCF)下的一个开源项目,旨在标准化遥测数据的生成和收集。已成为下一代可观测平台的事实标准。React(也称为 React.js 或 ReactJS )是一个免费的开源前端 JavaScript 库,用于基于 ...

2023-07-26 10:06:00 956

原创 Sentry 后端云原生中间件实践 ClickHouse PaaS ,为 Snuba 事件分析引擎提供动力

目录(脑图)ClickHouse PaaS 云原生多租户平台(Altinity.Cloud)官网:https://altinity.cloudPaaS 架构概览设计一个拥有云原生编排能力、支持多云环境部署、自动化运维、弹性扩缩容、故障自愈等特性,同时提供租户隔离、权限管理、操作审计等企业级能力的高性能、低成本的分布式中间件服务是真挺难的。SaaS 模式交付给用户Sentry ...

2023-02-13 13:27:00 566

原创 Longhorn+K8S+KubeSphere云端数据管理,实战 Sentry PostgreSQL 数据卷增量快照/备份与还原...

云端实验环境配置VKE K8S ClusterVultr 托管集群https://vultr.com/3 个 worker 节点,kubectl get nodes。k8s-paas-71a68ebbc45b Ready <none> 12d v1.23.14k8s-paas-dbbd42d034e6 Ready <non...

2023-01-22 13:27:00 1448

原创 云原生分布式 PostgreSQL+Citus 集群在 Sentry 后端的实践

优化一个分布式系统的吞吐能力,除了应用本身代码外,很大程度上是在优化它所依赖的中间件集群处理能力。如:kafka/redis/rabbitmq/postgresql/分布式存储(CephFS,JuiceFS,C urve,Longhorn)等集群的处理能力。分布式存储集群(Longhorn)这里主要用于 Citus 集群的协调器(coordinator)和工作器(worker) 节点的数据...

2022-10-21 17:09:00 374

原创 使用 HammerDB 对 Citus 和 Postgres 进行 Benchmark,每分钟200万新订单处理测试(官方博客)...

在为 Postgres 运行性能基准测试时,主要建议是:“自动化!”如果您正在测量数据库性能,您可能不得不一遍又一遍地运行相同的基准测试。 要么是因为你想要一个稍微不同的配置,要么是因为你意识到你使用了一些错误的设置,或者可能是其他一些原因。通过自动化运行性能基准测试的方式,当发生这种情况时您不会太烦恼,因为重新运行基准测试将花费很少的精力(它只会花费一些时间)。但是,为数据库基准测试构建...

2022-10-04 17:16:00 556

原创 Memlab,一款分析 JavaScript 堆并查找浏览器和 Node.js 中内存泄漏的开源框架

Memlab 是一款 E2E 测试和分析框架,用于发现 JavaScript 内存泄漏和优化机会。Memlab 是 JavaScript 的内存测试框架。它支持定义一个测试场景(使用 Puppeteer API),教 Memlab 如何与您的单页应用程序(SPA)交互,Memlab 可以自动处理其余的内存泄漏检查:与浏览器交互并获取 JavaScript 堆快照分析堆快照并过滤掉内存泄...

2022-09-16 21:24:00 880

原创 NodeJS & Dapr Javascript SDK 官方使用指南

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr 确保开发人员专注于编写业务逻辑,不必分神解决分布式系统难题,从而显著提高了生产力。Dapr 降低了构建微服务架构类现代云原生应用的门槛。系列Dapr 与 NestJs ,实战编写一个 Pub & S...

2022-08-05 10:54:00 434

原创 Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr 确保开发人员专注于编写业务逻辑,不必分神解决分布式系统难题,从而显著提高了生产力。Dapr 降低了构建微服务架构类现代云原生应用的门槛。系列本地使用 Docker Compose 与 Nestjs 快速构建...

2022-08-01 10:24:00 165

原创 NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr 确保开发人员专注于编写业务逻辑,不必分神解决分布式系统难题,从而显著提高了生产力。Dapr 降低了构建微服务架构类现代云原生应用的门槛。系列本地使用 Docker Compose 与 Nestjs 快速构建...

2022-07-23 00:06:00 420

原创 本地使用 Docker Compose 与 Nestjs 快速构建基于 Dapr 的 Redis 发布/订阅分布式应用...

Dapr(分布式应用程序运行时)介绍Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr 官网:https://dapr.io/实战 Dapr 的 Redis 发布/订阅应用1. 创建项目首先,我们将创建我们的项目根文件夹来托管我们将在后续步骤中创建的所有...

2022-07-08 22:31:00 492

原创 Citus 11 for Postgres 完全开源,可从任何节点查询(Citus 官方博客)

Citus 11.0 来了! Citus 是一个 PostgreSQL 扩展,它为 PostgreSQL 添加了分布式数据库的超能力。 使用 Citus,您可以创建跨 PostgreSQL 节点集群透明分布或复制的表。 Citus 11.0 是一个新的主版本,这意味着它带有一些非常令人兴奋的新功能,可以实现更高级别的可扩展性。https://www.youtube.com/watch?v=...

2022-06-21 10:28:00 632

原创 使用 Dapr JS SDK 让 Nest.js 集成 Dapr

Dapr 是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr 中文手册:https://docs.dapr.io/zh-hans/文件结构Dapr JS SDKhttps://github.com/dapr/js-sdk创建包含我们的 NestJS 项目的文件...

2022-06-18 09:53:00 103

原创 在 Traefik Proxy 2.5 中使用/开发私有插件(Traefik 官方博客)

Traefik Proxy 在设计上是一个模块化路由器,允许您将中间件放入您的路由中,并在请求到达预期的后端服务目的地之前对其进行修改。 Traefik 内置了许多这样的中间件,还允许您以插件的形式加载自己的中间件。https://doc.traefik.io/traefik/middlewares/overview/查找和安装中间件插件的最简单方法是通过 Traefik Pilot。...

2022-06-08 07:11:00 579

原创 试驾 Citus 11.0 beta

https://www.citusdata.com/blog/2022/03/26/test-drive-citus-11-beta-for-postgres/Citus 11.0 beta 的最大变化是 schema 和 Citus 元数据现在在整个数据库集群中自动同步。这意味着您始终可以从 Citus 集群中的任何节点查询分布式表!使用 Citus 最简单的方法是连接到协调器节点并将其...

2022-05-17 10:31:00 275

原创 ASP.NET Core + SaasKit + PostgreSQL + Citus 的多租户应用程序架构示例

在 确定分布策略 中,我们讨论了在多租户用例中使用 Citus 所需的与框架无关的数据库更改。当前部分研究如何构建与 Citus 存储后端一起使用的多租户 ASP.NET 应用程序。http://citus.hacker-linner.com/develop/migration_mt_schema.html#mt-schema-migration示例应用为了使这个迁移部分具体化,...

2022-05-13 16:56:00 509

原创 探索 Python/Django 支持分布式多租户数据库,如 Postgres+Citus

在确定分布策略中,我们讨论了在多租户用例中使用 Citus 所需的与框架无关的数据库更改。 在这里,我们专门研究如何借助django-multitenant库将多租户 Django 应用程序迁移到 Citus 存储后端。Djangohttps://www.djangoproject.com/确定分布策略http://citus.hacker-linner.com/d...

2022-05-13 10:26:00 513

原创 从 Notion 分片 Postgres 中吸取的教训(Notion 工程团队)

https://www.notion.so/blog/sharding-postgres-at-notion今年(2021)早些时候,我们对 Notion 进行了五分钟的定期维护。 虽然我们的声明指向“提高稳定性和性能”,但在幕后是数月专注、紧迫的团队合作的结果:将 Notion 的 PostgreSQL 整体分片成一个水平分区的数据库舰队。分片命名法被认为起源于 MMORPG Ulti...

2022-05-07 17:21:00 367

原创 Citus 11(分布式 PostgreSQL) 文档贡献与本地运行

Citus 可以使用分片跨多台计算机来水平缩放查询。 其查询引擎会将这些服务器的传入 SQL 查询并行化,加快大型数据集上的响应。 它为需要比其他部署选项更大规模和更高性能的应用程序提供服务:通常,工作负载接近或已经超过 100 GB 的数据。Citus 提供:使用分片跨多个计算机进行水平缩放将这些服务器的查询并行化,加快大型数据集上的响应为多租户应用程序、实时运营分析以及高吞吐量事...

2022-05-02 23:39:00 308

原创 使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA

什么是 PostgreSQL HA?此 PostgreSQL 集群解决方案包括 PostgreSQL 复制管理器(replication manager),这是一种用于管理 PostgreSQL 集群上的复制(replication)和故障转移(failover)的开源工具。获取此镜像获取 Bitnami PostgreSQL HA Docker 镜像的推荐方法是从 Docker Hub...

2022-04-23 18:13:00 821

原创 使用 Bitnami PostgreSQL Docker 镜像快速设置流复制集群

bitnami-docker-postgresql 仓库源码:bitnami-docker-postgresqlhttps://github.com/bitnami/bitnami-docker-postgresql流复制相关环境变量使用以下环境变量,可以使用 Bitnami PostgreSQL Docker 镜像 轻松设置流复制集群:POSTGRESQL_REPLICATI...

2022-04-22 10:23:00 538

原创 pgpool-II 4.3 中文手册 - 入门教程

本章解释了如何开始使用 Pgpool-II。安装在本节中,我们假设您已经安装了 Pgpool-II 与 PostgreSQL 集群。你的第一个复制(Replication)在本节中,我们将解释如何使用 Pgpool-II 管理具有流复制的 PostgreSQL 集群,这是最常见的设置之一。在继续之前,您应该正确设置 pgpool.conf 与流复制模式。Pgpool-II 提供了示例...

2022-04-21 10:20:00 1108

原创 pgpool-II 4.3 中文手册-前言

什么是 Pgpool-II?Pgpool II 管理一个 PostgreSQL 服务器池,以实现单个 PostgreSQL 安装无法实现的一些功能。这些功能包括:高可用Pgpool-II 通过使用多个 PostgreSQL 服务器提供高可用性 (HA) 功能,以便它自动从服务器池中删除损坏的服务器以继续执行数据库任务。这称为自动故障转移(automatic failover)。Pgpo...

2022-04-20 10:37:00 194

原创 基础设施即代码(IAC),Zalando Postgres Operator UI 入门

Postgres Operator UI 提供了一个图形界面,方便用户体验数据库即服务。一旦 database 和/或 Kubernetes (K8s) 管理员设置了 operator,其他团队就很容易创建、克隆、监视、编辑和删除自己的 Postgres 集群。有关设置和技术细节的信息可以在 admin 文档中找到。admin 文档: https://postgres-operator.r...

2022-04-14 15:03:00 260

原创 基础设施即代码(IAC),Zalando Postgres Operator 简介

Postgres Operator 在由 Patroni 提供支持的 Kubernetes (K8s) 上提供易于运行的高可用性 PostgreSQL 集群。它仅通过 Postgres 清单 (CRD) 进行配置,以轻松集成到自动化 CI/CD 管道中,而无需直接访问 Kubernetes API,从而促进基础设施即代码(infrastructure as code)而不是手动操作。Pat...

2022-04-11 19:53:00 630 1

原创 Zalando Postgres Operator 快速上手

本指南旨在让您快速了解在本地 Kubernetes 环境中使用 Postgres Operator。前提条件由于 Postgres Operator 是为 Kubernetes (K8s) 框架设计的,因此首先设置它。 对于本地测试,我们建议使用以下解决方案之一:minikube, 在 VM 内创建单节点 K8s 集群(需要 KVM 或 VirtualBox)https://git...

2022-04-08 10:32:00 325

原创 Rb(redis blaster),一个为 redis 实现 non-replicated 分片的 python 库

Rb,redis blaster,是一个为 redis 实现非复制分片(non-replicated sharding)的库。它在 python redis 之上实现了一个自定义路由系统,允许您自动定位不同的服务器,而无需手动将请求路由到各个节点。它没有实现 redis 的所有功能,也没有尝试这样做。 您可以随时将客户端连接到特定主机,但大多数情况下假设您的操作仅限于可以自动路由到不同节点的...

2022-04-07 10:31:00 109

原创 Citus 分布式 PostgreSQL 集群 - SQL Reference(SQL支持和变通方案)

由于 Citus 通过扩展 PostgreSQL 提供分布式功能,因此它与 PostgreSQL 结构兼容。这意味着用户可以使用丰富且可扩展的 PostgreSQL 生态系统附带的工具和功能来处理使用 Citus 创建的分布式表。Citus 对它能够在单个工作节点上执行的任何查询具有 100% 的 SQL 覆盖率。 在访问有关单个租户的信息时,此类查询在多租户应用程序中很常见。甚至跨节点查...

2022-04-02 10:20:00 363

原创 Citus 分布式 PostgreSQL 集群 - SQL Reference(手动查询传播)

手动查询传播当用户发出查询时,Citus coordinator 将其划分为更小的查询片段,其中每个查询片段可以在工作分片上独立运行。这允许 Citus 将每个查询分布在集群中。但是,将查询划分为片段的方式(以及传播哪些查询)因查询类型而异。 在某些高级情况下,手动控制此行为很有用。 Citus 提供实用函数来将 SQL 传播到 workers、shards 或 placements。手...

2022-04-01 10:14:00 414

原创 Citus 分布式 PostgreSQL 集群 - SQL Reference(查询处理)

一个 Citus 集群由一个 coordinator 实例和多个 worker 实例组成。 数据在 worker 上进行分片和复制,而 coordinator 存储有关这些分片的元数据。向集群发出的所有查询都通过 coordinator 执行。 coordinator 将查询划分为更小的查询片段,其中每个查询片段可以在分片上独立运行。然后协调器将查询片段分配给 worker,监督他们的执行,合...

2022-03-31 10:30:00 877

原创 Citus 分布式 PostgreSQL 集群 - SQL Reference(查询分布式表 SQL)

如前几节所述,Citus 是一个扩展,它扩展了最新的 PostgreSQL 以进行分布式执行。这意味着您可以在 Citus 协调器上使用标准 PostgreSQL SELECT 查询进行查询。 Citus 将并行化涉及复杂选择、分组和排序以及 JOIN 的 SELECT 查询,以加快查询性能。在高层次上,Citus 将 SELECT 查询划分为更小的查询片段,将这些查询片段分配给 worker...

2022-03-30 10:34:00 1044

原创 Citus 分布式 PostgreSQL 集群 - SQL Reference(摄取、修改数据 DML)

插入数据要将数据插入分布式表,您可以使用标准 PostgreSQL INSERT 命令。例如,我们从 Github 存档数据集中随机选择两行。INSERThttp://www.postgresql.org/docs/current/static/sql-insert.html/*CREATE TABLE github_events( event_id bigint,...

2022-03-28 12:57:00 714

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除