国信证券Zebra微服务架构简介

我们从0到1设计开发了国信微服务架构,他是一个完整的,从前到后的架构。我们希望逐步分享出来,后续也会将此架构开源。

设计原则是:

1、配置依赖最小化;

2、开发速度最大化;

3、环境部署最简化;   

RPC

选用grpc,因为grpc有以下几个优势:

1、多语言支持;

2、社区活跃,生命力强,七月份发布1.5版本;

3、支持ios、Android,支持SSL和自定义鉴权(支持国密),可以简单实现客户端到后台的多路复用、rpc调用;

4、只有通信层依赖于grpc,所以容易替换;

5、grpc使用pb协议,此协议在互联网上广泛使用,生命力强;

6、支持流stream,在流的基础上实现了Server Push,方便做变更通知,不再需要客户端做费力的Long Pull;

微服务架构组件说明:

服务注册发现

方案基于进程内LB方案,结合分布式一致的组件etcd3,进行设计开发,具备以下功能:

1、服务自动注册;

2、服务自动发现;

3、负载均衡;

4、注册中心异常保护;

5、异常通报下发;

6、服务降级;

服务中心

可视化服务管理平台,展示服务信息,包含功能如下:

1、server展示,包括ip地址、端口号、应用名称、接口名称;

2、api展示,显示proto文件内容;

3、api测试;

4、服务监控展示;

5、服务依赖动态图展示;

API网关

api网关基于vert.x实现,后期考虑采用原生netty进行升级:

1、由统一的入口来调用微服务的API;

2、API鉴权;

3、反向代理、数据剪裁、数据聚合;

4、流量控制;

5、监控报警;

6、TCP、HTTP等多协议支持;

开发框架

基于springboot进行业务开发:

1、权限管理,服务接口授权;

2、服务端流量控制;

3、业务线程池管理;

4、调用端和服务端TCP连接数管理;

5、服务过载快速失败;

6、TCP心跳保活;

7、调用链分析埋点;

8、超时管理;

9、泛化调用;

监控

参考Prometheus搭建监控中心,具有以下功能:

1、服务流量上报;

2、服务访问ip上报;

3、服务平均耗时情况上报;

4、异常上报;

5、日志收集服务;

6、调用链埋点;

配置中心

对配置信息进行统一管理,可做到一次打包,各个环境都可使用,具有以下功能:

1、资源类配置与业务类配置分离;

2、作用域分离(分为四大作用域:GLOBAL、IDC、SET、NODE);

3、配置中心异常容错;

你可能感兴趣的:(国信证券Zebra微服务架构简介)