diff --git a/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/pom.xml b/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/pom.xml
index a9e3e80..fe472e4 100644
--- a/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/pom.xml
+++ b/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/pom.xml
@@ -1,43 +1,54 @@
-
- mini-spring-cloud
- com.github
- 1.0.0-SNAPSHOT
- ../../pom.xml
-
- 4.0.0
-
- mini-spring-cloud-api-gateway-example
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
- com.github
- mini-spring-cloud-netflix-zuul
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ mini-spring-cloud
+ com.github
+ 1.0.0-SNAPSHOT
+ ../../pom.xml
+
+ 4.0.0
+
+ mini-spring-cloud-api-gateway-example
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ com.github
+ mini-spring-cloud-netflix-zuul
+
+
+
+ com.github
+ mini-spring-cloud-load-balancer
+
+
+
+ com.netflix.archaius
+ archaius-core
+ 0.7.6
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
\ No newline at end of file
diff --git a/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/java/com/github/cloud/examples/ApiGatewayApplication.java b/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/java/com/github/cloud/examples/ApiGatewayApplication.java
index 793114a..fce83d5 100644
--- a/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/java/com/github/cloud/examples/ApiGatewayApplication.java
+++ b/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/java/com/github/cloud/examples/ApiGatewayApplication.java
@@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author derek(易仁川)
- * @date 2022/6/26
+ * @date 2022/6/26
*/
@EnableZuulProxy
@SpringBootApplication
diff --git a/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/resources/application.yml b/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/resources/application.yml
index 403a61e..8f1b777 100644
--- a/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/resources/application.yml
+++ b/mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example/src/main/resources/application.yml
@@ -1,3 +1,12 @@
+spring:
+ application:
+ name: api-gateway-application
+ cloud:
+ tutu:
+ discovery:
+ server-addr: localhost:6688
+ service: ${spring.application.name}
+
server:
port: 8888
diff --git a/mini-spring-cloud-netflix-zuul/pom.xml b/mini-spring-cloud-netflix-zuul/pom.xml
index a35a028..ab63319 100644
--- a/mini-spring-cloud-netflix-zuul/pom.xml
+++ b/mini-spring-cloud-netflix-zuul/pom.xml
@@ -1,70 +1,70 @@
-
- mini-spring-cloud
- com.github
- 1.0.0-SNAPSHOT
-
- 4.0.0
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ mini-spring-cloud
+ com.github
+ 1.0.0-SNAPSHOT
+
+ 4.0.0
- mini-spring-cloud-netflix-zuul
+ mini-spring-cloud-netflix-zuul
-
-
- com.netflix.zuul
- zuul-core
-
+
+
+ com.netflix.zuul
+ zuul-core
+
-
- org.springframework.boot
- spring-boot-configuration-processor
- true
-
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
-
- org.springframework.boot
- spring-boot
- true
-
+
+ org.springframework.boot
+ spring-boot
+ true
+
-
- org.springframework.boot
- spring-boot-autoconfigure
- true
-
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+ true
+
-
- org.springframework.boot
- spring-boot-starter
- true
-
+
+ org.springframework.boot
+ spring-boot-starter
+ true
+
-
- org.springframework.cloud
- spring-cloud-commons
-
+
+ org.springframework.cloud
+ spring-cloud-commons
+
-
- org.springframework.cloud
- spring-cloud-context
-
+
+ org.springframework.cloud
+ spring-cloud-context
+
-
- org.springframework.boot
- spring-boot-starter-web
-
+
+ org.springframework.boot
+ spring-boot-starter-web
+
-
- cn.hutool
- hutool-all
-
+
+ cn.hutool
+ hutool-all
+
-
- com.alibaba
- fastjson
-
-
+
+ com.alibaba
+ fastjson
+
+
\ No newline at end of file
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/EnableZuulProxy.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/EnableZuulProxy.java
index 603555d..4232525 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/EnableZuulProxy.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/EnableZuulProxy.java
@@ -9,8 +9,9 @@ import org.springframework.context.annotation.Import;
/**
* 启用zuul网关
+ *
* @author derek(易仁川)
- * @date 2022/6/23
+ * @date 2022/6/23
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/ZuulServerAutoConfiguration.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/ZuulServerAutoConfiguration.java
index 6569a4f..bd1c148 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/ZuulServerAutoConfiguration.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/ZuulServerAutoConfiguration.java
@@ -24,8 +24,10 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
+ * zuul API网关自动配置类
+ *
* @author derek(易仁川)
- * @date 2022/6/23
+ * @date 2022/6/23
*/
@Configuration
@EnableConfigurationProperties({ZuulProperties.class})
@@ -42,6 +44,9 @@ public class ZuulServerAutoConfiguration {
return new ServletRegistrationBean<>(new ZuulServlet(), zuulProperties.getServletPath());
}
+ /**
+ * 路由定位器
+ */
@Bean
public RouteLocator simpleRouteLocator() {
return new SimpleRouteLocator(zuulProperties);
@@ -71,6 +76,9 @@ public class ZuulServerAutoConfiguration {
return new SendResponseFilter();
}
+ /**
+ * 注册过滤器
+ */
@Bean
public FilterRegistry filterRegistry(Map filterMap) {
FilterRegistry filterRegistry = FilterRegistry.instance();
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/Route.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/Route.java
index d8eb43a..7e151a1 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/Route.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/Route.java
@@ -2,8 +2,9 @@ package com.github.cloud.netflix.zuul.filters;
/**
* 路由
+ *
* @author derek(易仁川)
- * @date 2022/6/28
+ * @date 2022/6/28
*/
public class Route {
@@ -16,7 +17,6 @@ public class Route {
this.location = location;
}
-
public String getPath() {
return path;
}
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/RouteLocator.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/RouteLocator.java
index e4b0ee7..00735a5 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/RouteLocator.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/RouteLocator.java
@@ -2,13 +2,15 @@ package com.github.cloud.netflix.zuul.filters;
/**
* 路由定位器
+ *
* @author derek(易仁川)
- * @date 2022/6/28
+ * @date 2022/6/28
*/
public interface RouteLocator {
/**
* 获取匹配的路由
+ *
* @param path
* @return
*/
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/SimpleRouteLocator.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/SimpleRouteLocator.java
index 14b9cae..452c9ec 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/SimpleRouteLocator.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/SimpleRouteLocator.java
@@ -1,14 +1,15 @@
package com.github.cloud.netflix.zuul.filters;
-import java.util.Map;
-
import org.springframework.util.AntPathMatcher;
import org.springframework.util.PathMatcher;
+import java.util.Map;
+
/**
* 路由定位器实现类
+ *
* @author derek(易仁川)
- * @date 2022/6/28
+ * @date 2022/6/28
*/
public class SimpleRouteLocator implements RouteLocator {
@@ -26,10 +27,11 @@ public class SimpleRouteLocator implements RouteLocator {
ZuulProperties.ZuulRoute zuulRoute = entry.getValue();
String pattern = zuulRoute.getPath();
if (pathMatcher.match(pattern, path)) {
- return new Route(path, zuulRoute.getServiceId());
+ String targetPath = path.substring(pattern.indexOf("*") - 1);
+ return new Route(targetPath, zuulRoute.getServiceId());
}
}
return null;
}
-}
+}
\ No newline at end of file
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/ZuulProperties.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/ZuulProperties.java
index 4f619f8..b7e0669 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/ZuulProperties.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/ZuulProperties.java
@@ -7,7 +7,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* @author derek(易仁川)
- * @date 2022/6/23
+ * @date 2022/6/23
*/
@ConfigurationProperties("zuul")
public class ZuulProperties {
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/post/SendResponseFilter.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/post/SendResponseFilter.java
index 3d42cc5..9f488b1 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/post/SendResponseFilter.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/post/SendResponseFilter.java
@@ -1,22 +1,27 @@
package com.github.cloud.netflix.zuul.filters.post;
-import java.io.OutputStream;
-
-import javax.servlet.http.HttpServletResponse;
-
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.StreamUtils;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.POST_TYPE;
+import static org.springframework.util.ReflectionUtils.rethrowRuntimeException;
/**
* post类型过滤器,向客户端输出响应报文
*
* @author derek(易仁川)
- * @date 2022/6/27
+ * @date 2022/6/27
*/
public class SendResponseFilter extends ZuulFilter {
+ private static Logger logger = LoggerFactory.getLogger(SendResponseFilter.class);
@Override
public String filterType() {
@@ -30,21 +35,35 @@ public class SendResponseFilter extends ZuulFilter {
@Override
public boolean shouldFilter() {
- RequestContext requestContext = RequestContext.getCurrentContext();
- return requestContext.getResponseDataStream() != null;
+ return RequestContext.getCurrentContext()
+ .getResponseDataStream() != null;
}
@Override
public Object run() throws ZuulException {
+ //向客户端输出响应报文
RequestContext requestContext = RequestContext.getCurrentContext();
- HttpServletResponse servletResponse = requestContext.getResponse();
- if (servletResponse.getCharacterEncoding() == null) {
+ InputStream inputStream = requestContext.getResponseDataStream();
+ try {
+ HttpServletResponse servletResponse = requestContext.getResponse();
servletResponse.setCharacterEncoding("UTF-8");
- }
-
- OutputStream outStream = servletResponse.getOutputStream();
+ OutputStream outStream = servletResponse.getOutputStream();
+ StreamUtils.copy(inputStream, outStream);
+ } catch (Exception e) {
+ rethrowRuntimeException(e);
+ } finally {
+ //关闭输入输出流
+ if (inputStream != null) {
+ try {
+ inputStream.close();
+ } catch (Exception e) {
+ logger.error("关闭输入流失败", e);
+ }
+ }
+ //Servlet容器会自动关闭输出流
+ }
return null;
}
-}
+}
\ No newline at end of file
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/pre/PreDecorationFilter.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/pre/PreDecorationFilter.java
index b770d50..6eda7ef 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/pre/PreDecorationFilter.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/pre/PreDecorationFilter.java
@@ -8,15 +8,13 @@ import com.netflix.zuul.exception.ZuulException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.PRE_TYPE;
-import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.REQUEST_URI_KEY;
-import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.SERVICE_ID_KEY;
+import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.*;
/**
* pre类型过滤器,根据RouteLocator来进行路由规则的匹配
*
* @author derek(易仁川)
- * @date 2022/6/27
+ * @date 2022/6/27
*/
public class PreDecorationFilter extends ZuulFilter {
private static Logger logger = LoggerFactory.getLogger(PreDecorationFilter.class);
@@ -51,8 +49,7 @@ public class PreDecorationFilter extends ZuulFilter {
if (route != null) {
requestContext.put(REQUEST_URI_KEY, route.getPath());
requestContext.set(SERVICE_ID_KEY, route.getLocation());
- }
- else {
+ } else {
logger.error("获取不到匹配的路由, requestURI: {}", requestContext);
}
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java
index 00fff10..8dfeb76 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java
@@ -1,31 +1,25 @@
package com.github.cloud.netflix.zuul.filters.route;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.http.Method;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
+import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
-import org.springframework.cloud.client.loadbalancer.LoadBalancerRequest;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.client.ClientHttpResponse;
-import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.REQUEST_URI_KEY;
-import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.ROUTE_TYPE;
-import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.SERVICE_ID_KEY;
+import static com.github.cloud.netflix.zuul.filters.support.FilterConstants.*;
+import static org.springframework.util.ReflectionUtils.rethrowRuntimeException;
/**
* route类型过滤器,使用ribbon负载均衡器进行http请求
*
* @author derek(易仁川)
- * @date 2022/6/27
+ * @date 2022/6/27
*/
public class RibbonRoutingFilter extends ZuulFilter {
private static Logger logger = LoggerFactory.getLogger(RibbonRoutingFilter.class);
@@ -54,33 +48,30 @@ public class RibbonRoutingFilter extends ZuulFilter {
@Override
public Object run() throws ZuulException {
- RequestContext requestContext = RequestContext.getCurrentContext();
- String serviceId = (String) requestContext.get(SERVICE_ID_KEY);
- String requestURI = (String) requestContext.get(REQUEST_URI_KEY);
-
-
- HttpServletRequest request = requestContext.getRequest();
-
- String method = request.getMethod();
-
- ServletInputStream inputStream = null;
try {
- inputStream = request.getInputStream();
- }
- catch (IOException e) {
- logger.error("获取输入流失败", e);
+ RequestContext requestContext = RequestContext.getCurrentContext();
+ //使用ribbon的负载均衡能力发起远程调用
+ //TODO 简单实现,熔断降级章节再完善
+ String serviceId = (String) requestContext.get(SERVICE_ID_KEY);
+ ServiceInstance serviceInstance = loadBalancerClient.choose(serviceId);
+ if (serviceInstance == null) {
+ logger.error("根据serviceId查询不到服务示例,serviceId: {}", serviceId);
+ return null;
+ }
+
+ String requestURI = (String) requestContext.get(REQUEST_URI_KEY);
+ String url = serviceInstance.getUri().toString() + requestURI;
+ HttpRequest httpRequest = HttpUtil.createRequest(Method.POST, url);
+ HttpResponse httpResponse = httpRequest.execute();
+
+ //将响应报文的状态码和内容写进请求上下文中
+ requestContext.setResponseStatusCode(httpResponse.getStatus());
+ requestContext.setResponseDataStream(httpResponse.bodyStream());
+
+ return httpResponse;
+ } catch (Exception e) {
+ rethrowRuntimeException(e);
}
-
- //TODO 构造请求
- LoadBalancerRequest loadBalancerRequest = null;
-
- ClientHttpResponse response = loadBalancerClient.execute(serviceId, loadBalancerRequest);
- int statusCode = response.getRawStatusCode();
- InputStream responseBody = response.getBody();
-
- requestContext.setResponseStatusCode(statusCode);
- requestContext.setResponseDataStream(responseBody);
-
- return response;
+ return null;
}
-}
+}
\ No newline at end of file
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/support/FilterConstants.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/support/FilterConstants.java
index dc5d20d..c3f415f 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/support/FilterConstants.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/filters/support/FilterConstants.java
@@ -4,7 +4,7 @@ package com.github.cloud.netflix.zuul.filters.support;
* 过滤器常量类
*
* @author derek(易仁川)
- * @date 2022/6/27
+ * @date 2022/6/27
*/
public interface FilterConstants {
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyCounterFactory.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyCounterFactory.java
index 8f4263b..07be850 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyCounterFactory.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyCounterFactory.java
@@ -4,11 +4,10 @@ import com.netflix.zuul.monitoring.CounterFactory;
/**
* @author derek(易仁川)
- * @date 2022/6/27
+ * @date 2022/6/27
*/
public class EmptyCounterFactory extends CounterFactory {
@Override
public void increment(String name) {
-
}
}
diff --git a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyTracerFactory.java b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyTracerFactory.java
index 958e258..c49792f 100644
--- a/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyTracerFactory.java
+++ b/mini-spring-cloud-netflix-zuul/src/main/java/com/github/cloud/netflix/zuul/metrics/EmptyTracerFactory.java
@@ -5,11 +5,25 @@ import com.netflix.zuul.monitoring.TracerFactory;
/**
* @author derek(易仁川)
- * @date 2022/6/27
+ * @date 2022/6/27
*/
public class EmptyTracerFactory extends TracerFactory {
+
+ private final EmptyTracer emptyTracer = new EmptyTracer();
+
@Override
public Tracer startMicroTracer(String name) {
- return null;
+ return emptyTracer;
+ }
+
+ private static final class EmptyTracer implements Tracer {
+
+ @Override
+ public void setName(String name) {
+ }
+
+ @Override
+ public void stopAndLog() {
+ }
}
-}
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e671629..b223de0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,125 +1,125 @@
- 4.0.0
-
-
- org.springframework.cloud
- spring-cloud-build
- 3.1.1
-
-
-
- com.github
- mini-spring-cloud
- pom
- 1.0.0-SNAPSHOT
-
-
- mini-spring-cloud-tutu-discovery
- mini-spring-cloud-load-balancer
- mini-spring-cloud-openfeign
- mini-spring-cloud-netflix-zuul
- mini-spring-cloud-examples/tutu-server
- mini-spring-cloud-examples/mini-spring-cloud-provider-example
- mini-spring-cloud-examples/mini-spring-cloud-consumer-examples
- mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example
-
-
-
- 2021.0.1
- 1.2.79
- 5.7.21
- 2.3.0
- 11.8
- 1.3.1
-
-
-
-
-
- org.springframework.boot
- spring-boot-dependencies
- ${spring-boot.version}
- pom
- import
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- ${spring.cloud.version}
- pom
- import
-
-
-
- com.github
- mini-spring-cloud-tutu-discovery
- 1.0.0-SNAPSHOT
-
-
-
- com.github
- mini-spring-cloud-load-balancer
- 1.0.0-SNAPSHOT
-
-
-
- com.github
- mini-spring-cloud-openfeign
- 1.0.0-SNAPSHOT
-
-
-
- com.github
- mini-spring-cloud-netflix-zuul
- 1.0.0-SNAPSHOT
-
-
-
- com.alibaba
- fastjson
- ${fastjson.version}
-
-
-
- cn.hutool
- hutool-all
- ${hutool.version}
-
-
-
- com.netflix.ribbon
- ribbon
- ${ribbon.version}
-
-
-
- com.netflix.ribbon
- ribbon-loadbalancer
- ${ribbon.version}
-
-
-
- com.netflix.ribbon
- ribbon-core
- ${ribbon.version}
-
-
-
- io.github.openfeign
- feign-core
- ${feign.version}
-
-
-
- com.netflix.zuul
- zuul-core
- ${zuul.version}
-
-
-
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+
+
+ org.springframework.cloud
+ spring-cloud-build
+ 3.1.1
+
+
+
+ com.github
+ mini-spring-cloud
+ pom
+ 1.0.0-SNAPSHOT
+
+
+ mini-spring-cloud-tutu-discovery
+ mini-spring-cloud-load-balancer
+ mini-spring-cloud-openfeign
+ mini-spring-cloud-netflix-zuul
+ mini-spring-cloud-examples/tutu-server
+ mini-spring-cloud-examples/mini-spring-cloud-provider-example
+ mini-spring-cloud-examples/mini-spring-cloud-consumer-examples
+ mini-spring-cloud-examples/mini-spring-cloud-api-gateway-example
+
+
+
+ 2021.0.1
+ 1.2.79
+ 5.7.21
+ 2.3.0
+ 11.8
+ 1.3.1
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring.cloud.version}
+ pom
+ import
+
+
+
+ com.github
+ mini-spring-cloud-tutu-discovery
+ 1.0.0-SNAPSHOT
+
+
+
+ com.github
+ mini-spring-cloud-load-balancer
+ 1.0.0-SNAPSHOT
+
+
+
+ com.github
+ mini-spring-cloud-openfeign
+ 1.0.0-SNAPSHOT
+
+
+
+ com.github
+ mini-spring-cloud-netflix-zuul
+ 1.0.0-SNAPSHOT
+
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+ com.netflix.ribbon
+ ribbon
+ ${ribbon.version}
+
+
+
+ com.netflix.ribbon
+ ribbon-loadbalancer
+ ${ribbon.version}
+
+
+
+ com.netflix.ribbon
+ ribbon-core
+ ${ribbon.version}
+
+
+
+ io.github.openfeign
+ feign-core
+ ${feign.version}
+
+
+
+ com.netflix.zuul
+ zuul-core
+ ${zuul.version}
+
+
+
\ No newline at end of file