干货|SpringCloud全家桶微服务初探

news2024/11/29 11:47:45
  • SpringCloud的从整体架构上看,相对来说是完整的、庞大的。
  • 它不仅仅是一个基础性架构工具,它为微服务架构提供了一个“全家桶”的套餐。
  • 每一个模块关注各自的职能,并且能够很好地配合与协作,能够帮助入门者快速搭建起一套微服务架构的服务。

内容快速一览

  • 什么是微服务?Microservices
  • 如何实施微服务?
  • 微服务界有哪些组件可选择?
  • SpringCloud包含哪些功能模块?
    在这里插入图片描述

什么是微服务?Microservices

  • 将原本一个独立的系统,拆分成若干小服务
  • 小服务之间通过REST API进行交互通信
  • 每个小服务各自部署、各自维护、独立扩展
  • 易于控制整体服务,降低整体耦合性,各部分根据各自需求开发与上线
  • “微”也不是拆的越碎越好,也要考虑自身服务的完整性、服务部署与维护的复杂性等

如何实施微服务?

  • 微服务表明存在多个独立的小服务,但这么多独立的服务需要能够互相通信实现调用,保持整体的可用性
  • 将服务进行组件化。原本使用方法直接调用的,需要转化为REST API的方式进行调用
  • CI/CD流程自动化。更多的服务,代表更大的运维复杂度,也代表更大的服务风险,所以需要自动化的CI/CD流程来降低运维复杂度

微服务界有哪些组件可选择?

虽说SpringCloud已经提供了一整套实现微服务的流程,但是民间也有不少因不能满足某些场景而自行实现或优化的微服务组件,所以也并不是一定需要选用全家桶内的组件,也要聚焦于当前应用的场景。

  • 服务治理:
    • Dubbo(Alibaba)
    • DubboX(dangdang)
    • Eureka(Netflix)
    • Consul(Apache)
  • 分布式配置管理:
    • Config(SpringCloud)
    • Nacos(alibaba)
    • Disconf(baidu)
    • QConf(360)
    • Diamond(taobao)
    • Zookeeper(Apache)
  • 批量任务:
    • Task(SpringCloud)
    • Azkaban(LinkedIn)
    • Elastic-Job(dangdang)
    • XXL-Job(个人)
    • DolphinScheduler(Apache)
  • 服务追踪:
    • Sleuth(SpringCloud)
    • Zipkin(Twitter)
    • Skywalking(Apache)

除了SpringCloud原生组件,民间也是涌现了不少基于不同场景进行优化的各类组件。

SpringCloud包含哪些功能模块?

在这里插入图片描述

  • SpringCloud是基于SpringBoot实现的微服务架构,能够保留一切SpringBoot可以带给你的丝滑和便利,
  • 包含有配置管理、服务治理、断路器、智能路由、为代理、控制总线、全局锁、决策精选、分布式会话、集群状态管理等

官方全家桶所包含的子组件有:

  • Spring Cloud Confg: 配置管理工具,可以配置的外部化存储,客户端刷新、加密/解密等。
  • Spring Cloud Netflix: 核心组件。
    • Eureka: 服务治理组件,包含服务注册中心、服务注册与发现
    • Hystrix: 容错管理组件,实现断路器模式。
    • Ribbon: 客户端负载均衡的服务调用组件
    • Feign: 基于 Ribbon 和 Hystrix 的声明式服务调用组件。
    • Zuul: 网关组件,实现智能路由、访问过滤。
    • Archaius:外部化配置组件。
  • Spring Cloud Bus: 事件、消息总线。
  • Spring Cloud Cluster: 针对 ZooKeeper、Redis、Hazelcast、Consul 的选举算法和通用状态模式的实现。
  • Spring Cloud Cloudfoundry: 服务发现与配置管理工具。
  • Spring Cloud Stream: 通过 Redis、Rabbit 或者 Kafka 实现的消费微服务。
  • Spring Cloud Sleuth: 整合 Zipkin,实现较完整的链路追踪。
  • Spring Cloud ZooKeeper: 基于 ZooKeeper 的服务发现与配置管理组件。
  • Spring Cloud Starters: Spring Cloud 的基础组件,基础依赖模块。
  • Spring Cloud CLI: CLI插件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前后端联调跨域问题

文章目录 什么是同源策略如何判断是否同源?跨域资源共享(CORS)如何解决跨域问题 什么是同源策略 同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 如何判断是否同源? 如果…

从中国人民大学与加拿大女王大学金融硕士的学员构成,了解金融行业都有哪些职位

金融行业最受欢迎的岗位莫过于券商、银行、基金公司、私募市场、体制内(监管部门、交易所等)、信托、大企业投资部、保险、管理咨询、资产管理。在当下如果要选择工作,想找就业率第一、薪酬排名第一的行业,那一定是金融工作。中国…

03 redis新类型bitmap/hyperloglgo/GEO

亿级系统中常见的四种统计 聚合统计 统计多个集合元素的聚合结果,就是前面讲解过的交差并等集合统计交并差集和聚合函数的应用 排序统计 抖音视频最新评论留言的场景,请你设计一个展现列表。考察你的数据结构和设计思路设计案例和回答思路以抖音vcr最…

3.java高级之GUI编程

1.gui (graphical user interface) awt sun公司最早的gui,不美观,不兼容各平台swing : awt升级2.顶层容器(只有一个)(其他的只能放这里)Jframe Jdialog对话框 Jwindow(x) //在main方法写fnew Jframe(); f.setSize(300,300); //设置大小f.setTitle("hello"); //设置…

java条件语句

