[详解]为什么选择Spring Boot作为微服务的入门级微框架(PPT)

57 篇文章 0 订阅
订阅专栏

本文为普元云计算高级工程师许二虎在普元云计算架构设计群的微课堂分享。如需加入普元新一代数字化企业云平台研发设计群参与微课堂、架构设计与讨论直播,请直接回复此公众号:“加群 姓名 公司 职位 微信号”。

  

  1. Spring Boot是什么,解决哪些问题

  1) Spring Boot使编码变简单

  2) Spring Boot使配置变简单

  3) Spring Boot使部署变简单

  4) Spring Boot使监控变简单

  5) Spring Boot的不足

  2. Spring Boot在平台中的定位,相关技术如何融合

  1) SpringBoot与SEDA +MicroService + RESTful

  2) SpringBoot与Mock

  3. 采用了SpringBoot之后,技术管理应该如何进行

  首先,我们来看一下 spring boot是什么,它帮助我们解决了哪些问题

  

  

  SpringBoot是伴随着Spring4.0诞生的;

  从字面理解,Boot是引导的意思,因此SpringBoot帮助开发者快速搭建Spring框架;

  SpringBoot帮助开发者快速启动一个Web容器;

  SpringBoot继承了原有Spring框架的优秀基因;

  SpringBoot简化了使用Spring的过程。

  

  

  Spring由于其繁琐的配置,一度被人认为 “配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。

  Spring Boot更多的是采用Java Config的方式,对Spring进行配置。

  

  

  

  

  

  

  可以看到,采用了spring-boot-start-actuator之后,直接以REST的方式,获取进程的运行期性能参数。

  当然这些metrics有些是有敏感数据的,spring-boot-start-actuator为此提供了一些Basic Authentication认证的方案,这些方案在实际应用过程中也是不足的。

  

  

  Spring Boot作为一个微框架,离微服务的实现还是有距离的。

  没有提供相应的服务发现和注册的配套功能,自身的acturator所提供的监控功能,也需要与现有的监控对接。没有配套的安全管控方案,对于REST的落地,还需要自行结合实际进行URI的规范化工作。

  下面,我们研究一下 Spring Boot在平台中的定位,相关技术如何融合

  

  

  

  

  上图比较复杂,整体是采用SEDA,也就是Stage-EDA。可以看到,整体是以处理顺序进行展示的,响应过程类似。在处理过程中,主要会有前置过滤,核心功能处理,后置过滤几大部分。

  图中的过滤器都是可插拔式的,并且可以根据实际场景进行扩展开发。每个过滤器都是Stage,比如ClientInstance合法性检查、调用鉴权、解密、限流等等。

  一个请求Stage与Stage的转换,实现上是切换不同的线程池,并以EDA的方式驱动。

  对于业务逻辑的开发者而言,只需要关心CORE部分的业务逻辑实现,其他的非功能都由框架进行统一实现。

  

  Mock不应当再是测试的专有名词了,当然对于测试这个角色而言,mockito这样的工具,依然可以为他们提升不少效率。

  SpringBoot为创建REST服务提供了简便的途径,相比之下,采用阿里的dubbo在做多团队、多进程联调时,mock的难度就陡增。

  Mock是解耦并行开发的利器,在理性的情况下,软件从开发期Mock联调,到开发与开发的真实联调,只需要切换一个依赖的域名即可,比如:

  mockURI:http://mock.service.net/v1/function?param1=value1

  devURI:http://dev.service.net/v1/function?param1=value1

  而上述的域名切换,只需要在开发期定义好一个配置项,在做环境切换的时候自动注入即可,省时、省心、省力。

  

  如上图和 docker的集成可以有AB两种方案

  ? A方案的核心是,把docker作为操作系统环境的交付基线,也就是不同的fat jar 使用相同的操作系统版本、相同的JVM环境。但对于docker image来说都是一样的。

  ? B方案的核心是,不同的fat jar,独立的编译为docker image,在启动时直接启动带有特定版本的image。

  A相比与B方案的特点是对于docker registry(也就是docker的镜像仓库)的依赖性较低,对于前期编译过程的要求也较低。

  采用了Spring Boot之后, 技术管理应该如何进行

  

  正因为Spring Boot是与Spring一脉相承的,所以对于广大的Java开发者而言,对于Spring的学习成本几乎为零。

  在实践Spring Boot时学习重点,或者说 思维方式改变的重点在于

  1)对于REST的理解,这一点尤为重要,需要从设计、开发多个角色达成共识,很多时候都是对于HTTP 1.1协议以及REST的精髓不理解,导致REST被「盲用」而产生一些不好的效果。

  2)对于YAML的理解和对于JavaConfig的理解,这两点相对较为简单,本质上是简化了xml文件,并提供等价的配置表述能力。

  

  1. 丰富的工具链为SpringBoot的推广带来了利好。

  2. SpringBoot的工具链主要来自于两个方面:

  1) 原有Spring积累的工具链;

  2) SpringMVC或者其他REST框架使用HTTP协议,使得HTTP丰富的工具成为SpringBoot天然的资源。

  

  SpringBoot自身对于前面提到的配置文件:“application.yml”提供了多个「Profile」,可以便于开发者描述不同环境的配置,这些配置例如数据库的连接地址、用户名和密码。

  但是对于企业用户而言,把不同环境的配置,写到同一个配置文件中,是极其不安全的,是一个非常危险的动作。

  有一个经常被提及的例子是,随着开源的进行,很多互联网公司,都由于把相关的代码提交到github之类的开源代码社区,并且没有对代码进行严格的配置审查,导致一些”password”被公开。有些不良用心的人,就利用搜索工具,专门去挖掘这些关键字,进而导致数据库被「拖库」。

  所以对于企业用户,更多的应该是采用集中式的配置管理系统,将不同环境的配置严格区分地存放。

  虽然SpringBoot的actuator自身提供了基于「用户名+口令」的最简单的认证方式,但它保护的是对框架自身运行期的性能指标敏感数据的最基本的保护。这种保护在实际应用过程中,「用户名+口令」的管理是缺乏的,「用户名+口令」的安全配置过程是缺失的。

  SpringBoot也不提供对于我们自己开发的功能的任何防护功能。

  一般来讲,一个安全的信道(信息传输的通道),需要通信双方在进行正式的信息传输之前对对方进行身份认证,服务提供方还需要在此基础之上,对请求方的请求进行权限的校验,以确保业务安全。这些内容也需要基于SpringBoot进行外围的安全扩展,例如采用前面提到的S-EDA进行进程级别的安全管控。这些还需要配套的安全服务提供支持。

  一般来说,只要企业与互联网对接,那么随便一个面向消费者的「市场活动」,就有可能为企业带来井喷的流量。

  传统企业内,更多的系统是管理信息类的支撑系统,这类系统在设计时的主要用户是企业内部员工以及有限的外部供应商。这类系统存在于企业内部的时间一直很长,功能耦合也很多,在功能解耦前,是非常不适合的,或者说绝对不可以直接为互联网的用户进行服务的。

  SpringBoot自身并没有提供这样的流控措施,所以需要结合前面提到的S-EDA进行流量的控制,并结合下层的水平扩展能力(例如,Kubernets)进行流量负载合理的动态扩容。

  另外,在长业务流程的设计上,也尽可能地采用异步的方式,比如接口调用返回的是一个「受理号」,而不是业务的处理结果,避免井喷业务到来时,同步调用所带来的阻塞导致系统迅速崩溃,这些也都是SpringBoot自身并不解决的问题。

  以上是我分享的主要内容,下面我们总结一下:

  


