0%

谷粒学院踩坑

踩坑

配置一样,配置中心发布的配置无法正确更新读取?

检查项目版本

在common项目中的pom.xml中,version改成2.1.0..1.0.RELEASE

1
2
3
4
5
6
7
8
9
10
11
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

在其他项目中的pom.xml文件,spring-cloud.version的值,也就是springcloud的版本应改为Greenwich.SR3

1
2
3
4
<properties>
<!-- 其他变量... -->
    <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
</properties>

控制台输出以下就成功解决

1
Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='gulimall-coupon.properties'}]}

千万注意application.yml中的缩进

坑死了,不小心多按了一个tab,检查了一个多小时,记录一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
spring:
cloud:
gateway:
routes:
- id: query_route # 规则id
uri: https://baidu.com # 目的地址
predicates:
- Query=url, baidu # 断言匹配,满足就跳转到目的地址
- id: qq_test
uri: https://qq.com
predicates:
- Query=url, qq
- id: admin_route
uri: lb://renren-fast
predicates:
- Path=/api/**
filters:
- RewritePath=/api/(?<segment>.*),/renren-fast/$\{segment}

可以看见cloud和gateway之间多按了一个tab导致启动时,既不报错,也不提示,最后运行时始终无法排除问题,mark一下。

在p62中OSS存在依赖问题

报错如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Caused by: java.lang.NoSuchMethodError: com.aliyuncs.profile.DefaultProfile.getHttpClientConfig()Lcom/aliyuncs/http/HttpClientConfig;
at com.alibaba.cloud.context.AliCloudSdk.<init>(AliCloudSdk.java:76)
at com.alibaba.cloud.context.edas.AliCloudEdasSdkFactory.getDefaultAliCloudEdasSdk(AliCloudEdasSdkFactory.java:34)
at com.alibaba.cloud.spring.boot.context.autoconfigure.EdasContextAutoConfiguration.aliCloudEdasSdk(EdasContextAutoConfiguration.java:42)
at com.alibaba.cloud.spring.boot.context.autoconfigure.EdasContextAutoConfiguration$$EnhancerBySpringCGLIB$$41856d21.CGLIB$aliCloudEdasSdk$0(<generated>)
at com.alibaba.cloud.spring.boot.context.autoconfigure.EdasContextAutoConfiguration$$EnhancerBySpringCGLIB$$41856d21$$FastClassBySpringCGLIB$$ac01ea4e.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
at com.alibaba.cloud.spring.boot.context.autoconfigure.EdasContextAutoConfiguration$$EnhancerBySpringCGLIB$$41856d21.aliCloudEdasSdk(<generated>)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 43 more

此问题是由于版本依赖问题导致

修改gulimall-common模块下的pom依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>aliyun-oss-spring-boot-starter</artifactId>
<version>1.0.0</version>
<!-- 此处排除该依赖,包默认依赖版本过低,会导致查找不到方法,引入版本为4.4.x版本 -->
<exclusions>
<exclusion>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 引入4.5.x版本依赖 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>

MySql连接存在问题

在写代码过程中,发现mysql连接非常慢,在修改连接池无果后上网搜索,可能是由于mysql主机的dns存在问题,尝试配置以下内容,情况待定…

1
2
3
[mysqld]
skip-name-resolve

补充:

尝试增加mysql最大连接树解决问题

通过sql查询当前最大连接数

1
show variables like 'max_connections';

临时修改最大连接数,mysql重启后失效

1
set global max_connections=1000;

永久修改连接数,在my.cnf文件中写入

1
2
[mysqld]
max_connections=1000
Donate comment here.