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.mzph.cn/news/698976.shtml

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

相关文章

ThreeJS 几何体顶点position、法向量normal及uv坐标 | UV映射 - 法向量 - 包围盒

文章目录 几何体的顶点position、法向量normal及uv坐标UV映射UV坐标系UV坐标与顶点坐标设置UV坐标案例1:使用PlaneGeometry创建平面缓存几何体案例2:使用BufferGeometry创建平面缓存几何体 法向量 - 顶点法向量光照计算案例1:不设置顶点法向量…

P18 位运算

位运算是一种对二进制的位进行操作的运算方式 它直接对二进制数的每一位进行逻辑操作&#xff0c;而不考虑整个数的数组。 &与运算 |或运算 ^异运算 [相同位0 不同为1] ~取反 <<按位左移动低位补0&#xff0c;如果数据类型有符号整 5<<3 5*(2^3) >&g…

【行人检测数据集】

数据集&#xff1a; INRIA Person DataBase http://pascal.inrialpes.fr/data/human/ ftp://ftp.inrialpes.fr/pub/lear/douze/data/INRIAPerson.tar Caltech Pedestrian Detection Benchmark http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/ https://zh…

探讨javascript中运算符优先级

如果阅读有疑问的话&#xff0c;欢迎评论或私信&#xff01;&#xff01; 本人会很热心的阐述自己的想法&#xff01;谢谢&#xff01;&#xff01;&#xff01; 文章目录 深入理解JavaScript运算符优先级运算符优先级概述示例演示示例1&#xff1a;加法和乘法运算符的优先级示…

CentOS7 安装Python3.8

在 CentOS 7 上&#xff0c;按照以下步骤安装 Python 3.8&#xff1a; 添加EPEL仓库&#xff1a;首先安装 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;仓库 sudo yum install epel-release安装Software Collections (SCL)仓库&#xff1a;随后&#xff0…

【坑】Spring Boot整合MyBatis,一级缓存失效

一、Spring Boot整合MyBatis&#xff0c;一级缓存失效 1.1、概述 MyBatis一级缓存的作用域是同一个SqlSession&#xff0c;在同一个SqlSession中执行两次相同的查询&#xff0c;第一次执行完毕后&#xff0c;Mybatis会将查询到的数据缓存起来&#xff08;缓存到内存中&#xf…

证件照(兼容H5,APP,小程序)

证件照由uniappuyui开发完成&#xff0c;并同时兼容H5、App、微信小程序、支付宝小程序&#xff0c;其他端暂未测试。 先看部分效果图吧具体可以下方复制链接体验demo 首页代码 <template><view class""><view class"uy-m-x-30 uy-m-b-20"…

adb push 使用

adb push命令用于将文件从本地计算机推送到Android设备。要使用adb push命令&#xff0c;需要先连接Android设备并启动ADB调试模式。以下是使用adb push命令的基本步骤&#xff1a; 打开终端&#xff08;命令提示符&#xff09;。 使用cd命令导航到存储要推送文件的文件夹。 …

R语言【ClusterR】——KMeans_rcpp()

Package ClusterR version 1.3.2 Description 使用RcppArmadillo计算k-means。 Usage KMeans_rcpp(data,clusters,num_init = 1,max_iters = 100,initializer = "kmeans++",fuzzy = FALSE,verbose = FALSE,CENTROIDS = NULL,tol = 1e-04,tol_optimal_init = 0.3,se…

Redis 事务机制之ACID属性

事务属性 事务是对数据库进行读写的一系列操作。在事务执行时提供ACID属性保证&#xff1a; 包括原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability&#xff09;…

如何申请代码签名证书?

代码签名证书是一种关键的数字证书&#xff0c;它的功能在于为软件代码提供安全签名和验证服务&#xff0c;从而提升软件整体的安全性和用户信任度。获取代码签名证书的过程通常涉及多个严谨步骤&#xff0c;确保通过正式流程获得的证书能有效加强软件完整性和真实性保护。以下…

Innodb底层原理与Mysql日志机制深入剖析

MySQL的内部组件结构 大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层两部分。 Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间、数学和加密函…

力扣hot100题解(python版10-12题)

哎- -最近本来就没时间写算法 这算法怎么还这么难。。。 10、和为 K 的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1]…

uniappQQ登录是如何实现的,请说明其流程

QQ登录功能的实现分成以下几个步骤&#xff1a; 注册QQ互联账号并创建应用&#xff0c;获取 appid 配置回调地址 recirect_uri在页面中放置 QQ登录按钮&#xff0c;点击按钮后跳转到 QQ 登录页面&#xff0c;链接地址是由 QQ 平台提供的&#xff0c;需要拼接上申请的 appid登录…

华为配置WDS手拉手业务示例

配置WDS手拉手业务示例 组网图形 图1 配置WDS手拉手业务示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。但企业考虑到AP通过有线部署的成本较高&#xff0c;所以通过建立…

Android 开发一个耳返程序(录音,实时播放)

本文目录 点击直达 Android 开发一个耳返程序程序编写1. 配置 AndroidManifast.xml2.编写耳返管理器3. 录音权限申请4. 使用注意 最后我还有一句话要说怕相思&#xff0c;已相思&#xff0c;轮到相思没处辞&#xff0c;眉间露一丝 Android 开发一个耳返程序 耳返程序是声音录入…

内容检索(2024.02.23)

随着创作数量的增加&#xff0c;博客文章所涉及的内容越来越庞杂&#xff0c;为了更为方便地阅读&#xff0c;后续更新发布的文章将陆续在此汇总并附上原文链接&#xff0c;感兴趣的小伙伴们可持续关注文章发布动态&#xff01; 本期更新内容&#xff1a; 1. 电磁兼容理论与实…

oracle读写分离多数据源

1、配置数据源 package com.netintech.core.config;import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; im…

springboot基础(82):分布式定时任务解决方案shedlock

文章目录 前言简介shedlock dbSchedulerLock注解说明 shedlock redis遇到的问题1.配置shedlock不生效 前言 多节点或者多服务器拥有相同的定时任务&#xff0c;这种情况下&#xff0c;不同节点的相同定时任务会被重复执行。如何解决分布式定时任务重复执行问题&#xff1f;此…

fpga_cpu加速

一 cpu流水线执行指令 二 计算机体系结构 注&#xff1a;ARM就是典型的哈佛结构 三 cpu加速 同样采用流水线&#xff0c;哈佛结构的指令效率更高&#xff0c;通过指令预取&#xff0c;提高了流水线的并行度。