前置要求 确保系统已安装以下工具: Docker 和 Docker Compose Node.js 20+ 和 Yarn 充足的磁盘空间(建议 500GB+) 一、配置 Graph Node 1.1 创建项目目录结构 mkdir -p ~/graph-node-deployment cd ~/graph-node-deployment mkdir -p data/postgres data/ipfs 1.2 配置 config.toml 创建 config.toml 文件,这是 Graph Node 的核...
摘要: 代码审查消耗我们大量精力,不得不在每次提交时排查可能潜在的问题,利用好自动化脚本工具,可以有效避免不规范的提交或代码潜在错误。
目录 Dependabot 快速上手 GitHub Actions 完整教程 实战:TypeScript 项目自动化 1. Dependabot 快速上手 1.1 什么是 Dependabot? Dependabot 自动管理项目依赖的三大功能: | 功能 | 作用 | 默认状态 | |------|------|----------| | Alerts | 发现安全漏洞时警报 | 公...
摘要: 在微服务中,日志通常分布在不同容器或文件中,排查问题极不友好,通过日志系统,将所有日志按时间顺序排列汇总,可以有效解决这一痛点。 同时借助ELK的日志系统我们还可以用它提供的各种插件实现监控报警等。
什么是 EFK? EFK 是一套完整的日志收集、存储、分析和可视化解决方案: Elasticsearch:分布式搜索和分析引擎,用于存储和检索日志数据 Filebeat:轻量级日志采集器,负责收集和转发日志到 Elasticsearch Kibana:数据可视化平台,提供友好的 Web 界面来查询和分析日志 系统架构 应用程序 → 日志文件 → Filebeat → Elasticsearch → Kibana 前提条件 Docker 已安装 Docker Compose 已安装 至少 4GB 可用内...
1. Redis 简介 1.1 Redis 是什么 Redis 是一个开源的,基于内存的Key - Value数据结构存储系统,它不仅支持数据的持久化 (可以将内存中的数据保存到磁盘,重启后再次加载),还可以作为数据库、缓存和消息中间件使用。 1.2 Redis 特点 高性能:数据存储在内存中,具备极快的读写速度(读 \11w/s,写 \8w/s, 读写混合大概在\~5 万/s)。 核心执行模型: 命令执行:采用单线程处理命令,避免了多线程带来的锁竞争和上下文切换开销,保证了操作的原子性。 **...
摘要: 在高并发或对外开放的服务中,如果不做限流,很容易因为突发流量、恶意请求或误用,把应用本身、数据库以及第三方接口直接打挂,因此需要限流器来控制单位时间内允许通过的请求数,保护系统稳定并实现按用户、按接口的配额和公平使用。常见的限流算法主要有四类:实现最简单但在窗口边界会有突刺问题的固定窗口;能更精确控制“最近一段时间”调用次数的滑动窗口;既控制平均速率又允许一定业务突发的令牌桶;以及把请求匀速“漏出”、特别适合保护脆弱下游服务的漏桶。
一、固定窗口算法(计数器) 1. 简介 固定窗口算法(Fixed Window Algorithm),又称计数器算法,是最简单、最直观的一种限流方式:把时间切成一个个连续的固定窗口,并对每个窗口内能够通过的请求数设定上限。 Fixed Window 2. 工作原理 可以把时间想象成一条被均匀切分的时间轴,例如: 按秒限流:每 1 秒是一个窗口; 按分钟限流:每 1 分钟是一个窗口。 在固定窗口算法中,一般会维护...
主要工具: ss OpenSSL Postgres 生成证书 mkdir -p ~/pg-certs && cd ~/pg-certs 生成CA: `opens...
本文将演示如何使用 Next.js (App Router) + Tailwind CSS 作为前端,以及 Go + Gin 作为后端,完成 Google OAuth2.0 登录并在前端展示用户信息。 参考官方文档: https://developers.google.com/identity/protocols/oauth2/web-server?hl=zh-cn#libraries 示例代码已上传至GIthub仓库: https://github.com/x-mingg/google-oauth 前置准备 Node.js 18+ / npm Go 1.21+ Go...
📝 前言 在企业应用开发中,邮件告警是一个非常重要的功能模块。当系统出现异常、服务宕机或需要及时通知相关人员时,邮件告警能够确保信息及时传达。本教程将手把手教你如何使用Go语言实现一个功能完善的邮件告警系统。 🎯 学习目标 通过本教程,你将学会: 使用Go语言的net/smtp包发送邮件 配置Gmail和腾讯企业邮箱的SMTP服务 实现TLS/SSL加密连接 发送HTML格式的精美邮件 设计灵活的告警级别系统 实现邮件服务的配置化管理 📋 目录 前置准备 [邮箱SMTP服务设置](#邮箱smtp服务设置...
go-cache 包 轻量级内存缓存 线程安全,支持过期 适合小规模数据缓存 go-cache 简介与安装 go-cache 是一个线程安全的内存缓存库,支持过期时间。 go get github.com/patrickmn/go-cache 基础使用 `go import ( "github.com/patrickmn/go-cache" "time" ) func basicCacheUsage() ...
resty 包 比 net/http 更简洁的 API 内置重试、超时、拦截器 适合构建 API 客户端 resty 简介与安装 resty 是一个简单易用的 HTTP 和 REST 客户端库,灵感来自 Ruby 的 rest-client。 go get github.com/go-resty/resty/v2 基础使用 `go import "github.com/go-resty/resty/v2" // 创建客户端...