微服务技术的完整技术栈分析
(一)微服务技术的产生背景(为什么要学微服务)?
随着业务的发展,数据量越来越庞大,要处理的请求数量愈来愈多,传统的单体架构已经不能适应需求,此时就要将系统中的各个业务进行拆分,这每一个服务又称为一个微服务。
例如:一个线上商城系统,随着用户数量越来越大,用户请求越来越密集,此时我们会将整个系统做拆分,可分为用户模块,订单模块,商品模块等等等. . . . . .
(二)
1、这就是我们要处理的首先一个问题:服务拆分与集群,拆分出来的服务与服务之间暴露接口,相互调用,形成集群
2、此时,就出现新的问题,拆分出来的这么多服务难以统一管理,各个服务的配置比较分散,系统同样还是难以维护,于是产生服务的注册中心与配置中心
网关gateway,去处理请求路由和负载均衡。
4、第四个问题,各个服务去数据库查询数据的时候,怎样让数据更安全,快速的获取到,于是产生了分布式缓存 与 分布式搜索
异步通信、消息队列机制
6、为了解决这个庞大的系统中出现服务故障、异常的时候难以排查问题的出处,会引入分布式日志服务,来记录、统计、分析整个系统运行过程中发生的请求事件等,以快速定位故障点,同时,还会引入系统监控、链路追踪来监控整个系统的运行,一旦出现异常,可快速反应
7、第七个问题,整个庞大的系统,部署起来也是一个大麻烦,所以通常会使用 Jenkins这样的工具去实现自动化的部署,使用docker进行打包,形成镜像文件,在使用kubernetes和rancher这样的技术实现整体的自动化部署工作,这就是整个微服务的完整技术栈
(三)具体各个部分内部的技术点如下:
(三)、微服务技术解决方案对比