Spring Boot、Spring Cloud随手记

1、项目中没有手动的去配置 Tomcat 服务器,是因为 Spring Boot 内置了 Tomcat

2、Spring Boot 提供了热部署的方式,当发现任何类发生了改变,就会通过 JVM 类加载的方式,加载最新的类到虚拟机中,这样就不需要重新启动也能看到修改后的效果了。
我们往 pom.xml 中添加一个依赖就可以了:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>

3、@SpringBootApplication:是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、@EnableAutoConfiguration、@ComponentScan。
1)、@Configuration:一般被用来初始化配置,可理解为用spring的时候xml里面的<beans>标签。
2)、@EnableAutoConfiguration:让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置。
3)、@ComponentScan:@ComponentScan(basePackageClasses=要扫描类.class所在位置的包)-意思是要扫描哪个类所在的包

4、@RestController:该注解相当于@ResponseBody、@Controller合在一起的作用。
1)、如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面或者html页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return里的内容。
2)、如果需要返回到指定页面,则需要用@Controller配合视图解析器InternalResourceViewResolver才行。
3)、如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

5、@EnableDiscoveryClient:注解是基于spring-cloud-commons依赖,并且在classpath中实现。
6、@EnableEurekaClient:注解是基于spring-cloud-netflix依赖,注册中心是eureka只能为eureka使用。
注:如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。如果你的classpath中添加了eureka,则它们的作用是一样的。

Spring Cloud 核心组件

Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构:
Eureka:Eureka是Netflix开源的一款提供服务注册和发现的产品,负责服务的注册与发现,很好将各服务连接起来,它提供了完整的Service Registry和Service Discovery实现。就是一个服务中心,将所有的可以提供的服务都注册到它这里来管理,其它各调用者需要的时候去注册中心获取,然后再进行调用,避免了服务之间的直接调用,方便后续的水平扩展、故障转移等。使用Eureka就自动具有了注册中心、负载均衡、故障转移的功能。

Feign:是从Netflix中分离出来的轻量级项目,能够在类接口上添加注释,成为一个REST API 客户端。是一种声明式、模板化的HTTP客户端,主要目标是将Java Http 客户端变得简单。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。

Zuul:其主要实现反向代理,负载均衡还有权限控制、过滤等功能。这个负载均衡是属于客户端的负载均衡。在这我也就简要的说下客户端负载均衡。客户端负载均衡:基于客户端的负载均衡,简单的说就是在客户端程序里面,自己设定一个调度算法,在向服务器发起请求的时候,先执行调度算法计算出向哪台服务器发起请求,然后再发起请求给服务器。

Spring Cloud Config:提供了在分布式系统的外部配置的客户端支持。通过配置服务(Config Server)来为所有的环境和应用提供外部配置的集中管理。这些概念都通过Spring的Environment和PropertySource来抽象,所以它可以适用于各类Spring应用,同时支持任何语言的任何应用。它也能为你支持对应用开发环境、测试环境、生产环境的配置、切换、迁移。默认的配置实现通过git实现,同时也支持其他的扩展(比如svn等)。

Ribbon:是Netflix发布的云中间层服务开源项目,主要功能是提供客户端负载均衡算法。Ribbon客户端组件提供一系列完善的配置项,如,连接超时,重试等。简单的说,Ribbon是一个客户端负载均衡器,我们可以在配置文件中列出load Balancer后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器,我们也很容易使用Ribbon实现自定义的负载均衡算法。

Hystrix:它会在某个服务连续调用N次不响应的情况下,立即通知调用端调用失败,避免调用端持续等待而影响了整体服务。Hystrix间隔时间会再次检查此服务,如果服务恢复将继续提供服务。
熔断的监控现在有两款工具:Hystrix-dashboard和Turbine。Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。Turbine能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上。Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示。

Spring Cloud Bus:它是轻量级的通讯组件,其中一个核心思想是通过分布式的启动器对Spring Boot应用进行扩展,也可以用来建立一个或多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值