SpringBoot和SpringCloud的区别,使用微服务的好处和缺点

SpringBoot是一个用于快速开发单个Spring应用程序的框架,通过提供默认配置和约定大于配置的方式,快速搭建基于Spring的应用。让程序员更专注于业务逻辑的编写,不需要过多关注配置细节。可以看成是一种快速搭建房子的工具包,不用从零开始每次都去选择木材砖头等,直接拿来就可以搭建。

SpringCloud是基于SpringBoot的微服务框架。它提供了一组分布式系统开发的工具,包括服务发现、负载均衡、断路器、配置管理、消息总线等。可以看成是一个大房子的设计图纸,让你能规划多个房间之间的布局等,使多个房间可以更好地协作工作。

总之,SpringBoot更像单个应用程序的快速搭建工具包,SpringCloud更像基于SpringBoot的微服务架构的一站式解决方案。

用SpringBoot能快速搭建单个应用程序,使用SpringCloud可以更好地构建和管理分布式系统,实现微服务架构。

微服务有哪几种流行的解决方案

流行的有三种:比如Dubbo+ZooKeeper的方式是阿里巴巴2011年开源的,它提供了注册中心、负载均衡、容错、分布式调用等功能。
Dubbo是一个高性能RPC框架,一些服务治理功能依赖第三方组件实现,如ZookKepper和Apollo等

在这里插入图片描述
第二套解决方案是SpringCloud Netflix,这套解决方案当前已经闭源,基本上现在新的微服务架构都不会基于SpringCloud Netflix,但是它是微服务的开端,2018年闭源。

它的组件包括Eureka服务注册中心、Hystrix限流,虽然当前已经不再使用,但是好多公司的项目是这套方案,所以要求会使用,除了Eureka和Hystrix,还有Ribbon和Zuul(网关)组件。

第三套解决方案就是SpringCloud Alibaba,这套解决方案是目前国内主流的,同样也是由阿里巴巴开源的,并且它的治理组件也比较齐全。
在这里插入图片描述

现在的新的微服务项目都在Dubbo和SpringCloud Alibaba这两套之间选择,Dubbo服务治理组件方面只提供服务注册发现、负载均衡、容错和分布式调用功能,其它的组件需要依赖第三方组件比如ZooKeeper和Apollo等。

SpringCloud Alibaba自家的一套全家桶提供了全部组件,不需要额外集成第三方组件。

微服务有哪几种流行的解决方案。流行的有三种,比如第一种是Dubbo+ZooKeeper的方式是阿里巴巴2011年开源的,它提供了注册中心、负载均衡、容错、分布式调用等功能。Dubbo是一个高性能RPC框架,一些服务治理功能依赖第三方组件实现,如ZookKepper和Apollo等。第二套解决方案是SpringCloud Netflix,这套解决方案当前已经闭源,基本上现在新的微服务架构都不会基于SpringCloud Netflix,但是它是微服务的开端,2018年闭源。它的组件包括Eureka服务注册中心、Hystrix限流,虽然当前已经不再使用,但是好多公司的项目是这套方案,所以要求会使用。除了Eureka和Hystrix,还有Ribbon和Zuul(网关)组件。服务注册需要依赖ZooKeeper,服务配置中心需要依赖Apollo。第三套解决方案就是SpringCloud Alibaba,这套解决方案是目前国内主流的,同样也是由阿里巴巴开源的,并且它的治理组件也比较齐全,现在的新的微服务项目都在Dubbo和SpringCloud Alibaba这两套之间选择。Dubbo服务治理组件方面只提供服务注册发现、负载均衡、容错和分布式调用功能,其它的组件需要依赖第三方组件比如ZooKeeper和Apollo等。SpringCloud Alibaba自家的一套全家桶提供了全部组件,不需要额外集成第三方组件。

在这里插入图片描述

服务注册与发现,Dubbo必须整合ZooKeeper,Dubbo唯一优点就是服务调用方面使用RPC方式,性能更高。

微服务架构的问题:1.基础设施成本:服务器、容器管理、负载均衡器。2.开发和维护成本,微服务拆分,数据库也要拆分。

微服务用来处理海量用户、业务复杂和需求频繁变更下的一种架构风格,微服务项目(微服务架构)通常是从单体架构拆分而来

