1、Spring Boot 特点

是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

容易上手,提升开发效率;
开箱即用,远离繁琐的配置;
避免大量的 Maven 导入和各种版本冲突。
提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。
没有代码生成,也不需要XML配置。

 

2、SpringBoot 常用注解

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
  1.@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
  2.@EnableAutoConfiguration:打开自动配置的功能,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
  3.@ComponentScan:Spring组件扫描。
@ConditionalOnBean // 当给定的在bean存在时,则实例化当前Bean
@ConditionalOnMissingBean // 当给定的在bean不存在时,则实例化当前Bean
@ConditionalOnClass // 当给定的类名在类路径上存在,则实例化当前Bean
@ConditionalOnMissingClass // 当给定的类名在类路径上不存在,则实例化当前Bean

 

3、什么是Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

 

4、Eureka服务注册与发现

 

springcloud多个服务怎么实现注解保存操作日志 springboot和springcloud常用注解_服务器

 

 

springcloud多个服务怎么实现注解保存操作日志 springboot和springcloud常用注解_Cloud_02

 

 

springcloud多个服务怎么实现注解保存操作日志 springboot和springcloud常用注解_服务器_03

 

 

 

5、关于Eureka 的自我保护机制与剔除服务机制:

剔除服务机制:当服务提供方(客户端)注册到Eureka后,每30S将会向Eureka发起一次请求表示自己有心跳

服务器正常,当90S都没有发请求时候Eureka会认为服务器宕机了,则会在60S后统一清除所有宕机的服务器。

 

自我保护机制:当服务没有按每30S按时发请求时,Eureka将会统计15分钟内心跳的请求成功概率,如果低于85%

则可能服务提供方有延迟问题或者网络故障,这样会将服务提供方保护起来不会剔除。

 

6、Spring Cloud 各模块简介?

1、Spring Cloud Config
集中配置管理工具,分布式系统中统一的外部配置管理,默认使用Git来存储配置,可以支持客户端配置的刷新及加密、解密操作。
类似功能有 携程的 apollo,阿里的 nacos。

2、Spring Cloud Netflix

Netflix OSS 开源组件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心组件。

Eureka:服务治理组件,包括服务端的注册中心和客户端的服务发现机制;
Ribbon:负载均衡的服务调用组件,具有多种负载均衡调用策略;
Hystrix:服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力;
Feign:基于Ribbon和Hystrix的声明式服务调用组件;
Zuul:API网关组件,对请求提供路由及过滤功能。

3、Spring Cloud Bus
用于传播集群状态变化的消息总线,使用轻量级消息代理链接分布式系统中的节点,可以用来动态刷新集群中的服务配置。可以通过 http://localhost:8081/actuator/bus-refresh(2.1.6版本) 手动方式刷新环境配置。

4、Spring Cloud Consul
基于Hashicorp Consul的实现分布式系统的服务发现与配置,Consul基于go语言开发独立应用。 类似有 eureka、zookeeper。

5、Spring Cloud Sleuth
Spring Cloud应用程序的分布式请求链路跟踪,支持使用Zipkin、HTrace和基于日志(例如ELK)的跟踪。

6、Spring Cloud Gateway
API网关组件,对请求提供路由及过滤功能。第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。

7、Spring Cloud OpenFeign
基于Ribbon和Hystrix的声明式服务调用组件,可以动态创建基于Spring MVC注解的接口实现用于服务调用。

 

 

7、常用链路追踪

颗粒度:Skywalking方法级(展示的更详细),方法中所有的调用都展示出来了,如数据库调用、redis调用,第三方网络调用,而Zipkin只能展示接口级
UI界面:Skywalking完胜,国产开源,更适合国人眼球
代码侵入性:Skywalking无代码侵入,使用字节码增强技术,在启动服务时使用 javaagent 指向skywalking服务即可收集调用链span信息
Zipkin:简单、轻量级

springcloud多个服务怎么实现注解保存操作日志 springboot和springcloud常用注解_服务器_04