一、微服务
单体架构:
——优点:
1、易于开发:开发的方式简单,方便运行也容易调试。
2、易于测试。
3、易于部署。
——缺点:
1、项目过于臃肿,维护成本大,出现bug难定位。
2、资源无法隔离:共享一个数据库,或者一块内存。
如果一个功能模块突然访问量过大,可能影响整个系统的性能。
3、无法灵活扩展:单体系统也可以集群部署,但是不够灵活,我明明只是订单系统遇到了瓶颈,
只需要将订单模块水平扩展就行,但现在要将整个系统水平扩展。不灵活!
4、交付周期长:所有功能得一起上线,一起构建,一起部署。
任何一个环节出错,都可能影响交付。
分布式的优点与单体应用缺点对立,但是也带来了一些问题
1.性能,访问速度受带宽影响。
2.可靠性,高度依赖网络。
3.数据一致性:C(一致性)A(可用性)P(分区容错),cap原理
4.运维成本:一个系统拆成了多个服务,每个服务都得配置,部署,监控,日志处理
CAP 定理:http://www.ruanyifeng.com/blog/2018/07/cap.html
微服务就是在分布式的特点上对业务的的一个横向划分,拆分成不同模块对外提供服务。
二.Spring Cloud是什么?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud就像一个老大哥带了一帮小弟,是一个资源的整合。
三.微服务入门
服务链路过程图:
技术选择
1.注册中心
参考文章链接:https://blog.csdn.net/forezp/article/details/81040925
整理内容连接:https://www.iamlfc.top/2019/08/25/SpringCloud%E5%AD%A6%E4%B9%A0%E4%B8%80-%E6%9C%8D%E5%8A%A1%E6%B3%A8%E5%86%8C%E5%92%8C%E5%8F%91%E7%8E%B0/
2.服务消费
参考链接:https://blog.csdn.net/forezp/article/details/81040965
3.路由网关
zuul:
– 参考连接:https://blog.csdn.net/forezp/article/details/81041012
gateway:
– 参考连接:https://blog.csdn.net/forezp/article/details/85210153
4.配置中心
SpringColud Config:
– 参考链接:https://www.cnblogs.com/lfalex0831/p/9206605.html
推荐学习资料
http://xujin.org/categories/%E8%B7%9F%E6%88%91%E5%AD%A6Spring-Cloud/
http://www.itmuch.com/categories/Spring-Cloud/
http://blog.didispace.com/Spring-Cloud%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
demo地址:https://github.com/cmevolve/xieexiaodaima/tree/master/%E6%A1%86%E6%9E%B6%E5%AD%A6%E4%B9%A0/springAll/springcloud/springCloud
用途 | 技术 |
---|---|
基础容器 | spring-boot 2.0.6 |
分布式服务框架 | Spring cloud F SR3 |
项目构建 | Maven |
注册中心 | eureka |
网关 | gateway |
服务消费者 | Fegin |
配置中心 | Spring Cloud Config |
…