微服务技术栈整体架构

(一)微服务技术的产生背景(为什么要学微服务)?

随着业务的发展,数据量越来越庞大,要处理的请求数量愈来愈多,传统的单体架构已经不能适应需求,此时就要将系统中的各个业务进行拆分,这每一个服务又称为一个微服务。

例如:一个线上商城系统,随着用户数量越来越大,用户请求越来越密集,此时我们会将整个系统做拆分,可分为用户模块,订单模块,商品模块等等等. . . . . .

 

(二)

1、这就是我们要处理的首先一个问题:服务拆分与集群,拆分出来的服务与服务之间暴露接口,相互调用,形成集群

 

                        

 

2、此时,就出现新的问题,拆分出来的这么多服务难以统一管理,各个服务的配置比较分散,系统同样还是难以维护,于是产生服务的注册中心与配置中心

                                     

 

 

 3、第三个问题,这么多服务,用户在访问的时候,他怎么知道要访问那个服务器,访问那个服务,难道还要记住每个服务的地址?这样显然不现实。以及在做集群的时候如何去实现负载均衡,让各个服务器以某种策略接收并处理用户的请求,以及控制合法用户进出,于是诞生了网关gateway,去处理请求路由和负载均衡。

                   

 

 

4、第四个问题,各个服务去数据库查询数据的时候,怎样让数据更安全,快速的获取到,于是产生了分布式缓存 与 分布式搜索

 

                 

 

 5、第五哥问题,在一些大的系统中,服务调取服务这个链路是很长的,这样请求的响应时间会很长,于是就产生了异步通信机制,A服务需要调B、C服务的时候,A服务只是通知B、C服务,这样大大缩短了请求的链路,增强性能,于是产生了异步通信、消息队列机制

                  

 

 

 

6、为了解决这个庞大的系统中出现服务故障、异常的时候难以排查问题的出处,会引入分布式日志服务,来记录、统计、分析整个系统运行过程中发生的请求事件等,以快速定位故障点,同时,还会引入系统监控、链路追踪来监控整个系统的运行,一旦出现异常,可快速反应

               

 

 

7、第七个问题,整个庞大的系统,部署起来也是一个大麻烦,所以通常会使用 Jenkins这样的工具去实现自动化的部署,使用docker进行打包,形成镜像文件,在使用kubernetesrancher这样的技术实现整体的自动化部署工作,这就是整个微服务的完整技术栈

 

 

 (三)具体各个部分内部的技术点如下:

 

(三)、微服务技术解决方案对比

 

 

posted @ 2022-03-22 23:46  手可摘星陈1024  阅读(367)  评论(0编辑  收藏  举报