目录
关键词:
Spring SpringBoot SpringCloud 微服务框架 微服务治理框架 快速开发
摘 要:
SpringBoot特性讲解,简单项目构建,SpringBoot的应用监控。微服务治理框架Spring Cloud简单讲解
案例描述与分析
Spring Boot推出以来得到广大Java开发者的追捧和个大厂商的支持。对于之前基于Spring架构的Java EE项目能够很快速的切换到Spring Boot上来。
Spring Boot介绍
Spring核心功能
- 独立运行的Spring项目
Spring Boot 可以以jar包的形式独立运行,运行一个Spring Boot项目只需要通过java –jar **.jar来运行
- 内嵌Servlet容器
Spring Boot可选择内嵌的Tomcat、Jetty,这样我们无需以war包的形式部署项目。
- 提供starter简化Maven配置
Spring Boot提供了一系列的start pom 来简化Maven的依赖加载。
- 自动配置Spring
Spring Boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大的减少我们要使用的配置。
- 准生产的应用监控
Spring Boot提供基于http、ssh、telnet对运行时的项目进行监控。
- 无代码生成和XML配置
Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。Spring Boot不需要任何XML配置即可实现Spring的所有配置。
Spring Boot的优缺点
- 优点
- 快速构建项目;
- 对主流开发框架的无配置集成;
- 项目可以独立运行,无需外部依赖Servlet容器;
- 提供运行时的应用监控;
- 极大地提高了开发、部署效率;
- 与云计算的天然集成;
- 缺点
- 书籍文档较少
快速搭建
- 环境介绍
IDE:IntelliJ IDEA,Spring Boot版本
- 搭建步骤
1)新建Spring Initializr项目,如图1
图1
2)填写项目信息,如图2
图2
3)选择项目使用的技术,如图3
图3
4)创建完成,项目结构及依赖树如图4
图4
5)运行
IntelliJ会自动识别带有@SpringBootApplication注解的主类,点击Run直接运行,如图5
图5
运行结果如图6
图6
应用监控
对应用运行时的实时状态监控对于程序运行时候的问题定位很重要,Spring Boot提供了运行时的应用监控和管理功能。我们可以通过http、JMX、SSH协议来进行操作。审计、健康及指标信息将会自动得到。
Spring Boot提供了监控和管理端点,如表1
端点名
描述
actuator
所有EndPoint的列表,需要加入Spring Hateoas的支持
autoconfig
当前应用的所有自动配置
beans
当前应用的所有Beans的信息
configprops
当前应用中的所有配置信息
dump
显示当前应用线程状态信息
env
显示当前应用的环境信息
health
显示当前应用的健康状况
info
显示当前应用信息
metrics
显示当前应用的各项指标信息
mappings
显示所有的@RequestMapping映射的路径
shutdown
关闭当前应用(默认关闭)
trace
显示追踪信息(默认最新的http请求)
表1
- http方式
在pom.xml中加入下面依赖即可:
- 测试端点
这里我以实际项目做演示
- actuator
访问http://localhost:8088/actuator/,结果如图7
图7
- beans
访问地址:http://localhost:8088/actuator/beans,结果如图8
图8
- mappings
访问地址:http://localhost:8088/actuator/mappings,结果如图9
图9
微服务、原生云应用
微服务是近两年非常火的概念,它的含义是:使用定义好的边界的小的独立组件来做好一件事情。微服务是相对于传统的单块式架构而言的。
单块式架构是一份代码,部署和伸缩是基于单个单元进行的。它的优点是易于部署,但是面临着可用性低、可伸缩性差、集中发布的生命周期以及违反单一功能原则。微服务的出现解决了这个问题,它以单个独立的服务来做一个功能,且要做好这个功能。但使用微服务不可避免地将功能按照边界拆分为单个服务,体现出分布式的特征,这时每个微服务之间的通信将是我们要解决的问题。
目前业界公认的微服务治理架构包括Spring Cloud和阿里巴巴的Dubbo,针对项目背景、社区活跃度、架构完整度来说Spring Cloud还是优于Dubbo。
Spring Cloud基于Spring Boot,为我们提供了配置管理、服务发现、断路器、代理服务等我们在做分布式开发时常用问题的解决方案。
基于Spring Cloud开发的程序特别适合在Docker或者其他专业的PaaS部署,所以又称作原生云应用。
- 配置服务
Spring Cloud提供了Config Server,它有在分布式系统开发中外部配置的功能。通过Config Server,我们可以集中存储所有应用的配置文件。
Spring Cloud提供了注解@EnableConfigServer来启用配置服务
- 服务发现
Spring Cloud通过Netflix OSS的Eureka来实现服务发现,服务发现的主要目的是为了让每个服务之间可以通信。Eureka Server为微服务注册中心。
- 路由网关
路由网关的主要目的是为了让所有的微服务对外只有一个接口,我们只需访问一个网关地址,即可由网关将我们的请求代理到不同的服务中。
- 负载均衡
Spring Cloud提供了Ribbon和Feign作为客户端的负载均衡。在Spring Cloud下,使用Ribbon直接注入一个RestTemplate对象即可,此RestTemplate已做好负载均衡问的配置;而使用Feign只需定义个注解。
- 断路器
断路器主要是为了解决当某个方法调用失败的时候,调用后备方法来替代失败的方法,以达到容错、阻止级联错误等功能。代表性的就是雪崩问题。
总结
Spring Boot作为一个优秀的微服务框架,值得学习和在项目中应用。
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容