Skip to content

Latest commit

 

History

History
134 lines (106 loc) · 4.19 KB

README_CN.md

File metadata and controls

134 lines (106 loc) · 4.19 KB

moke-kit

Go Report Card Go Reference Release

English | 中文

什么是 moke-kit?

moke-kit 是一个用于构建微服务/单体应用的基础框架。可以按照单体应用开发,生产环境部署为微服务模式。像玩LEGO积木一样,你可以按需灵活搭建不同类型的服务。

架构

moke-kit

Layers

graph TB
    subgraph "Application Layer"
        App[Application]
        DI[Dependency Injection<br/>uber/fx]
    end

    subgraph "Server Layer"
        GRPC[gRPC Server]
        HTTP[HTTP Gateway]
        TCP[TCP Server]
        WS[WebSocket Server]
        KCP[KCP Server]
    end

    subgraph "Middleware Layer"
        Auth[Authentication]
        Rate[Rate Limiting]
        Tel[OpenTelemetry]
        Log[Logging]
        Rec[Recovery]
    end

    subgraph "Storage Layer"
        subgraph "Database"
            GORM[GORM]
            MongoDB[MongoDB]
        end
        subgraph "Cache"
            Redis[Redis]
            Dragon[Dragonfly]
        end
        subgraph "Message Queue"
            MQ[NATS Message Queue]
        end
    end

    subgraph "Integration Layer"
        IAP[IAP Verification]
        Agones[Agones Gaming]
    end

    App --> DI
    DI --> GRPC
    DI --> HTTP
    DI --> TCP
    DI --> WS
    DI --> KCP
    
    GRPC --> Auth
    HTTP --> Auth
    TCP --> Auth
    WS --> Auth
    KCP --> Auth
    
    Auth --> GORM
    Auth --> MongoDB
    Auth --> Redis
    Auth --> Dragon
    Auth --> MQ
    Auth --> IAP
    Auth --> Agones

    classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px
    classDef layer fill:#e4f0f8,stroke:#333,stroke-width:2px
    class App,DI default
    class Server_Layer,Middleware_Layer,Storage_Layer,Integration_Layer layer
Loading

特性

  • 使用 uber/fx 实现IOC(依赖注入控制反转),可以按需组装不同类型服务。
  • 内置TLS,mTLS,快速构建Zero Trust安全模型
  • 内置基于Token的认证,支持JWT token。
  • 内置中间件(rate limit, open telemetry, auth middleware, logging, panic recovery等)。
  • 内置Cache-Aside模式数据缓存机制。
  • 内置Compare-and-swap保证数据库操作的一致性。
  • 内置交互式命令行客户端,方便独立测试服务接口。
  • 基于buf一键生成proto, grpc, gateway, swagger和客户端的协议文件。

内置组件

快速开始

  • 安装 gonew:
go install golang.org/x/tools/cmd/gonew@latest
  • 创建自己的项目:
gonew github.com/gstones/moke-layout your.domain/myprog