day01-SpringCloud基本介绍
SpringCloud基本介绍
1.提出问题
先思考一个问题,没有微服务技术,是不是程序员就不能开发大型项目?
是可以的,对大型项目进行模块划分,对各个模块进行实现。但模块之间更多地是以API调用完成,耦合度较高,不利于拓展和维护(在没有微服务技术时,很多大型项目就已经使用了微服务的概念)
标准化的微服务解决方案(SpringCloud 和 SpringCloud Alibaba)出现的原因和价值是什么?
(1)微服务可以根据业务不同,将一个大项目分解成不同的服务(比如搜索服务/网关服务/配置服务/存储服务/发现服务等等)
(2)各个服务通过分布式方式进行工作,从而可以高效,快速,稳定地完成复杂的功能
(3)可以理解为:原来大项目的某些模块->抽出形成微服务->配合分布式工作方式->从而高效,快速稳定地完成复杂功能

2.系统架构的演变过程
- 单机架构
- 动静分离架构:静态缓存+文件存储
- 分布式架构:业务拆分+负载均衡
- 微服务架构:使用SpringCloud

”微服务“一词源于 Martin Fowler 的名为 Microservices 的博文。简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的Restful API进行通信协作。
被拆分的每一个小型服务,都围绕着系统中的某一项,或一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。由于有轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。
3.SpringCloud全面说明
- SpringCloud 来源于 Spring,是更高层次的、架构视角的综合性大型项目,目标旨在构建一套标准化的微服务解决方案,让架构师在使用微服务理念构建系统时,面对各个环节都可以找到相应的组件来处理
- SpringCloud 是 Spring 社区为微服务架构提供的一个 “全家桶” 套餐。套餐中各个组件之间的配合,可以减少组件选型和整合上花费的精力,可以快速构建起基础的微服务架构系统,是微服务架构的最佳落地方案
- SpringCloud 天然支持 SpringBoot(有版本对应要求),使用门槛较低
- SpringCloud 解决了与分布式系统相关的复杂性——网络问题,延迟开销,带宽问题,安全问题
- 有处理服务发现的能力——服务发现允许集群中的进程和服务找到彼此并进行通信
- 可以处理冗余问题——冗余问题经常发生在分布式系统中
- 能够解决负载平衡——改进跨多个计算资源(例如计算机集群、网络连接、中央处理单元)的工作负载分布
4.SpringCloud核心组件图

SpringCloud 核心组件一览图,文档 : https://spring.io/projects/spring-cloud

Spring Cloud Alibaba 文档地址: https://github.com/alibaba/spring-cloud-alibaba

Spring Cloud Netflix 地址: https://github.com/Netflix

5.SpringCloud分布式示意图
分布式工作的简单示意图:
- SpringCloud 是微服务概念的落地实现
- SpringCloud 体现了微服务的弹性设计
- 微服务的工作方式一般是基于分布式的
- SpringCloud 仍然是 Spring 家族一员,可以解决微服务的分布式工作方式带来的各种问题
- SpringCloud 可以帮助解决服务发现、负载平衡、断路、分布式跟踪和监视的问题,甚至可以充当 API 网关
- SpringCloud和SpringBoot版本的对应关系

6.SpringCloud组件选型

day01-SpringCloud基本介绍的更多相关文章
- springCloud 概念介绍
微服务(Microservice) 那么首先介绍下微服务.微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以 ...
- Day01 - Python 基础介绍
1 Python 简介 1.1 Python 的由来 Python的创始人:吉多·范罗苏姆(Guido van Rossum) 1989年,吉多·范罗苏姆为了在阿姆斯特丹打发圣诞节假期时间,开发的一个 ...
- springcloud (一) 介绍
开启springcloud 之旅... 传统单体架构: 微服务架构: 每个模块独立运行,就是独立的进程. 接下来基于springboot 来构建微服务: 1, 客户端->订单微服务->用户 ...
- SpringCloud版本介绍和SpringBoot的兼容性
Spring Cloud是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号.Spring Cloud通过一个资源清单BOM(Bill of Material ...
- day01 python起源 介绍 解释器 变量 流程控制if
day01 python 一.python的起源 1.python简介 java 企业级应用, android, app c 操作系统, 做开发语言的, 游戏的内核 ...
- dubbo&hsf&spring-cloud简单介绍
Dubbo: 简介:Dubbo是一个分布式服务框架,以及SOA治理方案.其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等. 底部NIO基于netty ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响
笔记 4.SpringCloud微服务核心组件Eureka介绍和闭源后影响 简介: SpringCloud体系介绍 官方地址:http://projec ...
- 微服务介绍和springCloud组件
微服务架构模式是:将整个web服务 组织成一系列小的web 服务,这些小的web服务可以进行独立的编译和部署,并通过各自暴露的API接口 进行相互通信,他们相互协作,作为一个整体,为客户提供服务功 ...
- 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)
Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...
- python Day01
Python Day01 Python 简介 介绍 Python 是一种面向对象.直译式的计算机程序设计语言,也是一种功能强大的通用型语言,已经有将近二十年的发展历史,成熟稳定.包含了一组完善而且容易 ...
随机推荐
- 创建ZBLOG数据库
1.下载ZBLOG待测系统,并解压缩 打开内容如下 2.打开小皮面板的网站,点击网站->管理->打开根目录,然后把里面所有内容删除,粘贴下载好打开的内容 3.然后重启Nginx 4.浏览器 ...
- 服务器端口对外开放(包括,mysql,django)
1.查看对外开放端口号,并开放端口 查看开放的端口 ,有两个命令 1.1.iptables -L -n (比较清晰明了) 1. 2.firewall-cmd --list-ports 1.3 .打开端 ...
- openstack安装部署私有云详细图文
本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内 ...
- hdu:Two Rabbits(区间DP)
Problem DescriptionLong long ago, there lived two rabbits Tom and Jerry in the forest. On a sunny af ...
- mmdetection使用现有的模型进行推理
数据集准备: 下载链接: COCO:https://cocodataset.org/ VOC:http://host.robots.ox.ac.uk/pascal/VOC/ cityscapes:ht ...
- idea更改JDK版本_Mac
大致分为几个步骤: 在SDKs中添加JDK(已经添加过就不用添加了) 修改项目的Project SDK和Project language level(两个版本要一致) 修改Modules中的Sourc ...
- logrotate 切割Tomcat的catalina.out文件
使用logrotate进行切割. 在/etc/logrotate.d下,新建tomcatrotate,编辑tomatrotate,写入如下内容: /usr/local/tomcat/logs ...
- protobuf怎么处理java中的Object和Object[],protobuf的bytestring和object[]
如题,作者一开始也遇到了这个比较棘手的问题. 话不多说,直接说解决方案. 这里使用bytestring,如果是object[]的话则用repeated定义即可. 那么问题又来了,用这个类型怎么做到与j ...
- 使用request对象实现注册示例,请求方式的编码问题
get提交方式: method="get"和地址栏请求方式默认都属于get提交方式 get方式在地址栏显示请求信息﹐(但是地址栏能够容纳的信息有限,4-5KB;如果请求数据存在大文 ...
- docker 镜像rabbitmq安装
docker 镜像rabbitmq安装 1.拉取镜像 带有"mangement"的版本(包含web管理页面): docker pull rabbitmq:3.7.7-managem ...