chassis.Run 运行了什么?

什么是 chassis? Chassis,是一种微服务模式。在这种模式中,用户并不需要自己去处理构建微服务过程中外部配置、日志、健康检查、分布式追踪等,而是将他们交给专门的框架来处理。用户可以更聚焦业务逻辑本身,简单、快速的开发微服务。 阅读此文,你可以得到什么? Chassis 运行时做了什么 chassis 运行时的隐藏操作。 chassis 设计思路的一些理解 Go-Chassis 是什么? Go-Chassis 是一个go语言的微服务开发框架,采用插件化设计,原生提供了可插拔的注册发现,加密解密,调用链追踪等组件。协议也是插件化的,支持http和grpc,也支持开发者定制私有协议, 开发者只需要专注于实现云原生应用即可。 云原生应用,基于云服务开发或者针对云服务开发部署的应用。 上图是go-chassis 的架构图,可以看出配置管理(Archaius)、服务注册(Registry)、Metrics、日志(Logger)都是独立的组件,分布式追踪、负载均衡、限流等都是以中间件(Handler Chain)的方式实现的。一个请求进来后会先通过server 转换成chassis invoker,然后经过Handler Chain,最后由Transport 转换成对应协议的response返回。 此篇文章主要关注go-chassis 启动过程时做了什么,以及做这些事情的用途。 一个例子 首先从 hello world 开始, 目录结构如下: . ├── conf # 配置目录,必须 │ ├── chassis.yaml # │ ├── microservice.yaml # 微服务相关配置,比如server name,注册中心地址 └── rest └── main.go chassis.yaml 内容为: --- cse: protocols: rest: listenAddress: "127.0.0.1:5001" transport: timeout: rest: 1 handler: chain: Provider: default: tracing-provider microservice.yaml 内容为: ...

2020-06-12 · 7 min · 1422 words