• 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%的模块并发量很高,剩余模块并发量很小,此时对整个项目进行集群扩展非常浪费资源

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

  • 相关阅读:
    JVM jstat 查看内存新生代老年代回收情况,排查oom
    7-3 LVS+Keepalived集群叙述与部署
    华为云云服务器云耀L实例评测 | 华为云云服务器实例新品全面解析
    深度学习·理论篇(2023版)·第004篇深度学习和概率论基础01:使用大白话举例说明条件概率独立概率+期望值方差+协方差+熵和平均编码长度的关系
    ubuntu下同时安装和使用不同版本的库 librealsense
    世界杯主题系列-用Scratch制作足球比赛小游戏,源码分享啦
    Codeforces Round #815 (Div. 2)(A~D1)
    C语言sizeof操作符与strlen函数
    CS创世 SD NAND与SPI NAND的对比
    win10启动项在什么地方
  • 原文地址:https://blog.csdn.net/weixin_44390450/article/details/136248152