记录Spring Cloud使用中的问题及疑惑

1.RestControllerEndpoint 是REST风格的Controller,使用了actuator之后,默认加到/actuator/之后。 例如RestControllerEndpoint(id="gateway"),访问路径为/actuator/gateway. 只有management.endpoints.web.exposure.include:"*"中包含了此uri之后,才能建立映射。

2.spring gateway配置的相关属性 spring: cloud: gateway: routes: - id: uri: order: predicates: - name: args: filters: - name: args: - id: uri: order: predicates: - Path=/foo/{segment} - Method=GET - Query=foo, ba. - RemoteAddr=192.168.1.1/24 filters: - AddRequestHeader=X-Request-Foo, Bar - AddRequestParameter=foo, bar - AddResponseHeader=X-Response-Foo, Bar - Hystrix=myCommandName - RewritePath=/consumingserviceendpoint, /backingserviceendpoint - PrefixPath=/mypath - PreserveHostHeader - name: RequestRateLimiter args: redis-rate-limiter.replenishRate: 10 redis-rate-limiter.burstCapacity: 20 defaultFilters: streamingMediaTypes: globalcors: {

}
httpclient:
  connectTimeout: 30000
  responseTimeout:
  pool:
    type: ELASTIC
    name: proxy
    maxConnections: 10
    acquireTimeout: 10000
  proxy:
    host:
    port:
    username:
    password:
    nonProxyHostsPattern:
  ssl:
    useInsecureTrustManager: false
    trustedX509Certificates:
discovery:
  locator:
    enabled: false
    routeIdPrefix:
    includeExpression: true
    urlExpression:
    lowerCaseServiceId:
    predicates:
    filters:

3.docker中安装mysql docker pull mysql

docker run --name first-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql --lower_case_table_names=1
上面指令的含义:
run            运行一个容器
--name         后面是这个镜像的名称
-p 3306:3306   表示在这个容器中使用3306端口(第二个)映射到本机的端口号也为3306(第一个)
-d             表示使用守护进程运行,即服务挂在后台
--lower_case_table_names   让MySQL忽略表的大小写,在Mac系统中默认是按照系统的大小写匹配的,会造成表名大小写不同时,找不到表。
下载客户端程序Sequel Pro http://www.sequelpro.com/
配置客户端之后,提示访问不了。
docker exec -it first-mysql bash
  -t 让docker分配一个伪终端,并绑定到容器的标准输入上;
  -i 让容器的标准输入保持打开;
  first-mysql 是容器的名字。
打开之后,使用mysql的命令开启远程访问的授权;
  mysql -u root -p
use mysql;
select host,user from user;
需要增加一个host为%的记录。
增加好之后,访问时提示
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded:dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
通过指令:
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
例如:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
执行之后,可以通过Sequel Pro访问到MySQL数据库。