0.Eureka--注册中心
自我保护机制:
1.触发条件:
Eureka服务端会检查最近15分钟内所有实例正常心跳占比,如果低于85%就会触发自我保护机制。
2.自我保护机制启动后:
失效服务不会被剔除,而是会一直等待服务再次恢复正常。
1.Ribbon--负载均衡
Eureka中已经集成了Ribbon,所以不用再导入ribbon依赖。
使用:
1.在RestTemplate组件方法上使用@LoadBalanced
2.在访问服务方法时,使用服务名替代原始的ip+端口号
2.Hystrix--熔断器/服务保护框架,客户端熔断机制组件
提供处理服务雪崩的方式:服务降级、线程池隔离(保证其他方法正常访问)、服务熔断
服务降级:
1.导入依赖
2.启动类上使用@EnableCircuitBreaker开启熔断机制
3.方法上的服务降级注解:
(1)请求方法上使用@HystrixCommand(fallBackMethod="")
(2)降级方法需与原方法返回值类型和参数列表都一致。
默认服务降级注解:
(1)controller类上加@DefaultProperties(defaultFallback = "")
(2)方法上加@HystrixCommand注解
(3)降级方法只需要与原方法返回值类型一致即可。
*hystrix有默认的访问超时,默认1秒,超时也会进行服务降级(配置的话)或访问失败。
服务熔断:
熔断器状态:
打开:所有请求都不能访问。默认当大于等于20次访问中,失败请求比例达到阈值50%时,会自动打开熔断器。
半开:默认熔断器打开5秒后进入半开状态,熔断器会释放部分请求通过,若这些请求都是健康的,熔断器关闭;
否则继续进入熔断器打开。
关闭:所有请求都能访问。
触发熔断器的方法必须使用@HystrixCommand注解
3.Feign--远程调用
1.入门使用:
1.导入依赖
2.启动类上添加@EnableFeignClients
3.创建接口用注解@FeignClient(value = "user-server"),注明调用的远程服务
4.在接口中书写要调用的远程方法包括注解(直接从远程服务复制即可),注意父路径加上。
5.使用时,直接在Controller中注入接口,并在方法中调用接口方法即可。
2.Feign已经集成了Ribbon依赖,进行了自动配置。
3.Hystrix支持:
*Feign默认也集成了Hystrix,使用方式与原生Hystrix不同:
1.自定义一个熔断处理类,用@Component注解。
2.熔断处理类要实现之前创建的接口(@FeignClient注解标注),并实现其方法(即为降级方法)
3.在@FeignClient注解中配置降级处理方法:@FeignClient(fallback = UserFallBack.class)
4.配置开启Feign的熔断功能。
*feign的熔断功能和hystrix原生熔断器功能区别:
1.使用方式不同;
2.feign熔断功能只能在服务提供端发生异常时才能进行服务降级,而hystrix可以在服务提供端和服务调用端发生
异常时进行服务降级。
4.请求、响应压缩:
- 使用GZip压缩,减少通信过程中的性能损耗。
- 在配置文件中配置开启压缩、触发压缩下限等。
5.指定feign日志级别:
1.需要将记录包在配置文件中设置日志级别,
2.自定义类配置类FeignConfiguration,并将Logger.Level注入。
3.在接口上的@FeignClient注解中配置配置类,configuration = {FeignConfiguration.class}
4.Zuul--网关
1.入门路由使用:
1.新建zuul服务项目,导入依赖、配置端口、配置服务名
2.启动类上使用@EnableZuulProxy注解开启zuul网关代理
3.配置路由规则
2.面向服务的路由使用:
1.在入门项目基础上,导入netflix的eureka-client依赖
2.添加eureka配置,获取服务信息
3.开启服务发现注解@EnableDiscoveryClient或@EnableEurekaClient
4.配置路由规则
3.默认路由规则:
*当我们不手动配置路由规则时,每个服务对应的路由id就是该服务的服务名!
4.过滤器:
1.自定义过滤器:
1.自定义过滤器类继承抽象类ZuulFilter
2.重写ZuulFilter方法
2.过滤器类型:
1.pre:在路由之前进行执行
2.route:在路由期间进行调用
3.error:在处理请求时出错调用
4.post:在route和error过滤器之后调用
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
springCloud_demo.zip (91个子文件)
springCloud_demo
pom.xml 3KB
zuul-server
pom.xml 1KB
target
classes
application.yml 852B
cn
yh
filter
ZuulFilter.class 3KB
ZuulApplication.class 842B
generated-sources
annotations
src
test
java
main
resources
application.yml 852B
java
cn
yh
filter
ZuulFilter.java 3KB
ZuulApplication.java 511B
eureka-server2
pom.xml 877B
target
classes
application.yml 557B
cn
yh
EurekaApplication2.class 795B
generated-sources
annotations
src
test
java
main
resources
application.yml 557B
java
cn
yh
EurekaApplication2.java 451B
随做笔记.txt 5KB
consumer-server
pom.xml 1KB
target
classes
application.yml 1KB
cn
yh
config
FeignConfiguration.class 687B
ConsumerApplication.class 1KB
pojo
Users.class 4KB
feign
UserAPI.class 923B
UserFallBack.class 807B
web
ConsumerController2.class 2KB
ConsumerController.class 2KB
ConsumerController3.class 2KB
generated-sources
annotations
src
test
java
main
resources
application.yml 1KB
java
cn
yh
config
FeignConfiguration.java 370B
ConsumerApplication.java 1KB
pojo
Users.java 347B
feign
UserFallBack.java 424B
UserAPI.java 913B
web
ConsumerController3.java 1KB
ConsumerController2.java 933B
ConsumerController.java 3KB
.idea
dataSources.xml 547B
smartfox_info.xml 193B
misc.xml 842B
jarRepositories.xml 864B
encodings.xml 787B
compiler.xml 1KB
workspace.xml 10KB
.gitignore 184B
dataSources.local.xml 1007B
inspectionProfiles
Project_Default.xml 9KB
profiles_settings.xml 128B
dataSources
ed3817c7-e716-4c0c-93a1-faa002770907.xml 51KB
ed3817c7-e716-4c0c-93a1-faa002770907
storage_v2
_src_
schema
performance_schema.kIw0nw.meta 76B
information_schema.FNRwLQ.meta 76B
sys.zb4BAA.meta 61B
mysql.osA4Bg.meta 63B
user-server
pom.xml 1KB
target
classes
application.yml 896B
cn
yh
dao
UserMapper.class 334B
pojo
Users.class 4KB
web
UserController.class 3KB
UserController2.class 2KB
UserServerApplication.class 812B
service
UserService.class 221B
impl
UserServiceImpl.class 749B
generated-sources
annotations
src
test
java
main
resources
application.yml 896B
java
cn
yh
dao
UserMapper.java 224B
UserServerApplication.java 418B
pojo
Users.java 347B
web
UserController.java 1KB
UserController2.java 1KB
service
UserService.java 149B
impl
UserServiceImpl.java 488B
eureka-server
pom.xml 876B
target
classes
application.yml 671B
cn
yh
EurekaApplication.class 792B
generated-sources
annotations
src
test
java
main
resources
application.yml 671B
java
cn
yh
EurekaApplication.java 449B
eureka-server3
pom.xml 877B
target
classes
application.yml 557B
cn
yh
EurekaApplication3.class 795B
generated-sources
annotations
src
test
java
main
resources
application.yml 557B
java
cn
yh
EurekaApplication3.java 451B
user-server2
pom.xml 1KB
target
classes
application.yml 620B
cn
yh
dao
UserMapper.class 334B
pojo
Users.class 4KB
UserServerApplication2.class 816B
web
UserController.class 2KB
service
UserService.class 221B
impl
UserServiceImpl.class 749B
generated-sources
annotations
src
test
java
main
resources
application.yml 620B
java
cn
yh
dao
UserMapper.java 224B
UserServerApplication2.java 421B
pojo
Users.java 347B
web
UserController.java 1KB
service
UserService.java 149B
impl
UserServiceImpl.java 488B
共 91 条
- 1
guogaoju
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0