SpringCloud核心组件依赖及相关配置文件解析
1.Eureka
Spring-Cloud Euraka是Spring Cloud集合中一个组件,它是对Euraka的集成,用于服务注册和发现。Eureka是Netflix中的一个开源框架,Eureka模块来实现服务治理。在传统的RPC远程调用中,管理每个服务于服务之间依赖关系复杂,管理复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。
核心依赖包
<!--eureka-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
相关其他依赖
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
核心配置文件
server:
port: 7001 #端口号
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#设置与eureka server交互的地址和注册服务都需要依赖这个地址
defaultZone: http://eureka7001.com:7001/eureka/ #集群就是指向其他的eureka
2.OpenFegin
核心依赖
<!--openfeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
核心配置文件
设置Feign客户端超时时间
#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的实际
ReadTimeout: 5000
#指的是建立连接后从服务器读取到可用资源所用的时间
ConnectTimeout: 5000
Feign日志设置
Feign提供了日志打印功能,通过yml配置文件来调整日志级别,可以通过日志了解Http请求的细节,实际上这就是对Feign接口的调用情况进行监控和输出。
NONE:默认级别,不显示任何日志
BASIC:仅记录请求方法、URL、相应状态码和执行时间
HEADERS:除了BASIC中定义的信息之外,还有请求和响应的头信息
FULL:除了HEADERS中定义的信息之外,还有请求和响应的征文及元数据
1.创建Config类
@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
2.配置yml文件
logging:
level:
#feign日志以什么级别监控那个接口
com.my.springcloud.service.PaymentFeignService: debug
3.springcloud-Gateway
在为微服务架构提供一种简单而有效的统一的API路由管理方式,例如:安全,监控/埋点,和限流。
Route(路由):这是网关的基本构建块,它由一个ID,一个URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。
Predicate(断言):输入类类是一个ServerWebExchange。我们可以使用它来匹配来自HTTP请求的任何内容,例如headers。如果请求与断言相匹配则进行路由。
客户端向Spring Cloud Gateway发出请求,然后在Gateway Hander Mapping中找到与请求相匹配的路由,将其发送到Gateway Web Handler。
Handler在通过指定的过滤器链来将请求发送到我们实际的服务业务逻辑,然后返回。过滤器之间用虚线分是因为过滤器可能会在发送代理请求之间(“pre”)或之后(“post”)执行业务逻辑
Filter(过滤器):Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者后对请求进行修改。
核心依赖
<!--gateway-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
配置文件
server:
port: 9527
spring:
application:
name: cloud-gateway
eureka:
instance:
hostname: cloud-gateway-service
client: #服务提供者provider注册进eureka服务列表内
service-url:
register-with-eureka: true
fetch-registry: true
defaultZone: http://eureka7001.com:7001/eureka
4.Ribbon(负载均衡)
核心依赖
<!-- SpringBoot1.5.2.RELEASE 依赖ribbon -->
<dependency>
<groupId>org.springframework.cloud</groupId&g