1.1 涉及的组件、框架介绍

未匹配的标注

流程图

首先来看一下整体的流程图

请求微服务流程图

1.1 涉及的组件、框架介绍
在这张图中:

  • 反向代理使用的是traefik,它的特色是可以动态发现,完美支持dockerkubernetes
  • 网关中微服务部分使用的是go-micro框架,由于go-micro的web和路由功能并不能很好地满足现实需求,所以的对外提供HTTP服务的部分使用的是gin框架。
  • 服务部分使用的是go-micro框架编写微服务
  • 由于使用的是go-micro框架,该框架默认使用的是grpc通讯,grpc通讯的通讯格式是Protobuf
  • go-micro默认的服务发现是通过mdns,我们更换为使用etcd做服务注册中心。当使用Kubernetes部署时,KubernetesService的名称当做域名注册到kube-dns中,通过Service的名称就可以访问其提供的服务
  • 编排工具会先使用docker-compose,最终使用Kubernetes

CI/CD流程图

1.1 涉及的组件、框架介绍
在这张图中:

  • 代码仓库使用的是gitlab
  • 持续集成使用的是jenkins
  • 远程镜像仓库使用的是阿里云的容器镜像服务
  • jenkins需要安装的插件有:Localization Chinese(Simplified)Publish Over SSHGitlabGolang

涉及到的组件、框架及其版本

技术 使用 版本
语言 Golang 1.14.1
Web框架(网关) Gin v1.6.3
通讯格式 Protobuf v3.12.1
微服务框架 Go-micro v2.9.0
反向代理 Traefik v2.2.1
服务注册中心 Etcd/Kubernetes v3.3.8/v1.16.5
容器 Docker v19.03.8
编排工具 Docker-Compose/Kubernetes v1.25.5/v1.16.5
代码仓库 Gitlab v13.1.1-ce.0
持续集成 Jenkins v2.242

仓库

对应的相关代码和部署文件,已经传至github,欢迎star。

微服务与部署:github.com/guaosi/go-micro-build

持续交付、集成、部署:github.com/guaosi/go-cicd

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~