A micro service architecture example based on go-micro
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
api 添加api auth插件 Sep 30, 2018
config 结合spring cloud config Sep 28, 2018
hystrix 添加api auth插件 Sep 30, 2018
service 添加api auth插件 Sep 30, 2018
.gitignore 添加api auth插件 Sep 30, 2018
LICENSE Initial commit Sep 28, 2018
Makefile 添加api auth插件 Sep 30, 2018
README.md 更新readme Oct 14, 2018
docker-compose.yml 添加api auth插件 Sep 30, 2018

README.md

需要安装的工具

  • Docker
  • Golang、项目依赖包
  • protoc-gen-micro
  • make

运行方式

  1. make
  2. docker-compose build
  3. docker-compose up --force-recreate

整体架构

http://www.wangtianyi.top/blog/2018/09/28/ji-yu-go-microde-wei-fu-wu-jia-gou-ben-di-shi-zhan/

以 greeter/hello 为例,请求流程图如下:

image

  1. 访问greeter/hello
  2. Micro Api解析请求,验证身份是否有效,决定请求是否继续传递,如果有效,则将解析出来的用户信息写到header中
  3. GreeterService接收到gRPC请求并路由到Greeter.Hello方法中,调用其中的逻辑,尝试发送请求到UserService得到用户的其他信息,header也转发过去
  4. UserService根据header中得到的id查询数据库得到具体的用户信息并返回

在服务间请求调用过程中,会有Hystrix来提供服务容错机制。在所有服务启动之前,会请求Config Service来获得对应服务的对应环境的配置信息。