详解】为什么选择Spring Boot作为微服务入门框架PPT
EAWorld
05-06 2624
本文为普元云计算高级工程师许二虎在普元云计算架构设计群的课堂分享。如需加入普元新一代数字化企业云平台研发设计群参与课堂、架构设计与讨论直播,请直接回复此公众号:“加群...
SpringSecurity框架详解
m0_67266585的博客
07-28 983
SpringSecurity是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富;是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准;SpringSecurity是一个框架,致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,SpringSecurity的真正强大之处在于可以轻松扩展以满足自定义要求。在Java生态中,目前有和认证和授权。...
SpringBoot 课件PPT
02-22
比较新的适合入门SpringBoot PPT课件
乐优商城笔记
DockerLi的博客
06-26 687
0.学习目标 了解SpringBoot的作用 掌握java配置的方式 了解SpringBoot自动配置原理 掌握SpringBoot的基本使用 了解Thymeleaf的基本使用 1. 了解SpringBoot 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 1.1.什么是SpringBoot SpringBo...
Java毕业设计-基于springboot开发的java学习平台-毕业论文+答辩PPT(附源代码+演示视频)
最新发布
分享型博主
03-14 1159
Java毕业设计-基于springboot开发的java学习平台-毕业论文+答辩PPT(附源代码+演示视频)作为本科大学生,我们在学习Java编程语言的过程中,不仅掌握了其语法规则和编程技巧,更重要的是学会了如何利用Java解决实际问题,实现软件系统的设计与开发。本次毕业设计旨在通过实际项目的开发,将我们在大学期间所学的Java编程语言知识与实践相结合,进一步加深对Java语言的理解和应用。
基于 Spring Boot 框架的人事管理系统的设计与实现 附完整代码+论文+ppt
机器学习深度学习业余选手
02-08 3763
基于 Spring Boot 框架的人事管理系统的设计与实现 附完整代码+论文+ppt
微服务介绍/微服务架构方案PPT
11-27
微服务介绍/微服务架构方案PPT,新手学习参考资料!
详解Spring Boot Admin来监控我们的微服务
08-18
主要介绍了用Spring Boot Admin来监控我们的微服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
spring boot微服务自定义starter原理详解
08-25
主要介绍了spring boot微服务自定义starter原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Springboot常用开发介绍ppt和相应代码样例
08-16
个人对springboot常用的开发技术进行的总结,已经给公司内部做了培训。现在分享给大家,希望对大家有所帮助,包括ppt和相应的源代码
SpringBoot入门培训ppt课件.ppt
08-12
SpringBoot入门培训ppt课件.,对初学Spring Boot的同学非常有帮助,详细介绍了各项功能,注释,语法。入门学习主流技术,掌握技能。。。。
springBoot课件
03-29
springBoot课件,包含springboot基础讲解、服务治理中心、断路器、负债均衡、配置中心、路由、消息等章节
spring boot入门ppt和代码
08-30
spring boot 学习,入门代码,以及ppt讲解。springboot_demo.zip,spring boot入门篇.pptx
springboot PPT分享
10-26
这是一个有关新人培训及个人技术分享的ppt,介绍了有关springboot的历史及用法。欢迎交流学习,如有疑问或想法,可私信我,谢谢!
详解Spring Boot微服务如何集成fescar解决分布式事务问题
08-26
主要介绍了详解Spring Boot微服务如何集成fescar解决分布式事务问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
详解利用SpringCloud搭建一个最简单的微服务框架
08-28
主要介绍了详解利用SpringCloud搭建一个最简单的微服务框架,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring Boot构建框架详解
08-28
主要为大家详细介绍了Spring Boot构建框架的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
系统详解springcloud微服务技术栈课程 mapping映射
09-20
Spring Cloud微服务技术栈中,mapping映射是指将一个请求URL映射到特定的处理方法上。Spring Cloud提供了一种灵活且方便的方式来实现请求的映射。 首先,我们可以使用注解`@RequestMapping`来定义一个处理请求的...

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • fastjson 过滤不需要的字段或者只要某些字段 61785
  • Linux/Ubuntu 下安装filezilla(FTP工具) 58100
  • mac安装mysql的两种方法(含配置) 30485
  • kali 使用u盘安装提示“无法挂在光盘..”的解决方案 27559
  • 无法安装 installer integrity check has failed 22440

