近期公司可能是从长远考虑也为了提高产品竞争力,要求研发团队升级现有技术框架,经过技术研讨决定采用SpringCloud重构现有微服务架构。通过一段时间对SpringCloud的深度学习和大量的技术实践,最终洞察SpringCloud技术核心也完成了公司技术框架的优化和技术改良。借此机会我要把SpringCloud核心技术以我的理解与实践重新梳理,同时形成一部完整的核心技术教程,希望能帮助他人。
我们从头说起公司之前微服务架构主要是采用SpringMVC和SpringBoot等这些技术实现,真实应用过程中通过分布式部署完成微服务功能,其技术架构如下图。
SpringBoot服务架构
1.每个服务相对较小,只关注一个业务功能,开发者易于理解。
2.每个服务都可以独立部署,简化了部署新服务版本的流程
3.易于规模化开发,多个开发团队可以并行开发。
4.改善故障隔离,一个服务宕机不会影响其他服务
5.微服务是松散耦合的,每个服务可以进行独立的开发和部署
6.无需长期使用一套技术线,可使用不同的编程语言和工具开发
1.运维成本高,几十甚至上百道工序高效运转
2.开发团队需要保证集群可用,保证数据库集群可用,这就意味着团队需要高品质的自动化技术
3.微服务架构模式应用个改变将会波及多个服务产生雪崩效应。
4.分布式系统的复杂性,分布式系统意味着开发者需要考虑网络延迟、容错、消息序列化、不可靠的网络、异步、版本控制、负载等。
SpringCloud核心功能
SpringCloud-Eureka服务注册中心
SpringCloud-Ribbon负载均衡式服务消费者
SpringCloud-Feign声明式服务消费者
SpringCloud-Hystrix 服务熔断器
SpringCloud-Zuul常用路由网关
SpringCloud-Gatway高级路由网关
SpringCloud-Configs 服务配置中心
SpringCloud-Turbine 服务聚合监控
SpringCloud-Sleuth 服务链路追踪
SpringCloud-Security 服务安全策略
SpringCloud-Bus服务消息总线
SpringCloud-Eureka之源码解析
SpringCloud-Ribbon之源码解析
SpringCloud-Feign之源码解析
SpringCloud-Hystrix之源码解析
SpringCloud-Gatway之源码解析
以上是本教程将要推出的技术课程(附带可运行源码),并持续更新中,此教程对自己是温故而知新,对别人就是抛砖引玉。