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