Git Product home page Git Product logo

xiaokugua250 / perch Goto Github PK

View Code? Open in Web Editor NEW
9.0 3.0 1.0 257.39 MB

Golang Based microservice platform, vue and golang admin

Home Page: https://xiaokugua250.github.io/perch/

License: MIT License

Shell 0.06% Go 5.85% Makefile 0.10% C 4.03% JavaScript 1.83% HTML 75.06% Vue 12.67% CSS 0.02% Handlebars 0.01% SCSS 0.26% Python 0.09% Dockerfile 0.02%
golang vue admin-platform kubernetes grpc-go micro-services go-colly minikube

perch's Introduction

perch

Golang Code And Others,k8s,colly,grpc,mysql,micro-service,docker,docker-compose

项目内容说明

   本项目为个人项目,项目以Golang为主,包括go-web、go-spider、grpc等基础语言编码内容以及kubernetes、etcd等高阶内容。主要涉及到的内容有:

  1. 基于Golang的微服务开发
  2. 基于docker,kubernetes的容器管理平台开发
  3. 基于colly的go语言爬虫开发
  4. 基于grpc的分布式服务调用和任务分发

  项目主要目的是对自己技能的总结和部分想法的实现。
  目前项目部署实例为 https://z-gour.com
  部署方式为minkube集群中以kubernete容器方式进行部署。采用到的kubernetes资源有

  • pod 运行底层前端服务和后端服务
  • service 集群内网络访问
  • ingress 允许外部网络访问
  • cert-manager 证书签发和续期

minikubekubernete集群中部署可以参考deploy目录中的k8s_deploy目录。

下面对项目中各目录对应信息进行说明:

  • api: 项目API
  • cmd: 部分项目入口程序和可执行程序
  • configs: 项目配置
  • database: 数据库相关代码
  • deploy: 项目部署文件,包括dockerfile、docker-compose.yaml等
  • docs: 项目文档
  • internal: 内部使用库
  • pkg: 项目内部库
  • scripts: 项目脚本
  • third_party: 第三方工具,如ETCD
  • tools: 项目通用工具包
  • web: 项目内嵌微服务集合
  • website: 项目前端文件
  • .gitignore: ignore文件
  • Makefile: Makefile文件
  • go.mod: go mod文件
  • version.sh: 生成go_version.go脚本

后端

本项目的后端采用Golang语言开发,涉及到的工具包有

前端

  本项目前端采用vue.js,具体框架采用vue-element-admin,对原作者PanJiaChen表示感谢.

  前端计划采用buefy或原生bulma进行调整优化

已完成

待完善

  • minikube集群部署(cert-manager 证书管理)
  • 利用ttyd提供容器内终端访问
  • 基于jwt-go的jwt 认证
  • 基于RBAC的用户管理
    • 采用casbin 进行混合rbac和restful权限管理
  • 基于Makefile和Dockerfile的服务构建
    • 编译golang项目时打包版本信息[采用build.sh 脚本生成api版本信息]
  • web 框架调整和优化
    • 基于mux的微服务框架
    • 日志功能
    • Error错误处理
    • 采用中间件模式添加服务prometheus 指标
    • web配置文件解析(yaml配置文件的解析)

TODO

  • golang 配置文件解析
  • Linux 监控服务API开发
  • 前端开发
  • 用户管理与RBAC
  • kubernetes集群管理
  • kubernetes YAML应用部署和访问
  • 熔断器和限流器
  • golang 代理服务
  • ssh /tcp 代理,多层代理
  • 基于NSQ的消息订阅发布模式
  • 采用go-guard 统一认证

项目布局参考:
https://github.com/golang-standards/project-layout

  • 去除src目录
  • 使用expvar包进行服务监控

参考资料

[1].http://www.hatlonely.com/2018/06/21/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%BB%84%E4%BB%B6%E4%B9%8B%E9%99%90%E6%B5%81%E5%99%A8%E4%B8%8E%E7%86%94%E6%96%AD%E5%99%A8/
[2].https://mojotv.cn/go/prometheus-client-for-go
[3].https://pkg.go.dev/golang.org/x/time/rate
[4].https://github.com/didip/tollbooth

perch's People

Contributors

xiaokugua250 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

chirsone

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.