对spring cloud的个人理解
1:对springcloud理解?
Spring cloud是一个基于Spring Boot实现的服务治理工具包,用于微服务架构中管理和协调各个服务的。
spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。
2:为什么要使用springcloud?
spring开发配置太复杂。springboot简化了spring项目开发。而springboot虽然开发服务容易,服务管理却不好整,所以出来了cloud来管理服务;
1:单体项目的缺点
①编译难,部署难,测试难
②技术选择难
③扩展难
使用微服务架构就可以解决单体项目缺点。
2:微服务的优点
1复杂度可控-每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率
2独立部署-微服务具备独立的运行进程,所以可以独立部署
3技术选型灵活-每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈,甚至重构微服务
4容错-在微服务架构下,故障会被隔离在单个服务中
5扩展- 每个服务可以根据实际需求独立进行扩展
微服务架构。随着系统业务量的不断增多,单一的一套系统可能无法对应高并发,且系统变得越来越臃肿,后期难以维护。这种情况下会采用微服务架构设计,为了让单一模块变得更加清晰容易维护,且使某个模块儿的负载能力变得更加强大,添加集群也更为方便。
3:对springcloud各组件的理解
Springcloud大概有接近二十个组件,常用的有服务发现注册Eureka 、配置中心config、服务网关Zuul 、负载均衡Ribbon (feign包含了他)、断路器Hystrix (feign包含了他)
由于是微服务架构,由多个单体项目组成,就会有各自的通信地址,所以我们用服务发现注册Eureka来管理通信地址,配置中心config来管理配置文件并放到gitee上去保存,服务发现注册包含了服务端EurekaServer和客户端EurekaClient,(可以讲心跳机制),微服务EurekaServer在启动时会将通信地址发给注册中心EurekaClient,形成通信列表,也就是服务注册;微服务从注册中心获取一份微服务通信地址,自己向别的微服务通过通信地址找到的该微服务通信地址基于HTTP发起请求叫做服务发现;
当有多个微服务时,根据业务需求可能会有多个服务者,也就是功能一样的两个模块。需要对他们发起的请求进行处理,所以我们需要负债均衡负载均衡Ribbon,通过负载均衡来控制请求的分发,负载均衡常用算法有轮询(公平,两个都一样),随机,加权轮询(哪个厉害点就多给点,能者多劳)。
但是一个服务出现延迟时,所有的请求都阻塞在依赖的服务,高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险也就是雪崩,所以我们需要用到断路器Hystrix,将出现问题的服务通过熔断、降级等手段隔离开来,这样不影响整个系统的主业务,所以维护起来更方便。具体方式有:资源隔离(线程池隔离和信号量隔离),熔断(熔断,半熔断,闭合),降级(服务熔断后返回一个预先设定好的托底数据);
当服务都能正常运行时,我们不能让所有都来访问,要有一个保安来拦截不该进来的请求,比如爬虫和其余不合法的请求,所以我们用到了服务网关Zuul,zuul还能自定义过滤器,比如自定义一个accesstoken,不带accesstoken的不让访问。有效的保证了服务的安全性。
对spring cloud的个人理解相关推荐
- Spring Cloud Alibaba到底坑不坑?
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 之前我发过一篇<说说我为什么看好Spring Cloud Alibaba>,然后这两天有网 ...
- 最新版Spring Cloud Alibaba微服务架构-Ribbon负载均衡篇
文章目录 前言 一.Ribbon核心概念 二.服务器端负载均衡和Riboon客户端负载均衡 1.服务器端负载均衡: 2.Riboon客户端负载均衡: 三.Ribbon策略 四.Ribbon配置使用 五 ...
- Spring Cloud 个人心得 理论
1.分布式项目为什么会崛起 有那些优势 什么是分布式项目 在没有分布式项目之前,一个系统所有的功能可能都是在一个项目中创建的,拿商城项目来说明 商城项目组成部分(基础数据,用户,商品,订单,支付,一些 ...
- Java中Spring Cloud Ribbon
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模 ...
- Spring Cloud 服务消费者 rest+ribbon (二)
Ribbon简介 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过Spring Cloud的封装,可以让我们 ...
- Spring Cloud Task 主要是干什么的啊?跟 Quartz 和 Spring Task 有啥关系?
背景 项目开发中涉及到分布式定时任务调度,且任务处理时又涉及到了数据分片. 最先想到的任务调度框架是 Quartz 和 Spring Task ,分析它们的特点后,发现存在两个问题: Quartz 的 ...
- Spring Cloud Netfilx Ribbon(负载均衡工具)
一.介绍 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过Spring Cloud的封装,可以让我们轻松地将面向服务的 ...
- 【Spring Cloud Alibaba】(一)微服务介绍 及 Nacos注册中心实战
文章目录 前言 I.微服务与Spring Cloud II.Nacos 注册中心 III.Spring Cloud Alibaba Nacos 实战 1.新建父工程 2.新建demo-a 服务 3.新 ...
- 深入理解 Spring Cloud 核心组件与底层原理
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:邋遢的流浪剑客 blog.csdn.net/qq_40378 ...
最新文章
- 我可以直接从GitHub运行HTML文件,而不仅仅是查看它们的来源吗?
- 遭遇ORA-01200错误的原因及解决方法
- 苹果降价背后的代工厂之殇
- 对不起!今天我们的活动在朋友圈刷屏了……(多图预警)
- mybatis做批量删除时写SQL语句时遇到的问题
- 常见php面试题,常见的 PHP 面试题和答案分享
- [xPlugins] 开发中常用富文本编辑器介绍
- oracle互换2条记录,ORACLE中确定表里哪些行是彼此互换的
- JAVA的节点流和处理流
- 不要根据自己的喜好创业
- 卷积法求解光斑质心(附源码,C++、opencv)
- c#文件分割与合并 part 1 (转自互联网)
- 【现代编译器】语法分析——正则表达式,上下文无关文法,递归下降分析,分析树...
- prthon日期型、字符串、数值、时间戳相互转换
- 下列关于linux扩展名说法错误的是,全国计算机一级考试选择题集锦(2015年1月)
- 机器学习:最小二乘支持向量机(Least Squares Support Vector Machine)
- 如何无损把mp4视频格式转换成mp3音频格式
- java gef_GEF开发入门要点(个人经验)
- POJ,3713 Transferring Sylla
- matlab能否算高中数学题,Matlab软件在高中数学学习中的应用