微服务架构简介
将单体应用拆分为多个高内聚、低耦合的小型服务。每个小服务运行在独立进程,
由不同的团队开发和维护。服务间采用轻量级通信机制,独立自动部署。可以采用不同的语言及存储。
微服务优势
1.易于开发和维护。微服务相对小,易于理解;启动时间短,开发效率高
2.独立部署。一个微服务的修改不需要协调其他服务
3.伸缩性强。每个服务都可以在横向和纵向上扩展,每个服务都可以按硬件的需求进行独立扩容
4.与组织结构相匹配。微服务架构可以更好地将架构和组织相匹配,每个团队独立负责某些服务,获得更高的生产力
5.技术异构性。使用最适合该服务的技术,降低尝试新技术的成本
SpringCloud介绍
Spring Cloud是一个工具组件集,快速搭建分布式环境的通用模式,
比如:服务注册与发现、负载均衡、分布式配置、分布式追踪、断路器等
Spring Cloud基于Spring Boot开发,每个组件都对应一个起步依赖
组件之间可以整合到一起发挥作用
微服务技术栈
微服务条目 |
技术 |
服务开发 |
SpringBoot、Spring、SpringMVC |
服务配置与管理 |
Netflix公司的Archaius、阿里的Diamond |
服务器注册与发现 |
Eureka、Consul、ZooKeeper |
服务调用 |
Rest、RPC、gRPC |
服务熔断器 |
Hystrix、Envoy |
负载均衡 |
Ribbon、Nginx |
服务接口调用(客户端调用服务的简化工具) |
Feign |
消息队列 |
ActiveMQ、RabbitMQ、Kafaka |
服务配置中心管理 |
SpringCloudConfig、Chef |
服务路由(网关) |
Zuul |
服务监控 |
Zabbix、Nagios、Metrics、Spectator |
全链路追踪 |
Zipkin、Brave、Dapper |
服务部署 |
Docker、OpenStack、Kubernetes |
数据流操作开发包 |
SpringCloud Stream(封装与Redis、Rabbit、Kafaka等发送接收消息) |
事件消息总线 |
SpringCloud Bus |