springcloud熟记点

绕过网关缓存:地址前加/zuul
默认情况下,所有的请求都经过Zuul网关的代理.

Zuul底层就是一个servlet,通常情况下zuul会将请求交给Spring Dispatch去处理,SpringMVC去控制路由。这种情况下,zuul就会去缓存这个请求。如果有直接通过zuul但是不需要缓存:比如大文件的上传服务,这时候就应该跳过SpringDispatch,在地址前加一个 /zuul.

普通请求并不会有什么影响,但是对于图片上传(文件传输),如果也经过Zuul网关的代理,文件就会经过多次网路传输,造成不必要的网络负担。在高并发时,可能导致网络阻塞,Zuul网关不可用,这样我们的整个系统就瘫痪了。

所以,我们上传文件的请求需要绕过请求的缓存,直接通过路由到达目标微服务。

解决:

server {
    listen       80;
    server_name  api.leyou.com;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Host $host;	   

	// 配置
	location /api/upload {			
		rewrite "^/(.*)$" /zuul/$1; 
	}
	
    location / {
		proxy_pass http://192.168.1.109:10010;
		proxy_connect_timeout 600;
		proxy_read_timeout 600;
    }
}

忽略路由匹配的路径前缀

Zuul的路由功能中,会忽略路由匹配的路径前缀,不过我们的Controller中有 /upload 路径,此时如果通过网关访问,我们的地址应该是http://api.leyou.com/api/upload/upload/image, 这是因为路由匹配的前缀 /upload 在请求转发时会被自动忽略。

这样地址看起来非常臃肿,因此我们可以禁止忽略路由前缀,
在网关中application.yml中配置:

在这里插入图片描述

 这样,路由前缀也会作为地址一部分转发到微服务,那么我们就可以http://api.leyou.com/api/upload/image 正常访问了

注入的几种方式
 

1.@Value

2.
@ConfigurationProperties(prefix="jdbc")//读取主配置文件
@Data
public class JdbcProperties {
	//所有属性名要和配置文件一样
	private String username;
	private String password;
}
@Configuration //指定为配置类
//@PropertySource("classpath:db.properties") //读取配置文件
@EnableConfigurationProperties(JdbcProperties.class)//使用JdbcProperties配置类
public class JdbcConfig {
	@Bean  //记得形参要写JdbcProperties,spring会自动传入进来
	public DataSource getDataSource(JdbcProperties prop){
		DruidDataSource dataSource = new DruidDataSource();
		dataSource.setDriverClassName(prop.getDriverClass());
		dataSource.setUrl(prop.getUrl());
		dataSource.setUsername(prop.getUsername());
		dataSource.setPassword(prop.getPassword());
		return dataSource;
	}
}

OpenFeign使用记录

ly-item-interface项目中存在api接口,方法上为注解请求的servlet地址

search-servcie项目中导入ly-item-interface项目

 这样也相当于在各api的接口给上面使用的@FeignClient注解

 这样只需要在api上边写上注解请求路径,client这边只需要继承对应的接口加个FeignClient注解即可

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值