Qing 10 сар өмнө
parent
commit
0004b6a7c4

+ 3 - 1
springcloud-demo/openfeign-service-demo/openfeign-service-api/pom.xml

@@ -5,7 +5,9 @@
         <groupId>com.sf</groupId>
         <artifactId>openfeign-service-demo</artifactId>
         <version>0.0.1-SNAPSHOT</version>
-<!--        <relativePath>../../pom.xml</relativePath>-->
+<!--        relativePath: 1)指定查找该父项目pom.xml的(相对)路径。默认顺序:relativePath > 本地仓库 > 远程仓库
+                          2)没有relativePath标签等同…/pom.xml, 即默认从当前pom文件的上一级目录找-->
+<!--        <relativePath>../pom.xml</relativePath>-->
     </parent>
 
     <artifactId>openfeign-service-api</artifactId>

+ 5 - 5
springcloud-demo/pom.xml

@@ -25,18 +25,18 @@
         <module>service-consumer-demo</module>
         <module>service-provider-demo</module>
         <module>openfeign-service-demo</module>
-        <module>openfeign-service-demo/openfeign-service-api</module>
+        <module>openfeign-service-demo</module>
     </modules>
 
     <!-- 使用属性配置来管理依赖版本 -->
     <properties>
         <java.version>17</java.version>
         <lombok.version>1.18.34</lombok.version>
-        <spring.boot.version>3.2.5</spring.boot.version>
-        <spring.cloud.version>2023.0.1</spring.cloud.version>
-        <spring.cloud.alibaba.version>2022.0.0.0-RC2</spring.cloud.alibaba.version>
+        <spring.boot.version>3.3.1</spring.boot.version>
+        <spring.cloud.version>2023.0.3</spring.cloud.version>
+        <spring.cloud.alibaba.version>2023.0.1.2</spring.cloud.alibaba.version>
         <!-- 配置中心使用的管理配置的工具 -->
-        <spring-cloud-starter-bootstrap.version>4.1.0</spring-cloud-starter-bootstrap.version>
+        <spring-cloud-starter-bootstrap.version>4.1.4</spring-cloud-starter-bootstrap.version>
     </properties>
 
     <!-- 删除了父项目的依赖引入 -->

+ 5 - 0
springcloud-demo/service-consumer-demo/pom.xml

@@ -40,6 +40,11 @@
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+
         <!-- 引入其他的http包 来代替原生的http -->
 <!--        <dependency>-->
 <!--            <groupId>org.apache.httpcomponents.client5</groupId>-->

+ 11 - 5
springcloud-demo/service-consumer-demo/src/main/java/com/sf/config/feign/FeignConfig.java

@@ -1,14 +1,20 @@
 package com.sf.config.feign;
 
-import feign.Logger;
-import feign.Request;
-import feign.Retryer;
+import feign.*;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
+import java.net.http.HttpClient;
+
 @Configuration
 public class FeignConfig {
 
+//    @Bean
+//    public Contract useFeignAnnotations() {
+//        return new Contract.Default();
+//    }
+
+
     // 另一种配置日志级别的方式
     @Bean
     public Logger.Level feignLoggerLevel() {
@@ -24,8 +30,8 @@ public class FeignConfig {
     @Bean
     public Retryer retryer() {
         // 请求失败后是否重试  默认是不重试
-//        return Retryer.NEVER_RETRY;
+        return Retryer.NEVER_RETRY;
         // 最大请求次数为3次 初始间隔时间为100ms 重试最大间隔时间为1s
-        return new Retryer.Default(100,1,3);
+//        return new Retryer.Default(100,1,3);
     }
 }

+ 2 - 1
springcloud-demo/service-consumer-demo/src/main/java/com/sf/remote/MyProviderClient.java

@@ -1,5 +1,6 @@
 package com.sf.remote;
 
+import com.sf.config.feign.FeignConfig;
 import com.sf.dto.UserDto;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
@@ -11,7 +12,7 @@ import java.util.Map;
 //@LoadBalancerClient(name = "service-provider-demo",
 //        configuration = NacosLoadBalancerConfig.class)
 // 不走通用的配置  单独指定配置
-//@FeignClient(value = "service-provider-demo",configuration = FeignOtherConfig.class)
+//@FeignClient(value = "service-provider-demo",configuration = FeignConfig.class)
 @FeignClient("service-provider-demo")
 public interface MyProviderClient {
 

+ 22 - 2
springcloud-demo/service-consumer-demo/src/main/resources/application.yml

@@ -18,8 +18,8 @@ spring:
 #        hc5:
 #          enabled: true
       # 打开feign和okhttp的整合
-       okhttp:
-         enabled: true
+#       okhttp:
+#         enabled: true
 
       # jdk原生的httpclient
 #      client:
@@ -30,5 +30,25 @@ spring:
 #            readTimeout: 5000 # 读取超时时间
 #            loggerLevel: full # 日志级别
 
+    sentinel:
+      transport:
+        dashboard: localhost:8090 # 指定sentinel控制台的地址
+      http-method-specify: true # 开启请求方式前缀
+
 server:
   port: 8080
+  tomcat:
+    # tomcat默认的最大线程数是200 默认的最大连接数是8492
+    threads:
+      max: 50 # 最大线程数
+    accept-count: 50 # 最大排队等待数量
+    max-connections: 100 # 允许的最大连接
+
+# 开启feign对sentinel的支持
+feign:
+  sentinel:
+    enabled: true
+
+logging:
+  level:
+    com.sf: debug

+ 2 - 2
springcloud-demo/service-provider-demo/pom.xml

@@ -43,8 +43,8 @@
         </dependency>
 
         <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
         </dependency>
 
         <dependency>

+ 3 - 0
springcloud-demo/service-provider-demo/src/main/resources/application.yml

@@ -13,5 +13,8 @@ spring:
 #    loadbalancer:
 #      configurations: 5
 #      spring.cloud.loadbalancer.configurations
+    sentinel:
+      transport:
+        dashboard: localhost:8090 # 指定sentinel控制台的地址
 server:
   port: 8070