SpringCloud

eureka是netflix开发的服务发现框架,包含两个组件Eureka Server和Eureka Client
各节点启动后在eureka service中进行注册
eureka client内置,使用轮询负载均衡器,启动后,定期向service发送心跳(默认周期为30秒),固定时间内没有接到心跳,会将该节点移除。

eureka服务端开发:
1.添加包:spring-cloud-starter-netflix-eureka-server
2.配置文件:
在这里插入图片描述
3.启动类注解@EnableEurekaServer

服务注册
1.导包 spring-cloud-starter-netflix-eureka-client
2.添加配置文件
在这里插入图片描述
将该服务注册到6868eureka服务上
3.启动类添加注解@EnableEurekaClient

eureka高可用:本质上就是有多个注册中心

eureka与zookeeper区别:

feign:简化的javaHttp客户端开发工具,
服务A调用服务B,B不需要改动
服务A:
1.导包spring-cloud-starter-openfeign
2.添加注解(在启动类上面添加):@EnableDiscoveryClient使之能够成为可以找到的客户端
@EnableFeignClients
3.创建接口:
在这里插入图片描述
@FeignClient():用于指定从哪个服务中调用功能,注意:名称和调用服务保持一致,并且不能有下划线,路径也是要调用的路径.
4.哪里要用到,直接进行注入即可

熔断器(Hystrix)

:服务之间调用,其中一个服务出问题,调用者也会报错,雪崩效应(同步操作下)
feign本身支持Hystrix,不需要额外引入依赖

  1. 配置:feign:hystrix:enabled:true
  2. 建立一个熔断实现类
  3. 修改注解:@FeignClient(value=“tensquare-base”.fallback=LabelClientImpl.class),当出错时自动回滚到该实现类上面。

网关:Zuul3,
所有客户都经过网关去访问微服务,由网关向指定微服务跳转。
优点:省去很多端口的麻烦

网关搭建:
1.导包:spring-cloud-starter-netflix-zuul
2.配置文件:
zuul:
routes:
tensquare‐gathering: #活动
path: /gathering/** #配置请求URL的请求规则
serviceId: tensquare‐gathering #指定Eureka注册中心中的服务id
3.启动类加@EnableZuulProxy(使之成为网关代理)

Zuul过滤器
1.创建一个过滤器类继承ZuulFilter,实现里面的方法
filterType:过滤类型,pre,post
filterOrder:优先级,数字越大,优先级越低
shouldFilter:是否执行该过滤器
run:过滤是执行的操作,setsendnullResponse(false):表示不放行,其他均放行
注:请求头信息在过滤器中容易丢失,处理先拿到头,然后再转发,可以直接在过滤器中进行验证

集中配置组件 spring cloud config 有server和client
考虑到修改配置文件后,微服务不需要重启,所以就涉及到消息中间件,一起来说
服务端配置:
1.导包:spring-cloud-config-server,消息总件包:spring-cloud-bus,spring-cloud-stream-binder-rabbit
2.在启动类添加@EnableConfigServer
3.编写配置文件
在这里插入图片描述
注:uri是码云上面的配置文件地址,
在这里插入图片描述

客户端配置(就在每一个微服务上进行配置):
1.导包:spring-cloud-starter-config,消息总件spring-cloud-bus,spring-cloud-stream-binder-rabbit,spring-boot-starter-actuator
2.添加配置文件bootstrap.yml,删除application.yml
在这里插入图片描述
该配置文件意思是,在启动之前去信息配置服务端拿配置文件(服务端去云服务器去拿),然后启动

3.添加一个启动类,监听配置文件修改信息,加入@RefreshScope注解,自动刷新配置

gateway网关

功能1.路由 2.过滤器,就是一个过滤器

具体操作;
1创建springBoot工程:启动类上添加@EnableZuulProxy
2.路由配置

zuul:
	routes:
		manage‐course: #路由名称,名称任意,保持所有路由名称唯一
		path: /course/**
		serviceId: xc‐service‐manage‐course #指定服务id,从Eureka中找到服务的ip和端口
		#url: http://localhost:31200 #也可指定url,没有Eureka 找到其具体地址
		strip‐prefix: false #true:代理转发时去掉前缀,false:代理转发时不去掉前缀
		sensitiveHeaders: #默认zuul会屏蔽cookie,cookie不会传到下游服务,这里设置为空则取消默认的黑名
单,如果设置了具体的头信息则不会传到下游服务
 		#ignoredHeaders: Authorization

3.过滤器
定义过滤器实现ZuulFilter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值