{"repo":"abulo/ratel","free":true,"listed":false,"github":"https://github.com/abulo/ratel","clone":"git clone https://github.com/abulo/ratel.git","description":"Go微服务","language":"Go","stars":22,"topics":["mysql","redis","config","mongodb","elasticsearch","http","etcd","grpc"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Ratel 📖 目录 - Ratel 介绍 - 核心特性 - 设计理念 - 快速开始 - 安装 - Web 服务器示例 - gRPC 服务器示例 - Hertz 服务器示例 - 架构组件 - Server 层 - Client 层 - Core 核心层 - Stores 存储层 - Registry 注册中心 - 微服务治理能力 - 限流 - 熔断 - 链路追踪 - 指标监控 - 日志系统 - 工具集 - 项目结构 - 开发指南 - 性能优势 - 应用场景 - 常见问题 - 贡献指南 - 许可证 --- Ratel 介绍 Ratel 是一套 生产级微服务治理框架 ，集成了各种工程实践的 Web 和 RPC 框架。经过千万日活服务的实战验证，旨在提供极致的稳定性、降低服务端资源成本、提升开发效率。 核心价值 ✅ 轻松获得支撑千万日活服务的稳定性 ✅ 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力，无需配置和额外代码 ✅ 微服务治理中间件可无缝集成到其它现有框架使用 ✅ 大量微服务治理和并发工具包 --- 核心特性 🚀 高性能 - 高效性能，极低的服务端资源成本 - 高并发支撑，稳定保障流量洪峰 - 完全兼容 net/http ，零学习成本 🛡️ 弹性设计 - 面向故障编程，自动熔断、降载 - 内建限流、熔断、降载，且自动触发、自动恢复 - 级联超时控制，防止雪崩效应 🔧 开发友好 - 极简的接口，尽可能少的代码编写 - Debug 模式，极大提高应用开发效率 - API 参数自动校验 - 自动缓存控制 📊 可观测性 - 统一的指标采集（Prometheus） - 全链路追踪（OpenTelemetry） - 结构化日志埋点 - 统计报警 🔌 扩展性强 - 支持中间件，方便扩展 - 内建服务发现、负载均衡 - 动态配置，热更新支持 - 安全策略内置 --- 设计理念 第一原则：保持简单 约束做一件事只有一种方式，减少决策成本。 弹性设计：面向故障编程 假设故障必然发生，通过自适应机制自动应对。 工具大于约定和文档 通过强大的工具链减少配置和文档依赖。 四大目标 - 高可用 ：99.99% 可用性保障 - 高并发 ：支撑百万 QPS - 易扩展 ：插件化架构 - 对业务开发友好 ：封装复杂度，暴露简洁接口 --- 快速开始 安装 环境要求： - Go 1.26.0+ - Make（可选，用于构建和测试） Web 服务器示例 基于 Gin 框架的高性能 Web 服务器： 特性： - 自动集成中间件（日志、指标、链路追踪） - 支持 WebSocket - 健康检查 - 优雅停机 gRPC 服务器示例 特性： - 自动负载均衡 - 服务发现集成 - 拦截器链（认证、日志、指标） - 连接池管理 Hertz 服务器示例 基于 CloudWeGo Hertz 的高性能 HTTP 框架： --- 架构组件 Server 层 Ratel 提供多种服务器实现，满足不同场景需求： 模块 说明 适用场景 ------ ------ ---------- xgin 基于 Gin 的 Web 服务器 RESTful API、Web 应用 xgrpc 基于 gRPC 的 RPC 服务器 微服务间通信 xhertz 基于 Hertz 的高性能 HTTP 服务器 高并发 HTTP 服务 xasynq 异步任务队列服务器 后台任务处理 xmonitor 监控服务器 指标暴露、健康检查 Client 层 提供多种客户端实现，简化外部服务调用： 模块 说明 ","default_branch":null,"files":null,"tree":[],"storefront":"/r/abulo","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/abulo/ratel/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}