首页 > 其他分享 >Spring Cloud原理

Spring Cloud原理

时间:2023-10-12 23:24:43浏览次数:23  
标签:调用 架构 请求 Spring 原理 服务 Cloud

SpringCloud原理

如果还没有学习过,建议先了解以下微服务

什么是微服务?

  • 传统单体架构

    业务量小,所有代码放在一个项目里即可。这些项目部署在一台服务器即可。整个项目所有服务器都由这台服务器提供。

    • 优点:项目架构简单,适用于小型项目

    • 缺点:维护困难,所有模块公用一个数据库,项目要求所有技术统一。

  • 微服务是一种架构风格,由多个可以独立部署的应用组件组成。直白地说,是将传统单体结构的项目,按照服务进行彻底拆分。每个服务可以独自运行,每个服务都会占用线程

优点

服务原子化拆分,独立打包,独立部署,升级。利于扩展

使用轻量级机制通信,通常为HTTP API(RESTful)

所有服务都可以使用不同技术实现,不同数据存储技术。

微服务常见概念

  • 服务治理

    • 服务注册

    • 服务发现

    • 服务剔除

  • 服务调用

  • 服务网关

  • 服务容错

  • 链路追踪

  • 负载均衡

什么是SpringCloud

分布式微服务架构的一站式解决方案,一系列框架的有序集合。它并不是一个具体的框架。它是各微服务架构技术集合,亦称微服务全家桶。

SpringCloud常用组件

  • Eureka(服务注册与发现)

    管理微服务的通信地址,可以通过服务的名字实现服务调用

  • 负载均衡

    • Ribbon(客户端负载均衡)

    • Feign(服务端负载均衡,其实质也是依赖于Ribbon,只是将调用方式RestTemplete更改成Service接口)

    用来解决微服务之间的通信问题,服务发生调用的时将请求按照某种规则分发到多个目标服务器上。

  • Zuul(服务网关)

    所有的请求都需要经过zuul之后才能到达目标服务

  • Hystrix(断路器)

    一个请求可能需要多个微服务共同完成,一旦某个服务发生故障,可能导致整个调用链上的微服务全都异常,甚至整个微服务架构瘫痪。Hystrix就是用来解决微服务故障,保护微服务安全的组件。

  • Spring Cloud Config(分布式配置)

    作为分布式配置管理中心就是用来统一的管理服务的配置文件。

  • Spring Cloud Bus(消息总线)

    微服务中给各个微服务广播消息的一个组件,使用消息总线构建一个消息中心,其他微服务接入到消息中心,当消息总线发起消息,接入的微服务都可以收到消息。

  • Spring Cloud sleuth (微服务链路追踪)

    微服务中,一个请求可能需要多次服务调用,链路追踪用来监控维护之间的调用关系,让程序员方便直观的感受到一个请求经历了哪些微服务,以及服务的请求时间,是否有异常等。

标签:调用,架构,请求,Spring,原理,服务,Cloud
From: https://www.cnblogs.com/3-DG/p/17760848.html

相关文章

  • JavaScript的工作原理:引擎、运行时和调用堆栈
    概述几乎每个人都已经听说过V8引擎这个概念,大多数人都知道JavaScript是单线程的,或者它使用的是回调队列。在本文中,我们将详细介绍这些概念,并解释JavaScript实际运行的方式。通过了解这些详细信息,你将能够正确地利用其所提供的API编写更好的、非阻塞的应用,这些应用正确地利用了......
  • 布隆过滤器:原理与应用
    本文已收录至GitHub,推荐阅读......
  • springboot整合jpa sqlite
    前言最近有关项目需要用到SQLITE,我先是使用Mybatis去连接SQLITE,然后发现SQLITE对BLOB支持不好,在网上看到相关教程可以写mapper.xml文件,加一个handler解决BLOB支持的问题,但是又发现Mybatis还对SQLITE的自增主键不支持,不能正常自增主键,而且Mybatis读取几十MB的BLOB文件很慢,最后换到......
  • 免费使用Salesforce Data Cloud!详细操作步骤来啦
    DataCloud是Salesforce向市场推出的增长最快的产品,这对Salesforce来说是一个重要竞争优势。近期,Salesforce宣布客户可以免费使用DataCloud。这就是所谓的零美元SKU,换句话说,这是一条不会产生任何成本的Salesforce产品线。启用DataCloudStep1:签署订单合同单击齿轮图标时,可......
  • Android 通过bin二进制程序调用jar原理
    最近在研究monkey测试,发现monkey测试的代码都是JAVA编写的,通过编译生成jar包,而我们在执行测试时直接执行/system/bin/monkey这个二进制程序的,那么它是如何能调起java程序的呢?先来看看monkey二进程程序的生成.development\cmds\monkey\Android.mkLOCAL_PATH:=$(callmy-dir)i......
  • SpringMVC
    1.1SpringMVC概述SpringMVC是一种基于Java实现MVC模型的轻量级Web框架优点使用简单,开发便捷(相比于Servlet)1.2SpringMVC快速入门使用SpringMVC技术需要先导入SpringMVC坐标与Servlet坐标<dependency><groupId>javax.servlet</groupId><artifactId>javax.se......
  • 大白话教你认识 Kafka,背后原理竟能秒懂 转载
    一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你......
  • CloudEvents 基础
    CloudEvents概念CloudEvents规范最初由CNCF旗下的ServerlessWorkinggroup创建,但自v0.1之后,该规范即被提升为一个独立CNCF沙箱项目。常用于分布式系统环境,帮助用户构建松散耦合且可独立部署的分布式系统。为行业订立一个规范以提升互操作性CloudEvents事件事件包括某个实际......
  • SpringBoot获取Bean的工具类
    1、beanName默认是类名首字母小写下面的类:beanName=bean1@ComponentpublicclassBean1{publicStringgetBean1(){return"Bean1";}}修改beanName下面的类:beanName=bean2New@Component("bean2New")publicclassBean2{......
  • Spring Boot 跨域访问
    出于安全的考虑,浏览器会禁止Ajax访问不同域的地址,在现如今微服务横行的年代,跨域访问是非常常见的。W3C的CORS(Cross-origin-resource-sharing)规范中也已经允许跨域访问,并被主流浏览器所支持,它们包括:Chrome3+;Firefox3.5+;Opera12+;Safari4+;IE8+;如何在Sp......