在这里插入图片描述
如果一个单体架构的项目,它的请求并发量非常高,此时就会用nginx进行集群,若一个项目只有10%的模块并发量很高,剩余模块并发量很小,此时对整个项目进行集群扩展非常浪费资源

在这里插入图片描述
在这里插入图片描述
可以按照开发人员的技术特性进行分配,比如并发量非常高的微服务,分配给对处理高并发项目有经验的开发人员负责,处理海量数据的微服务分配给对处理海量数据有经验的开发人员负责,充分利用技术人员的技术特点。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# cass10 面积计算

运行环境Visual Studio 2022 c# cad2016 cass10 通过面积计算得到扩展数据,宗地面积 ,房屋占地面积,房屋使用面积 一、主要步骤 获取当前AutoCAD应用中的活动文档、数据库和编辑器对象。创建一个选择过滤器,限制用户只能选择&q…

第3.6章:StarRocks数据导入——DataX StarRocksWriter

一、Datax 1.1 DataX 3.0概述 DataX3.0是一个异构数据源离线同步工具,可以方便的对各种异构数据源进行高效的数据同步。 其github地址为: https://github.com/alibaba/DataX/blob/master/introduction.mdhttps://github.com/alibaba/DataX/blob/mast…

了解红帽认证,看这篇就够了!

红帽公司成立于1993年,是全球首家收入超10亿美元的开源公司,总部位于美国,分支机构遍布全球。 红帽公司作为全球领先的开源和Linux系统提供商,其产品已被业界广泛认可并使用,尤其是RHEL系统在业内拥有超高的Linux系统…

体验LobeChat搭建私人聊天应用

LobeChat是什么 LobeChat 是开源的高性能聊天机器人框架,支持语音合成、多模态、可扩展的(Function Call)插件系统。支持一键免费部署私人 ChatGPT/LLM 网页应用程序。 地址:https://github.com/lobehub/lobe-chat 为什么要用Lobe…

【rust】vscode下rust-analyzer和Rust Test Lens的Lens

背景 一个粉丝问: 我编辑的launch.json为什么只在按F5的时候工作 按这个debug按钮就不工作? 那在哪改这个插件的配置文档?我一直用的F5 今天上午才注意到这个问题,比如怎么改程序的命令行参数,我意思是如果我非要用…

pikachu靶场-CSRF

CSRF: 介绍: Cross-site request forgery简称为"CSRF”。 在CSF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接) 然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了&#xff0…

虹科方案 | 冷链物流温度监测解决方案

来源:虹科环境监测技术 虹科方案 | 冷链物流温度监测解决方案 原文链接:https://mp.weixin.qq.com/s/LojawqCT1Rh266A8z3BM-Q 欢迎关注虹科,为您提供最新资讯! #温度监测 #制药供应链 #冷链物流 全球制药、医疗保健、生命科学和…

【Linux进程】冯·诺依曼体系结构以及操作系统的深入理解

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.冯诺依曼体系结构特…

Python和Jupyter简介

在本notebook中,你将: 1、学习如何使用一个Jupyter notebook 2、快速学习Python语法和科学库 3、学习一些IPython特性,我们将在之后教程中使用。 这是什么? 这是只为你运行在一个个人"容器"中的一个Jupyter noteboo…

适合中国人体质的低成本创业项目,抖音小店抓住小钱到大钱的之路

大家好,我是电商花花。 人啊,这一辈子想要赚钱,想要脱贫致富,小钱靠勤,中财靠运,大富靠命。 我还依稀记得母亲说的一句话,小钱不勤不聚,还谈何赚大钱,所有的大钱也都是…

软件常见设计模式

设计模式 设计模式是为了解决在软件开发过程中遇到的某些问题而形成的思想。同一场景有多种设计模式可以应用,不同的模式有各自的优缺点,开发者可以基于自身需求选择合适的设计模式,去解决相应的工程难题。 良好的软件设计和架构&#xff0…

OpenCV运行gstreamer管道获取相机数据,处理以后,再交给gstreamer显示(QT实现)

效果: 前言 无意中发现,OpenCV也可以运行gstreamer的命令管道,然后使用appsink来与OpenCV连接起来进行处理,在不断测试之下,先后实现了以下功能: 1. OpenCV运行gstreamer命令,通过appsink传递给OpenCV显示 2. OpenCV运行gstreamer命令,然后再把Mat图像数据通过appsrc传…