首页 » 2018年11月

spring cloud gateway中有gateway filter 和global filter,前者是针对路由规则配置到某个路由规则上,后者是全局的。定义一个全局filter的方法如下

@Component
public class GlobalFilterConfig {
    @Bean
    @Order(-1)
    public GlobalFilter a() {
        return (exchange, chain) -> {
            System.out.print("first pre filter");
            return chain.filter(exchange).then(Mono.fromRunnable(() -> {
                System.out.print("third post filter");
            }));
        };
    }
}

最近碰到Eureka一个问题,就是多台Eureka部署集群时,会都出现在unavailable-replicas 下面。


unavailable-replicas    http://node2.thor.eureka:3333/eureka/,http://node1.thor.eureka:3333/eureka/

发现原因时这个,发布时要指定hostName

myHostName: node1.thor.eureka
eureka:
  instance:
    hostname: ${myHostName}

然后发布时指定


java -jar eureka.jar --myHostName=node2.thor.eureka

注意,下面两个选项要打开

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true

对css 设置了cache control和expires,但是打开chrome 的devtools ---->networks ,css request header出现如下:

cache-control: no-cache

这个是因为chrome F12打开devtools 的选项勾上了,在devtools 界面按F1 ,勾掉下面这个选项

Disable cache (while DevTools is open)

问题解决

发现站点得css过其时间比较短,然后打开nginx看了下,如下代码

  location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

但是用chrome打开network,会发现:

Cache-Control: max-age=43200

Expires: Thu, 01 Nov 2018 12:59:27 GMT

cache control 会覆盖expires属性的,而且cache control受支持的浏览器较广,所以加入如下代码


add_header    Cache-Control  max-age=604800;

然后reload nginx配置


/usr/local/nginx/sbin/nginx -s reload 

今天碰到个错误 “The POM for … is missing, no dependency information available” even though it exists in Maven Repository ,这个只是找不到pom,关键连jar包依赖都找不到,关键是这个jar包


  <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
        </dependency>

maven获取依赖得时候,优先读取本地,本地没有读远程,原因是没有指定公司得私有远程仓库


 <repositories>
        <repository>
            <id>snapshots</id>
            <name>snapshots</name>
            <url>http://nexus.xxx.com:8081/nexus/content/repositories/snapshots/</url>
        </repository>
    </repositories>