分类专栏

  • EasySwift 17篇
  • 分布式 1篇
  • Swift3 2篇
  • Swift 35篇
  • IOS 79篇
  • Java 57篇
  • 项目管理 1篇
  • 软件架构 1篇
  • 程序安全 1篇
  • Cocoapods 9篇
  • 多线程 6篇
  • 数据库 12篇
  • 效率 14篇
  • 新特性 3篇
  • 新技术 3篇
  • 产品 1篇
  • 思想进化 1篇
  • 大数据 2篇
  • Git 1篇
  • Android 8篇
  • Linux 14篇
  • Kali 5篇
  • 科技前沿 4篇
  • Win 1篇
  • 安全 3篇
  • HTML 3篇
  • JS 2篇
  • UI 1篇
  • Mac 1篇
  • 1篇
  • 更新 1篇
  • 乱码 1篇
  • ubuntu 2篇
  • PHP 1篇
  • 以太坊 1篇

最新评论

  • Linux/Ubuntu 下安装filezilla(FTP工具)

    zhangt2018: 安装不了

  • 表和视图,存储过程和函数的区别

    kfl19: 表是可执行文件,视图是快捷方式。受教了

  • kali 使用u盘安装提示“无法挂在光盘..”的解决方案

    01O101O0: 我靠还真是这样,换个接口还真的挂载上了

  • kali 使用u盘安装提示“无法挂在光盘..”的解决方案

    weixin_47671900: 我好像知道原因了,安装的时候应该准备两个u盘,挂载,意思就是让你安装在另一个U盘里,而不是直接安装在你的电脑硬盘上,如果没有U盘,你可以在安装的时候让你挂载的时候,把你的安装U盘拔下来重新插另一个口,如何就可以了

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • spring 多环境配置
  • linux kill所有Java进程
  • 以太坊私有链环境搭建
