一、微服务

微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库

微服务技术栈:

微服务条目落地技术
服务开发SpringbootSpringSpringMVC
服务配置与管理Netflix公司的Archaius、阿里的Diamond
服务注册与发现EurekaConsulZookeeper
服务调用RestRPCgRPC
服务熔断器HystrixEnvoy
负载均衡RibbonNginx
服务接口调用(客户端调用服务的简化工具)Feign
消息队列KafkaRabbitMQActiveMQ
服务配置中心管理SpringCloudConfigChef
服务路由(API网关)Zuul
服务监控ZabbixNagiosMetricsSpectator
全链路追踪ZipkinBraveDapper
服务部署DockerOpenStackKubernetes
数据流操作开发包SpringCloud Stream(封装与RedisRabbitKafka等发送接收消息)
事件消息总线Spring Cloud Bus

二、SpringCloud

SpringCloud 简介

SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。

SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以用SpringBoot的开发风格做到一键启动和部署。

SpringCloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包

SpringCloud 和 SpringBoot 的关系

SpringBoot专注于快速方便的开发单个个体微服务。

SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,
为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务

SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系。

SpringCloud 技术组件更改

SpringCloudD版本的时候使用的eurekafeign等技术在H版本的时候不再支持,因此有新的技术替代了它们,如下:
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