首先微服务就是分布式架构得一种
spring cloud 是解决服务拆分时得治理问题
微服务首先要做得就是拆分
因为传统得单体架构,所有得代码写在一起,随着业务得越来越复杂代码也变得耦合得越来越多。
对于后期得升级维护会越来越困难 ,所以就有了拆分。
拆分也就是把一个单体得项目拆分成许多得独立得项目,每个项目完成一部分业务功能,将来独立开发和部署,每个独立得项目称之为服务 :
每个单独得服 会调用其他得服来完成业务 但是业务越来越多,越来越复杂得时候,服务之间调用得关系就会越来越复杂,所以一定有这样的组件 注册中心:
注册中心可以记录每一个服务得 ip 端口以及他得功能等信息,所以每当服务在去调用其他服务时,不需要自己知道对方得家(ip地址),只需要找注册中心,从中心拉取对应得服务信息
每个服务都有配置 拉出统一管理 则有了配置中心: 配置中心会去通知相关得微服务实现热更新。
服务网关:一方面对用户做校验,把请求路由到相关得服务(在路由得过程中可以做一些负载均衡)服务接收到请求去处理业务该访问数据库 则访问随后把查询到得数据返还给客户。
应对高并发加入分布式缓存(内存 redis等),缓存未命中得情况下再去查数据库
应对海量数据得分布搜索则用到分布式搜索
异步通信得消息队列 缩短响应时间(通过消息队列把服务之间得调用变成通知)提高服务得并发
两个服务组件:
1.分布式日志服务:统计整个集群中得运行日志进行存储,统计,分析,方便查询问题
2.系统监控链路追踪:cpu得负载,链路得占用等情况出现问题可直接定位
如此复杂得系统需要自动部署 所以需要
jenkins自动化编译 通过docker打包行程镜像在基于kubernetes或rencher等自动化部署
以上过程 称之为持续集成
微服务+持续集成 = 完整得微服务技术栈
微服务技术栈得相关知识点: