微服务架构简介

  1. 将单体应用拆分为多个高内聚、低耦合的小型服务。每个小服务运行在独立进程,
  2. 由不同的团队开发和维护。服务间采用轻量级通信机制,独立自动部署。可以采用不同的语言及存储。

微服务优势

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