专栏首页图南科技Java Spring开发生态概览

Java Spring开发生态概览

最近机缘巧合,跟踪了一遍Java生态的Spring相关的开发套件,微服务开发方案,主要包括Spring,Spring Boot,Spring Cloud,Dubbo几块。关键词集中在,微服务,云生态,开源。

我本身不是从事Java语言开发,对Java开发生态知之甚少,借此是一个很好了解Java的机会。 面对一门自己不熟悉的技术领域,今天学习了一种学习方式。从以下几个方面了解。

技术出现的背景

第一点:这个技术出现的背景,初衷和要达到或者要解决什么样的目的

下图是Sping出现的发展史

Pivotal公司

Pivotal 公司的产品有 Spring Boot 、Spring Cloud 、RabbitMQ 等非常著名的开源软件

Pivotal 掌握很多最新前沿的开源技术,公司提供的从云端部署到一整套的大数据解决方案,从开发到平台到提供解决方案到提供咨询,可以说真正依赖技术挣钱的典范。

Spirng Boot,借助领先的Java框架快速构建功能强大的应用和服务。 Spirng Cloud,将经过验证的微服务模式融入您的软件。提供配置存储、服务发现、消息传递等功能。

关于Spring Cloud

实际上Spring Cloud是伴随着微服务的设计理念盛行发展起来的,大环境有云计算,人工智能等大环境,微服务本质上是服务的一种组织方式,在消息总线,SOA基础上发展而来。Spring Cloud全家桶是微服务开发的利器。

学习Spring Cloud免不了涉及到一些架构层面的概念,服务化,消息处理,接口注册消费,网关,分层,熔断降级,分而治之,分布式,云计算。

技术优势和劣势

技术优势和劣势分别是什么,trade-off

Spring Boot技术优势

Spring Boot 的设计理念是什么呢?它就是约定优于配置(convention over configuration)。

Spring Boot实际上是框架的集合。直接可以在线生成项目框架 https://start.spring.io/

Spring Boot 传承于Spring

Spring Boot 中文资料索引 http://springboot.fun/

Spring Cloud技术优势

以下是Spring Cloud的技术组件图

通过这张图,我们来了解一下各组件配置使用运行流程:

1、请求统一通过API网关(Zuul)来访问内部服务. 2、网关接收到请求后,从注册中心(Eureka)获取可用服务 3、由Ribbon进行均衡负载后,分发到后端具体实例 4、微服务之间通过Feign进行通信处理业务 5、Hystrix负责处理服务超时熔断 6、Turbine监控服务间的调用和熔断相关指标

Spring Cloud技术劣势及阻力

Spring Cloud是当下开发微服务的生产利器,相比传统的开发模式, Spring Cloud开发复杂性增加,对开发人员的水平,组织架构,和开发测试交付流程都有具体的要求。

如果严格按照微服务的规范,整块业务需要切分为独立的微服务业务领域,边界需要明确。数据库方面也倾向于独立,与应用保持1:1关系。这些变动无疑是对业务是有冲击的,技术的变革,业务的冲击,在公司推广的时候就会遇到阻力,技术决策者能否拥抱这项技术,ROI是否可见都是挑战。

总结

新的生产力工具肯定会被普及,咨询了几个Java朋友,所在公司是否引入了Spring Cloud和Spring Boot,答案是Spring Boot都在用,Spring Cloud只是理论上接触,并未深入实践。从我整理的资料来分析,Spring Boot和Spring Cloud的普及只是时间问题。

模块的构建,Java是借助Maven实现仓库的包管理和远程下载,本地编译构建,类似于PHP的composer,NodeJs的npm。直接从Github相关的仓库源下载。

另外开源共享精神的确能够让项目和产品产生强大的生命力。

下图是dubbo的生态图,可以感受一下。

本文分享自微信公众号 - 图南科技(tunan_technology),作者:图南科技

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VS Code 扩展巡礼-phpcs

    本篇文章中介绍的扩展是 vscode-phpcs,用于项目开发中 PHP 代码的编码规范。

    needrunning
  • VsCode插件巡礼-phpcs

    我们希望规范项目开发中PHP代码的编码规范,锁定了php-code-sniffer这款插件,在安装执行过程中遇到的问题及理解分享如下

    needrunning
  • 成长系列第五篇-如何更好的提问

    Go 语言环境当前版本,在下载公共包和执行入口程序时遇到科学上网问题,尝试通过 打开 GO111MODULE 解决,问题虽然解决,并不彻底,需要优化。

    needrunning
  • Spring Boot 2.1.0 已发布,7 个重大更新!

    距离《重磅:Spring Boot 2.0 正式发布!》已经过去大半年了,而 Spring Boot 2.1.0 在 10 月底就发布了,我们来看下 Sprin...

    Java技术栈
  • 一句话概括下spring框架及spring cloud框架主要组件spring 顶级项目:spring cloud子项目包括:

    孙亖
  • 一句话概括下spring框架及spring cloud框架主要组件

    Java学习123
  • Spring实战1:Spring初探

    现在的Java程序员赶上了好时候。在将近20年的历史中,Java的发展历经沉浮。尽管有很多为人诟病的产品,例如applets、EJB、Java Data Obj...

    java架构师
  • Spring简介、框架核心、优缺点、应用场景

    Spring可以做很多事情,它为企业级开发提供了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection...

    Java架构师必看
  • Spring、SpringMVC和SpringBoot看这一篇就够了!

    Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反...

    刘文正
  • 《Spring实战》读书笔记-第1章 Spring之旅

    Spring是一个开源框架,最早由Rod Johnson创建,并在《Expert Oneon-One:J2EE Design and Development》这...

    Java架构师必看

扫码关注云+社区

领取腾讯云代金券