Java有必要学springcloud,有了kubernetes你为什么还要用 springcloud

本来想的标题是 《springcloud 和 kubernetes 比较 》

不过想着想着就放弃了,因为本来的出发点就是,有了kubernetes我为啥还要用springcloud ... 想了半天,完全没理由啊

就好像机箱为啥买太阳神,就为了ROG全家桶?没理由啊

第一次用springcloud 还是在 2017年,那时候微服务概念刚刚兴起 ( 也可能是孤陋寡闻的我刚刚听说 ),于是做了一个基于 Docker 的 springcloud 架构

原理就是 Docker 封装的 Springboot应用 然后构成了一个 springcloud 平台,反正当时kubernetes还不熟

不过时至今日,我真心想不出如果重新为一个新项目做技术选型,我为啥还要用springcloud

微服务架构,主要组成有,简单列一些

76d1cdea59ba8bcf49c3e16e58fccb8a.png

这里我盗个图

ac21c4a2c317d50d1bc75e881b8a6a4f.png

看来看去大家都一样么,这里你看看 配置中心,既然,kubernetes的 configmap 能做这么多,为什么还要用 Config server 呢?

你可以理解成,springcloud只能用在 springboot的java环境中,而kubernetes明显是通吃,只要能被塞进 docker 的应用,包括 springboot ,都可以在kubernetes上运行,而且更轻量,更简单

这里最关键的点还在于,Java本身就不适合做微服务,即便是一个最简单的 helloworld springboot 镜像,也需要300M,没有其他办法,JVM的大小毕竟摆在那里,一个简单的 tomcat从启动到完成,也需要大概10秒才能初始化一个 ioc 容器, 这些都太耗时了,大规模的微服务平台,一个非常重要的特点就是 容器可以 优雅的启动 然后 优雅的销毁,Java根本做不到,论易用性不如Python,论性能和易于部署不如Golang,论前后端统一不如 Nodejs

如果但得你还有精力学习除了java之外的新知识,我都不建议使用java或者springcloud来构建微服务架构,虽然做过10年Java,但是在微服务云架构上,我要给Java头完全反对票

总上所述,spring cloud 也好,kubernetes 也好,实际上都是 云原生十二要素的一种实践

一份代码,多份部署

依赖

配置中心

服务

构建,发布,运行

无状态独立进程

数据隔离

并发

易处理,能被优雅的启动和销毁

开发环境和生产环境等价

日志管理

管理进程 ( job )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 技术? SpringCloud 是一个基于 Spring 框架的微服务架构开发工具,需要掌握 SpringBoot、Eureka、Ribbon、Feign、Hystrix、Zuul 等技术。同时,还需要了解分布式系统、服务治理、负载均衡、熔断机制等相关知识。 ### 回答2: SpringCloud需要掌握以下几个方面: 1. Spring框架:SpringCloud是基于Spring框架的,因此首先要熟悉Spring框架的核心概念和基本用法,包括IoC容器、AOP、SpringMVC等。 2. 微服务架构:SpringCloud是一种构建和管理微服务架构的解决方案,因此要了解微服务架构的概念、特点和设计原则,熟悉微服务架构中的服务拆分、服务治理、服务注册与发现等核心概念。 3. SpringCloud组件:SpringCloud包括多个组件,如服务注册中心(Eureka、Consul等)、服务调用(Feign、RestTemplate等)、服务网关(Zuul、Gateway等)、配置中心(Config)等,需要深入习和理解每个组件的使用方法和原理。 4. 分布式系统:SpringCloud还需要对分布式系统有一定的理解,包括分布式事务、负载均衡、服务熔断、服务降级等概念和实践。 5. 相关技术栈:SpringCloud与其他技术栈有很好的集成,如数据库(MySQL、Redis等)、消息队列(RabbitMQ、Kafka等)、分布式缓存(Redis、Ehcache等)等,需要熟悉这些相关技术的基本用法和性能特点。 总之,SpringCloud需要掌握Spring框架、微服务架构的基本概念和原则,深入习并理解SpringCloud的各个组件和相关技术栈的使用方法和原理。通过系统的习和实践,能够熟练运用SpringCloud构建和管理大规模、复杂的微服务架构。 ### 回答3: 要习Spring Cloud,首先需要了解Java编程语言和Spring框架的基础知识。接下来,需要掌握以下几个关键概念和技术: 1. 服务注册与发现:习使用Spring Cloud中的服务注册与发现组件,如Eureka、Consul等,了解如何将微服务注册到服务注册中心并实现服务的发现。 2. 服务调用:掌握使用Spring Cloud中的服务调用组件,如Feign、RestTemplate等,习如何通过服务名进行服务之间的调用。 3. 负载均衡:了解负载均衡的概念及其实现原理,习使用Spring Cloud中的负载均衡组件,如Ribbon等,实现对服务的负载均衡。 4. 熔断器:习使用Spring Cloud中的熔断器组件,如Hystrix等,了解熔断器的原理和使用方法,实现对服务调用的容错处理。 5. 配置管理:习使用Spring Cloud中的配置管理组件,如Config Server、Bus等,了解如何将应用程序的配置外部化,并能够动态刷新配置。 6. 消息队列:了解消息队列的基本概念和使用场景,习使用Spring Cloud中的消息队列组件,如RabbitMQ、Kafka等,实现服务间的异步通信。 7. 链路追踪:了解链路追踪的概念及其实现原理,习使用Spring Cloud中的链路追踪组件,如Zipkin等,可用于对微服务调用链的监控和跟踪。 除此之外,还需要习一些与微服务相关的技术,如Docker容器化、容器编排工具如Kubernetes的基本使用等。最重要的是,需要实践和动手去构建和部署一些具体的微服务应用,通过实践来巩固所的知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值