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
发起讨论 查看所有版本


暂无话题~