架构演进和分布式系统基础知识
架构演进
微服务是从单体应用发展而来,传统单体应用非常简单,只有用户、应用系统和数据库。
这种架构非常简单,但也非常脆弱,只适合小型应用,随着系统越来越庞大,用户越来越多,这样的单体应用也就不适合了,分布式架构应运而生。
分布式架构强化了系统的稳定性和安全性,但也使得系统变得难以维护。
微服务继承了分布式架构的特点,也保留单体应用的优点,集合两者所长。
单体应用优缺点:结构简单,但是开发速度慢、启动时间长、依赖庞大等等。
微服务优缺点:易开发、理解和维护、独立的部署和启动等,但是分布式系统带来了分布式事务问题,需要管理多个服务导致服务治理会出现问题。
- 网关:路由转发 + 过滤器
- 服务注册发现:调用和被调用方的信息维护
- 配置中心:管理配置,动态更新 application.properties
- 链路追踪:分析调用链路耗时
- 负载均衡器:分发负载
- 熔断:保护自己和被调用方
常用的微服务框架
1)Dubbo
ZooKeeper + Dubbo + Spring MVC/Spring Boot
官方地址:http://dubbo.apache.org/#!/?lang=zh-cn
配套:
- 通信方式:RPC
- 注册中心:ZooKeeper / Redis
- 配置中心:Diamond
2)Spring Cloud
全家桶+轻松嵌入第三方组件(Netflix 奈飞)
官网:http://projects.spring.io/spring-cloud/
配套
- 通信方式:HTTP Restful
- 注册中心:Eruka/Consul
- 配置中心:Config
- 断路器:Hystrix
- 网关:Zuul
- 分布式追踪系统:Sleuth+Zipkin
学习资料:https://blog.csdn.net/zhangweiwei2020/article/details/78646252
3)Spring Alibaba Cloud
全家桶+阿里生态多个组件组合+SpringCloud支持
官网:https://spring.io/projects/spring-cloud-alibaba
配套
- 通信方式:HTTP Restful
- 注册中心:nacos
- 配置中心:nacos
- 断路器:sentinel
- 网关:gateway
- 分布式追踪系统:sleuth+zipkin