2018年2篇
2017年24篇
2016年141篇
2015年104篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

4617作文网免费起名字周易根据个人姓名给公司起名字起名昌钢材贸易公司起名字大全女孩子起名带钰的名澄女孩起名周易幼儿起名周公解梦大全查询梦见被狗咬了周易视频讲解儿童起名周易熏酱为主的饭店起名从诗经中给女孩起名字网名起什么好听女孩公司起名 好的字网上算寿命准吗玩具公司起名字大全股票周五交易时间周易起企业名字好听的陈姓女宝宝起名字周末能够交易股票吗东北特产店起什么名那个起名程序靠谱九画的字有哪些起名字用茅姓起名周易名字推荐怀孕几周容易停胎起名如何查五行冯氏起人名大全起防水公司名字2018年新生宝宝起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男子给前妻转账 现任妻子起诉要回网友建议重庆地铁不准乘客携带菜筐月嫂回应掌掴婴儿是在赶虫子重庆警方辟谣“男子杀人焚尸”国产伟哥去年销售近13亿新的一天从800个哈欠开始男孩疑遭霸凌 家长讨说法被踢出群高中生被打伤下体休学 邯郸通报男子持台球杆殴打2名女店员被抓19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警两大学生合买彩票中奖一人不认账德国打算提及普京时仅用姓名山西省委原副书记商黎光被逮捕武汉大学樱花即将进入盛花期今日春分张家界的山上“长”满了韩国人?特朗普谈“凯特王妃P图照”王树国3次鞠躬告别西交大师生白宫:哈马斯三号人物被杀代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了房客欠租失踪 房东直发愁倪萍分享减重40斤方法“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火手机成瘾是影响睡眠质量重要因素考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼网友洛杉矶偶遇贾玲呼北高速交通事故已致14人死亡西双版纳热带植物园回应蜉蝣大爆发男孩8年未见母亲被告知被遗忘张立群任西安交通大学校长恒大被罚41.75亿到底怎么缴沈阳一轿车冲入人行道致3死2伤奥运男篮美国塞尔维亚同组周杰伦一审败诉网易国标起草人:淀粉肠是低配版火腿肠外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万杨倩无缘巴黎奥运男子被猫抓伤后确诊“猫抓病”春分“立蛋”成功率更高?记者:伊万改变了国足氛围奥巴马现身唐宁街 黑色着装引猜测

4617作文网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化