micro

module
v1.1.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2026 License: MIT

README

Bang Micro

Bang Micro 是一个生产级别的 Go 微服务基础框架,旨在提供统一、高效、可观测的开发体验。

🌟 特性

  • 统一规范:全模块采用 x 后缀命名(如 httpx, grpcx),避免命名冲突,风格统一。
  • 生产就绪:内置 OpenTelemetry 链路追踪、Prometheus 监控指标、结构化日志。
  • 弹性设计:默认集成超时控制、Panic 恢复、连接池优化。
  • 开箱即用:提供 HTTP、gRPC、Redis、MySQL、Elasticsearch 等常用组件的深度封装。

📦 模块概览

Transport (通信层)
  • httpx: 增强型 HTTP 客户端与服务端,支持拦截器和自动追踪。
  • grpcx: 生产级 gRPC 封装,集成拦截器链。
  • ginx: 基于 Gin 的 Web 框架封装,集成统一中间件。
  • tcpx: 高性能 TCP 框架。
  • wsx: WebSocket 服务端与客户端封装。
Store (存储层)
Conf (配置层)
  • viperx: 基于 Viper 的配置加载器,支持环境变量覆盖。
  • envx: 环境检测工具 (Dev/Test/Prod)。

🚀 快速开始

安装
go get github.com/bang-go/micro
示例:启动一个 HTTP 服务
package main

import (
    "github.com/bang-go/micro/transport/ginx"
    "github.com/gin-gonic/gin"
)

func main() {
    // 1. 创建 Server
    server := ginx.New(&ginx.ServerConfig{
        Addr: ":8080",
        Name: "my-service",
    })

    // 2. 注册路由
    server.Use(func(c *gin.Context) {
        // 全局中间件
        c.Next()
    })
    
    g := server.GinEngine()
    g.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "pong"})
    })

    // 3. 启动
    if err := server.Start(); err != nil {
        panic(err)
    }
}

🛠️ 贡献

欢迎提交 Issue 和 Pull Request!

📄 License

MIT

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL