Skip to content

NpoolPlatform/sphinx-service-not-used

Repository files navigation

Npool go service app template

Test

目录


功能

  • 集成版本信息
  • 集成rabbitmq访问
  • 完善rabbitmq API
  • 生成docker镜像
  • 发布docker镜像
  • 将服务部署到k8s集群
  • 将服务api通过traefik-internet ingress代理,供外部应用调用(视服务功能决定是否需要)
  • ingress中服务相关api的traefik规则定义
  • 集成GRPC
  • 添加GRPC proto编译支持

命令

  • make init 初始化仓库,创建go.mod
  • make verify 验证开发环境与构建环境,检查code conduct
  • make verify-build 编译目标
  • make test 单元测试
  • make generate-docker-images 生成docker镜像
  • make sphinx-service 单独编译服务
  • make sphinx-service-image 单独生成服务镜像
  • make deploy-to-k8s-cluster 部署到k8s集群

步骤

  • 在github上将模板仓库https://github.com/NpoolPlatform/sphinx-service.git import为https://github.com/NpoolPlatform/my-service-name.git
  • git clone https://github.com/NpoolPlatform/my-service-name.git
  • cd my-service-name
  • mv cmd/sphinx-service cmd/my-service
  • 修改cmd/my-service/main.go中的serviceName为My Service
  • mv cmd/my-service/sphinxservice.viper.yaml cmd/my-service/MyService.viper.yaml
  • 将cmd/my-service/MyService.viper.yaml中的内容修改为当前服务对应内容
  • 修改Dockerfile和k8s部署文档为当前服务对应内容
    • grep -rb "service sample" ./*
    • grep -rb "service-example" ./*
    • grep -rb "go-service-app-template" ./*
    • grep -rb "service.sample" ./*
    • grep -rb "servicesample" ./
    • grep -rb "ServiceSample" ./*
    • grep -rb "ServiceExample" ./*
    • grep -rb "service_sample" ./*
    • grep -rb "service_example" ./*
    • grep -rb "sample-service" ./*

最佳实践

  • 每个服务只提供单一可执行文件,有利于docker镜像打包与k8s部署管理
  • 每个服务提供http调试接口,通过curl获取调试信息
  • 集群内服务间direct call调用通过服务发现获取目标地址进行调用
  • 集群内服务间event call调用通过rabbitmq解耦

关于mysql

  • 创建app后,从app.Mysql()获取本地mysql client
  • 文档参考

GRPC