关键词:
目录
- 1、什么是微服务
- 1.1、架构演进
- 1.2、微服务架构
- 1.3、微服务解决方案
- 2、SpringCloud概览
2.1、什么是SpringCloud
2.1、SpringCloud主要组件
3、总结
1、什么是微服务
1.1、架构演进
架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。
图1:架构演进
单体架构:未做任何拆分的Java Web程序
图2:单体架构示意图
分布式架构:按照业务垂直划分,每个业务都是单体架构,通过API互相调用。
图3:分布式架构示意图
SOA架构:SOA是一种面向服务的架构。其应用程序的不同组件通过网络上的通信协议向其它组件提供服务或消费服务,所以也是分布式架构的一种。
图4:SOA架构示意图
1.2、微服务架构
微服务架构在某种程度上是SOA架构的进一步的发展。
微服务目前并没有比较官方的定义。微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下:
就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。
但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。
服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。
另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务,也可以使用不同的数据存储。
图5:微服务定义思维导图图6:微服务架构示意图
1.3、微服务解决方案
目前最流行的两种微服务解决方案是SpringCloud和Dubbo。
2、SpringCloud概览
2.1、什么是SpringCloud
Spring Cloud 作为 Java 言的微服务框架,它依赖于 Spring Boot ,有快速开发、持续交付和容易部署等特点。Spring Cloud 的组件非常多,涉及微服务的方方面面,井在开源社区 Spring、Netflix Pivotal 两大公司的推动下越来越完善。
SpringCloud是一系列组件的有机集合。
图7:SpringCloud技术体系图8:SpringCloud技术体系思维导图
2.1、SpringCloud主要组件
2.1.1、Eureka
Netflix Eureka 是由 Netflix 开源的一款基于 REST 的服务发现组件,包括 Eureka Server 及 Eureka Client。
2.1.2、Ribbon
Ribbon Netflix 公司开源的一个负载均衡的组件。
2.1.3、Feign
Feign是是一个声明式的Web Service客户端。
2.1.4、Hystrix
Hystrix是Netstflix 公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。
2.1.5、Zuul
Zuul 是由 Netflix 孵化的一个致力于“网关 “解决方案的开源组件。
2.1.6、Gateway
Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、 Spring Boot 2.0 和 Project Reactor 等 技术开发的网关, Spring Cloud Gateway 旨在为微服务架构提供简单、 有效且统一的 API 路由 管理方式。
2.1.7、Config
Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。扩展:最全的java面试题库
2.1.8、 Bus
使用 Spring Cloud Bus, 可以非常容易地搭建起消息总线。
2.1.9、OAuth2
Sprin Cloud 构建的微服务系统中可以使用 Spring Cloud OAuth2 来保护微服务系统。
2.1.10、Sleuth
Spring Cloud Sleuth是Spring Cloud 个组件,它的主要功能是在分布式系统中提供服务链路追踪的解决方案。
3、总结
本文中对架构的演进及Spring Cloud 构建微服务的基本组件进行了概览。
这个厉害了,阿里p7大佬都在看的springcloud总结,帮你梳理全部知识点!
微服务??微服务架构是一种以一些微服务来替代开发单个大而全应用的方法,每一个小服务运行在自己的进程里,并以轻量级的机制来通信,通常是HTTPRESTfulAPI。微服务强调小快灵,任何一个相对独立的功能服务不再是一个模块,而... 查看详情
mysql知识体系梳理
为了给小伙伴们分享mysql的知识,用xmind梳理了一张图,导出图片5.7mb。主要包含以下几点:mysql的体系架构应用层服务层存储引擎层内存结构磁盘结构一致性如何实现单机实现集群实现存储实现mysql中的锁锁模式表锁... 查看详情
npm重要知识点梳理(代码片段)
一、npm配置运行npmconfigls可查看npm的配置信息registry:一个查询服务地址。npm模块下载和更新时,模块压缩包的下载地址需要通过访问该路径来获得。例如设置该路径为国内镜像:npmconfigsetregistryhttps://registry.npm.taobao.org访问该路... 查看详情
知识体系梳理
...式1、分布式架构及CAP理论2、zookeeper3、RPC框架(如Dubbo、SpringCloud)4、消息队列(Kafka),各种消息队列的优劣 一、Java虚拟机1、内存架构2、类加载机制(特别的,双亲委派模式及其反例)3、主存及线程工作内存(volatile的... 查看详情
docker容器学习梳理-容器硬盘热扩容
前面已介绍了docker很多知识点的操作记录,今天这里梳理下docker容器空间扩展的操作。默认情况下,docker容器的空间是10G。在实际生产环境下,对docker容器进行热扩容(动态扩容)是非常重要的一个需求。Docker容器动态扩展的优点... 查看详情
springcloud微框架系列整体模块梳理
Spring顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目————————————————————main&mda 查看详情
ecmascript6知识点梳理
二.变量的解构赋值 1.ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 2.解构赋值允许指定默认值,但如果一个数组成员不严格等于undefined,默认值是不会生效的。 3.... 查看详情
数据结构与算法知识点梳理—思维导图
...构与算法是学习编程者的必修课,下面是我学习完之后的知识点梳理与总结。本来用xmind做的时候把重要知识点都附了博客链接,但是xmind导出来后打不开了。不用担心我把相关内容放在了数据结构专栏里。#专栏地址:http://blog.c... 查看详情
大数据之维度建模中的重要概念
...了小10轮面试后,我对大数据建模中,比较重要的知识点进行了梳理,截取了书中一些常考的概念,在这里列举出来给大家,大家对面经感兴趣的可以参查看如下内容👇:2022字节终面:2022字节跳动数仓实习... 查看详情
jquery基础知识点梳理
DOM对象:直接使用JavaScript获取的节点对象:varobjDOM=document.getElementById("title");varobjHTML=objDOM.innerHTML;jQuery对象:使用jQuery包装DOM对象后产生的对象,它能够使用jQuery中的方法:$("#title").html();等同于document.getElementById("title") 查看详情
对大数据知识架构的梳理
...期的大数据项目,对之前的项目内容做一个总结。也算是梳理一下项目的架构,对前期也算是一个总结,为后期的学习打下一个基础。清理数据 对传统行业来说,上来就说要搞大数据,一般都会是一种噱头,因为之... 查看详情
一张图了解springcloud微服务架构
SpringCloud作为当下主流的微服务框架,可以让我们更简单快捷地实现微服务架构。SpringCloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏... 查看详情
一张图了解springcloud微服务架构
SpringCloud作为当下主流的微服务框架,可以让我们更简单快捷地实现微服务架构。SpringCloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉... 查看详情
springcloud常用组件梳理
...,完成相应功能至此,整个支付订单的业务流程结束一、Springcloud组件1、SpringCloud核心组件:Eureka注册中心2、SpringCloud核心组件:Feign 调用3、SpringCloud核心组件:Ribbon负载均衡4、SpringCloud核心组件:Hystrix熔断器错误降级防止... 查看详情
springcloud知识盲区整理
SpringCloud知识盲区整理Mybatis中的jdbcType的作用RestTemplate操作@LoadBalanced的作用和理解Mybatis中的jdbcType的作用MyBatis插入空值时,需要指定JdbcType,如mybatisinsert空值报空值异常,但是在pl/sql不会提示错误,主要原因... 查看详情
java知识点梳理——多态
1、定义:多态是同一个行为具有多个不同表现形式或形态的能力,即一个接口不同的实例执行不同的操作;2、优点:消除类型之间的耦合关系、可替换性、可扩展性、接口性、灵活性、简化性;3、多态存在的3个必要条件 a... 查看详情
梳理:python—同一个类中的方法调用(代码片段)
...?因为在自己实践综合练习学过的知识时,突然觉得有些知识点的运用总是不成功,于是翻过课本进行回顾,总是觉得是对的,可是当再进一步思考“既然是对的,为什么在程序中总是不成功呢?”,后来发现,自己理所当然的... 查看详情
梳理操作系统概论
用一张图总结操作系统的结构、功能特征、采用的技术和提供服务方式等。用一张图描述CPU的工作原理用一张图描述系统程序与应用程序、特权指令与非特权指令、CPU状态、PSW及中断是如何协同工作的? 查看详情