server

module
v0.0.0-...-a33e2ab Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2023 License: MIT

README

计划使用 Go 优雅地重构个人 server

License Build Status Go Report Card Test Coverage

tools

工具族 功能
spf13 cobra 解析命令行启动参数
zap lumberjack 日志功能系统
gin web服务框架
grpc grpc-gateway grpc服务框架
redis mysql(xorm) 分布式存储
proto 服务消息结构
swagger RESTful接口
opentracing jaeger 分布式追踪
prometheus 全家桶+自研组件 监控系统
Dockfile Deployment 容器化
Materialize CSS CSS样式

项目结构

server
├── api            # 服务定义 此目录下执行make以依据proto文件生成go和swagger文档
│   ├── Makefile
│   ├── ...
│   └── ...
├── cmd            # 程序入口 使用cobra以及自写 依赖注入* 组件
│   ├── commands
│   └── main.go
├── config         # 配置相关 支持热加载
│   ├── config.go
│   ├── grpc.go
│   ├── log.go
│   ├── web.go
│   ├── mysql.go
│   ├── redis.go
│   ├── trace.go
│   └── web.go
├── config.toml    # 配置文件示例
├── gateway        # 路由
│   ├── grpc.go
│   ├── web.go
│   └── node.go
├── middleware     # 中间件
│   ├── auth.go
│   ├── tls.go
│   └── trace.go
├── service        # 服务
│   ├── basic.go
│   ├── const.go
│   ├── crypto.go
│   ├── interface.go
│   ├── mysql.go
│   ├── pastebin.go
│   ├── redis.go
│   ├── storage.go
│   ├── tinyurl.go
│   ├── trace.go
│   └── user.go
├── scripts        # 部署相关
│   ├── docker-compose
│   │   ├── config.toml
│   │   └── docker-compose.yml
│   └── kubernetes
│       ├── binacs-cn.yml
│       └── config.toml
├── test           # 测试
│   ├── client     # grpc 测试 client 端
│   ├── template
│   └── tls        # TLS证书
├── types          # 数据结构定义 常量定义
│   ├── table      # 数据库表定义
│   ├── grpc.go
│   ├── redis.go
│   ├── regexp.go
    └── types.go
└── version     # 版本
    └── version.go

如何熟悉

必备:

  1. cobra
  2. zap 和日志分割
  3. gin
  4. grpc & grpc-gateway
  5. redis & mysql 基础 以及对象存储 xorm
  6. protobuf & swagger

选读:

  1. opentracing 协议
  2. prometheus 组件
  3. docker & k8s

* 关于依赖注入

这里

Kubernetes 线上部署

Dockerfile 来自本项目。

镜像来自 Docker Hub

部署配置位于 deployment-binacs-cn 项目。

终端客户端

BinacsLee/cli

Directories

Path Synopsis
api
cos
Package api_cos is a reverse proxy.
Package api_cos is a reverse proxy.
crypto
Package api_crypto is a reverse proxy.
Package api_crypto is a reverse proxy.
pastebin
Package api_pastebin is a reverse proxy.
Package api_pastebin is a reverse proxy.
tinyurl
Package api_tinyurl is a reverse proxy.
Package api_tinyurl is a reverse proxy.
user
Package api_user is a reverse proxy.
Package api_user is a reverse proxy.
cmd
mock
gateway
Package mock_gateway is a generated GoMock package.
Package mock_gateway is a generated GoMock package.
service
Package mock_gateway is a generated GoMock package.
Package mock_gateway is a generated GoMock package.

Jump to

Keyboard shortcuts

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