文章目录 一、java条件语句1、Java 条件语句 - if...else2、Java switch case 语句 总结 一、java条件语句 1、Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法…

你真的了解kotlin中协程的suspendCoroutine原理吗?

文章目录 什么是协程suspendCoroutineUninterceptedOrReturnsuspendCoroutineUninterceptedOrReturn存在的问题suspendCoroutinesuspendCancellableCoroutine ​ 引言: 在Kotlin协程中,如何让一个suspned 函数挂起?如何让挂起协程恢复&#…

STM32G4 比较器COMPx(寄存器开发)

目录 1. 特性1.1 框图1.2 比较器输入信号SEL1.3 比较器滞回选择HYST1.4 比较器的输出1.5 LOCK机制 2. 编程2.1 初始化步骤2.2 举例 STM内部的比较器是模拟量的比较器,其与APB2时钟同步,在RCC时钟控制器中没有COMx时钟使能标志位,其时钟的使能…

前端自学要多久?自学前端一般多久可以找到差不多的工作?

好程序员今天给各位同学分享自学前端的高效率路径,最快4个月,平均6个月! 一、html, CSS (1月) 1.基本语法, 2.做2-3个项目实战 3.刷面试题 二、JavaScript (1.5月) 1.基本语法 2.实际案例练习融合HTML, Css项目实战 3.刷题面试题 三、Vue/Rea…

Java 高级应用-多线程-(三)实现 Callable 接口与使用线程池创建线程

实现 Callable 接口 • 与使用 Runnable 相比, Callable 功能更强大些 – 相比 run()方法,可以有返回值 – 方法可以抛出异常 – 支持泛型的返回值(需要借助 FutureTask 类,获取返回结果) • Future 接口(…

游戏研发项目管理

基于阶段模式进行游戏新产品研发过程,以及基于这种研发过程Leangoo 领歌提供的项目模板。 二、游戏产品开发流程 通常开发一款新游戏大体上会按照如下流程来进行: 1) 概念阶段 – Concept 主策根据产品创意,确定游戏策划草案&a…

C++中的内存空间管理详解【C++】

文章目录 C/C内存分布C语言中动态内存管理方式:malloc/calloc/realloc/freeC内存管理方式new/delete操作内置类型new和delete操作自定义类型 operator new与operator delete函数重载operator new与operator deletenew和delete的实现原理内置类型自定义类型 定位new表…

使用tomcat可能遇到的问题

问题一:窗口一闪而过 如果双击startup.bat,启动tomcat,命令窗口一闪而过;或者用命令窗口执行startup.bat命令,未能启动tomcat,而是提示下面的文字; 说明可能是java的环境变量配置错误&#xf…

让ChatGPT谈谈科技发展

ChatGPT谈科技发展 讲讲科技发展的那些事儿谈谈ChatGPT对科技发展的影响谈谈你对ChatGPT的看法ChatGPT对科技发展的负面影响ChatGPT的存在是利是弊?关于全国科技者工作日 讲讲科技发展的那些事儿 谈谈ChatGPT对科技发展的影响 谈谈你对ChatGPT的看法 ChatGPT对科技发…

pdf怎么合并成一个文件?高效工具分享

PDF是一种非常常用的文档格式,许多人经常需要合并多个PDF文件为一个文件。这是因为有时候我们需要将多个PDF文件打包成一个文件,以便于共享或归档。在本文中,我们将介绍如何使用电脑或手机合并PDF文件。 以下是常见的合并PDF的软件&#xff1…

以太坊Layer 2即将爆发!加密巨头入场布局,或将迎来“百链大战”!

眼下,以太坊Layer 2发展势头强劲。在数十条Rollup Layer 2异彩纷呈之际,Coinbase、ConsenSys等加密巨头也开始下场参与竞争,部署原生Layer 2网络。 截至2022年底,Layer 2解决方案的日均交易数在持续增加,甚至超过了以太…

牛客网语法篇刷题(C语言) — 基本类型

🤩本文作者:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C语言—语法篇》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,…

如何制作插件使用案例?

UE5 插件开发指南 前言0 示例角色蓝图1测试关卡2 扩展物品数据3 小结前言 作为一款插件,我们一定想要开发者拿到之后立即知道如何使用,所以我们需要制作插件使用案例,最好搭配相应的文档教会插件的使用者如何使用插件,如何对插件的功能进行扩展。为了达到这样的目标,我们…

TOPSIS(优劣解距离法)【附Python实现代码及可视化代码】

目录 一、指标正向化 1.极小型指标->极大型指标 2.中间型指标->极大型指标 3.区间型指标->极大型指标 二、标准化处理 三、计算得分并归一化(不带权重) 四、计算得分并归一化(带权重) 熵权法 1)判断输入的矩阵是否存在负数 2)计算第j…

通过 Wacom 的 Project Mercury 提高远程办公效率

过去几年中,我们的工作方式发生了翻天覆地的变化。疫情加快了对远程办公和协作的采纳,导致人们更加依赖技术来联系团队和提高工作效率。 但是,那些依靠专门硬件和软件来完成工作的创作者呢?艺术家、设计师和开发人员需要使用专门…

34 KVM管理设备-管理虚拟磁盘

文章目录 34 KVM管理设备-管理虚拟磁盘34.1 概述34.2 操作步骤 34 KVM管理设备-管理虚拟磁盘 34.1 概述 虚拟磁盘类型主要包含virtio-blk、virtio-scsi、vhost-scsi等。virtio-blk模拟的是一种block设备,virtio-scsi和vhost-scsi模拟的是一种scsi设备。 virtio-b…