V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chaleaochexist
V2EX  ›  程序员

哪位大哥给讲讲 spring cloud 到底是个啥?

  •  
  •   chaleaochexist · 2023-05-05 21:28:57 +08:00 · 6079 次点击
    这是一个创建于 566 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是一堆接口和实现吗? 我的理解 springcloud 是接口 spring cloud alibaba 是实现

    我这么理解可以吗? 非 java 程序员. 大佬轻喷.

    第 1 条附言  ·  2023-05-08 14:46:18 +08:00
    专门付费咨询了一波.
    我的理解问题不大.

    下面各位大哥别吵了. 散了散了.

    感谢各位大哥的解答.
    51 条回复    2023-05-25 15:02:18 +08:00
    MakHoCheung
        1
    MakHoCheung  
       2023-05-05 21:34:43 +08:00   ❤️ 1
    是的
    cvbnt
        2
    cvbnt  
       2023-05-05 22:19:07 +08:00
    微服务开发解决方案
    PVXLL
        3
    PVXLL  
       2023-05-05 22:20:31 +08:00 via iPhone
    麻烦打开网站看两眼
    totoro52
        4
    totoro52  
       2023-05-05 22:42:09 +08:00   ❤️ 1
    Spring Cloud 为开发者提供了快速构建分布式系统中一些常用模式的工具(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)。分布式系统的协调导致样板模式,使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序。

    官方的解释,实际上 SpringCloud 是好几家厂家在维护
    以往大家都用 Spring Cloud Netflix ,但目前 Netflix 的组件基本都进入停止维护状态了
    所以国内新项目基本都采用 Spring Cloud Alibaba 了
    totoro52
        5
    totoro52  
       2023-05-05 22:44:09 +08:00   ❤️ 1
    你可以理解为 SpingCloud 是一个约定,大家按照这个约定开发出自家的产品
    wetalk
        6
    wetalk  
       2023-05-05 22:49:59 +08:00
    @totoro52 #5 看你的描述更像 SpringBoot ,当然 Cloud 基于 Boot
    chaleaochexist
        7
    chaleaochexist  
    OP
       2023-05-05 22:51:03 +08:00
    @PVXLL 大哥你好, 网站上面的字儿我都认识, 但是合在一起就不知道啥意思了, 非 java 程序员真不是特别理解.
    chaleaochexist
        8
    chaleaochexist  
    OP
       2023-05-05 22:51:49 +08:00
    @totoro52 大哥你好,约定我的理解就是接口.
    我的理解对吗?
    chaleaochexist
        9
    chaleaochexist  
    OP
       2023-05-05 23:01:42 +08:00
    @PVXLL 大哥你要是除了 java 还懂点 go 或者 python 的话你能做个类比吗?
    如果不懂就算了.
    PVXLL
        10
    PVXLL  
       2023-05-06 00:59:29 +08:00 via iPhone
    @chaleaochexist 如果类比就是 mysql 和 Alibaba RDS for Mysql 的类似的区别,用云服务中已有组件替换掉一些开源的组件,和自己的云服务有更高的集成度和更方便服务部署到自己的云上
    PhilFreecess
        11
    PhilFreecess  
       2023-05-06 08:11:22 +08:00   ❤️ 9
    ---new bing:

    Q:请用小学生都能理解的方法给我解释一下什么是 springcloud

    A:SpringCloud 是一种用来开发分布式微服务系统的工具集合。它可以帮助开发者快速地实现一些分布式系统中常见的功能,比如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。它使用 Spring Boot 的开发方式,让开发者可以方便地启动和部署微服务。

    用小学生都能理解的方法来说,就是 SpringCloud 可以让很多小程序(微服务)之间互相认识(服务发现注册)、互相沟通(消息总线)、互相帮助(负载均衡、断路器),还可以让小程序的老师(配置中心)统一管理他们的作业(配置信息),还可以让小程序的家长(数据监控)看到他们的表现(运行状况)。
    dayeye2006199
        12
    dayeye2006199  
       2023-05-06 08:42:11 +08:00
    @chaleaochexist 你要会 k8s 的话,类比就是,spring cloud 实现了 service, configmap, dns 再加一些其他的微服务里面经常用的功能。
    但是 k8s 是语言无关的,spring cloud 是 java only 的
    bigjack
        13
    bigjack  
       2023-05-06 08:59:58 +08:00
    又是 spring boot 又是 spring cloud ,还得远程调用,还得业务接口+业务实现,mapper 接口+mapper 实现,各种注入,各种技术一套一套,实现一个简单的功能得他妈十几个文件,Java 真的是门烂语言,很早之前用 ssh 那一套没感觉这么麻烦啊
    lower
        14
    lower  
       2023-05-06 09:09:29 +08:00
    @totoro52 Dubbo RPC 都被算到 spring cloud 里面去了啊哈哈哈
    twofox
        15
    twofox  
       2023-05-06 09:17:37 +08:00
    @bigjack 你那套根本支撑不了现在的业务开发

    就我现在的这个项目来说
    二十多个功能模块,需要可以独立更新、相互调用

    ssh 实现不了
    5sheep
        16
    5sheep  
       2023-05-06 09:17:56 +08:00   ❤️ 1
    过度设计,对绝大多少数中小厂商来说。
    增加开发、运维成本
    大多数项目就像攒个万元电脑刷网页
    hoopan
        17
    hoopan  
       2023-05-06 09:18:19 +08:00
    @dayeye2006199 请教下,如果构建一套多语言的微服务架构,用 k8s 还是 spring cloud 更好?对这两个都不太熟悉
    cheng6563
        18
    cheng6563  
       2023-05-06 09:22:28 +08:00
    @bigjack 你这说的啥,Spring Boot 就是做减法的。
    Biluesgakki
        19
    Biluesgakki  
       2023-05-06 09:23:25 +08:00
    @PhilFreecess 看到作业没绷住
    cluulzz
        20
    cluulzz  
       2023-05-06 09:24:10 +08:00
    @hoopan #17 spring boot,部署用 k8s,spring cloud 也是 spring boot 加一堆 bean 弄出来的
    wolfie
        21
    wolfie  
       2023-05-06 09:29:38 +08:00
    @bigjack #13
    ssh 跟 cloud 有什么关系 这么些年没搞明白?
    hhjswf
        22
    hhjswf  
       2023-05-06 09:32:04 +08:00
    @bigjack 如果到了不得不分服务的时候,你用 ssh 就知道什么叫麻烦
    zbatman
        23
    zbatman  
       2023-05-06 09:34:21 +08:00
    @bigjack 简单的功能具体指什么?
    mypchas6fans
        24
    mypchas6fans  
       2023-05-06 09:47:48 +08:00
    @bigjack 有一说一,ssh 那个年代,应用的规模、复杂度、压力都比不上现在吧。docker k8s 啥的也没影。
    但是 java 功能还没开始写就几百行代码了真的是……
    chaleaochexist
        25
    chaleaochexist  
    OP
       2023-05-06 10:18:06 +08:00
    @PhilFreecess 小学生提问: spring cloud 和 spring cloud alibaba 的区别是什么?
    chaleaochexist
        26
    chaleaochexist  
    OP
       2023-05-06 10:19:15 +08:00
    @PhilFreecess 小学生提问: spring cloud 和 spring cloud alibaba 的区别是什么?
    @dayeye2006199 所以大哥, spring cloud 和 spring cloud alibaba 的区别是什么?
    bthulu
        27
    bthulu  
       2023-05-06 10:37:45 +08:00
    上 k8s 就行了, 不用绑死在 java 上.
    chaleaochexist
        28
    chaleaochexist  
    OP
       2023-05-06 10:40:01 +08:00
    @bthulu 我不是 java 程序员, 其实是单纯的好奇问问题.
    你说得对 如果真做项目, 应该上 k8s.
    我就是想知道 spring cloud 是啥. 是接口吗?
    spring cloud 和 spring cloud alibaba 是什么关系?

    想#11 楼的回复, 其实我自己也能查到. 包括 chatgpt 也能查到. 但是说了很多又好像没说.
    potatowish
        29
    potatowish  
       2023-05-06 10:57:36 +08:00 via iPhone   ❤️ 1
    通俗易懂的解释,Spring Cloud 就是一个样板房,可以直接入住。有些人不喜欢里面的家具就自己买了,比如 Spring Cloud Azure, Spring Cloud Alibaba 等。
    wangpugod2003
        30
    wangpugod2003  
       2023-05-06 10:59:36 +08:00
    真的做项目,java ,springboot 够了,做啥项目要搞到微服务啊?做个 taobao 还是支付宝?
    等你搞个 monolithic 的 java web 程序,再晋级。不然你咋知道 spring cloud 提供了哪些 module ,和 kubernetes 的区别是啥。等等。
    chaleaochexist
        31
    chaleaochexist  
    OP
       2023-05-06 11:10:41 +08:00
    @potatowish 谢谢大佬也就是说 spring cloud 提供了接口和实现.
    不过实现的不好.
    被 spring cloud alibaba 替换了. 是这个样子吧?
    Hurriance
        32
    Hurriance  
       2023-05-06 11:40:49 +08:00   ❤️ 1
    @chaleaochexist
    微服务是一个抽象,它通常指的是将应用按业务的纬度拆分成一个个独立的微服务,提供了一定的可拓展性、灵活性(针对某一个微服务而言)

    Spring Cloud 是 Spring 针对 Java 语言对微服务的实现,而 Spring Cloud 具体实现又有 Spring Cloud Netflix 、Spring Cloud Alibaba 、Spring Cloud AWS 等等,可能因为各个厂商面对的业务不同,所以会各自针对自己的业务进行开发。它们的差异之一体现在组件的实现不同。
    chenPiMeiHaoChi
        33
    chenPiMeiHaoChi  
       2023-05-06 12:04:20 +08:00
    我就不懂为什么非得往代码里加阿里的屎。eureka 停止维护了是不够用吗?三个 eureka 撑你几百个节点不跟玩似的,等你业务真到上千个节点了公司完全有能力自研 /去掉 cloud 换成 k8s 模式。为啥非得一个劲加阿里的屎???
    chaleaochexist
        34
    chaleaochexist  
    OP
       2023-05-06 12:17:04 +08:00
    @Hurriance 大哥问一下, "实现"和"具体实现"的区别是什么? 我目前有两种理解:
    1. spring cloud 定义了接口, spring cloud alibaba 根据接口实现了具体的实现.
    2. spring cloud 定义了接口和实现, spring cloud alibaba 提供了另一种实现,因为 spring cloud 的实现不那么好用.

    @chenPiMeiHaoChi
    大哥, 你这个回答和本案无关, 可以换个文法, spring cloud 和 spring Netflix 的区别是什么?
    chaleaochexist
        35
    chaleaochexist  
    OP
       2023-05-06 12:22:09 +08:00
    @PVXLL 那我明白了, 就是说 spring cloud alibaba 是 spring cloud 的一种实现(解决方案).

    类似 rabbitmq vs amqp
    ZeroDu
        36
    ZeroDu  
       2023-05-06 13:31:38 +08:00
    spring cloud alibaba 是阿里自几实现了几个组件;比如:注册配置中心 nacos ;但是也有其他实现的;比如 consul ,Spring Cloud Config ;基本上也可以不用 alibaba
    chaleaochexist
        37
    chaleaochexist  
    OP
       2023-05-06 13:40:05 +08:00
    @ZeroDu
    我大概明白了.
    spring cloud 自己提供了一些组件和接口.
    spring cloud Netflix 和 spring cloud alibaba 提供了一些替换的组件和接口.

    谢谢大佬.
    ssxn58
        38
    ssxn58  
       2023-05-06 15:16:20 +08:00
    @5sheep 事实上一堆夸张的概念可以忽悠甲方多掏钱,有时候甲方甚至需要有借口多花点钱
    tsubin
        39
    tsubin  
       2023-05-06 15:23:18 +08:00
    @PhilFreecess 这真是 new bing 回答的吗 要是真的 那也太牛逼了
    KevinBlandy
        40
    KevinBlandy  
       2023-05-06 15:51:29 +08:00
    给你推荐一个 spring 的中文文档吧。

    https://springdoc.cn/
    Goat121
        41
    Goat121  
       2023-05-07 16:25:54 +08:00
    @wangpugod2003 我有个朋友开个小公司专做政府项目的,好几年前就开始上 spring cloud
    我曾经好奇问他并发多少,他说内部系统用户一共就几十个,有个毛并发好谈
    完全就是为了吹得高大上一点,这边多拿钱,那边好交待
    chaleaochexist
        42
    chaleaochexist  
    OP
       2023-05-07 16:42:13 +08:00
    @Goat121 你是懂球的.
    bigjack
        43
    bigjack  
       2023-05-08 08:48:59 +08:00
    @twofox 咋就实现不了,之前老系统不能用了?别搁那扯淡了
    bigjack
        44
    bigjack  
       2023-05-08 08:49:59 +08:00
    @wolfie 你知道 Java 的 ssh 是啥吗?难道你只知道 linux 的连接工具 ssh ?
    wolfie
        45
    wolfie  
       2023-05-08 09:21:18 +08:00
    @bigjack
    上下文都理解不了,怪不得这么些年 ssh 、boot 、cloud 区别在哪里都不懂。
    yxisenx
        46
    yxisenx  
       2023-05-08 09:44:31 +08:00
    @bigjack 旧 ssh 项目重构的心态爆炸
    lizhian
        47
    lizhian  
       2023-05-08 09:49:56 +08:00   ❤️ 1
    你这么理解是没问题的
    bigjack
        48
    bigjack  
       2023-05-08 10:08:47 +08:00
    @wolfie 看不懂,哪有你懂,我是小白
    twofox
        49
    twofox  
       2023-05-08 10:27:25 +08:00
    你就用 ssh ,拿头实现?就只口嗨?
    wolfie
        50
    wolfie  
       2023-05-08 10:41:38 +08:00
    @bigjack
    不懂就老实看别人辩论,自己菜还一口一个垃圾 。
    bigjack
        51
    bigjack  
       2023-05-25 15:02:18 +08:00
    @wolfie 你是个傻逼吗?你爹比你懂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:52 · PVG 05:52 · LAX 13:52 · JFK 16:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.