diff --git a/zlt-commons/zlt-log-spring-boot-starter/src/main/java/com/central/log/trace/DubboTraceFilter.java b/zlt-commons/zlt-log-spring-boot-starter/src/main/java/com/central/log/trace/DubboTraceFilter.java index d56ebfc44a473bff038f043395cd83cfea7a98ef..cdf6b940df01830923e8cc77f226ffec1d70a36d 100644 --- a/zlt-commons/zlt-log-spring-boot-starter/src/main/java/com/central/log/trace/DubboTraceFilter.java +++ b/zlt-commons/zlt-log-spring-boot-starter/src/main/java/com/central/log/trace/DubboTraceFilter.java @@ -1,27 +1,21 @@ package com.central.log.trace; -import com.central.log.properties.TraceProperties; import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.rpc.*; import org.springframework.util.StringUtils; -import javax.annotation.Resource; - /** * dubbo过滤器,传递traceId * * @author zlt - * @date 2020/10/14 + * @date 2021/1/30 *
* Blog: https://zlt2000.gitee.io
* Github: https://github.com/zlt2000
*/
@Activate(group = {CommonConstants.PROVIDER, CommonConstants.CONSUMER}, order = MDCTraceUtils.FILTER_ORDER)
public class DubboTraceFilter implements Filter {
- @Resource
- private TraceProperties traceProperties;
-
/**
* 服务消费者:传递traceId给下游服务
* 服务提供者:获取traceId并赋值给MDC
@@ -29,25 +23,23 @@ public class DubboTraceFilter implements Filter {
@Override
public Result invoke(Invoker> invoker, Invocation invocation) throws RpcException {
boolean isProviderSide = RpcContext.getContext().isProviderSide();
- if (traceProperties.getEnable()) {
- if (isProviderSide) { //服务提供者逻辑
- String traceId = invocation.getAttachment(MDCTraceUtils.KEY_TRACE_ID);
- if (!StringUtils.isEmpty(traceId)) {
- MDCTraceUtils.addTraceId();
- } else {
- MDCTraceUtils.putTraceId(traceId);
- }
- } else { //服务消费者逻辑
- String traceId = MDCTraceUtils.getTraceId();
- if (!StringUtils.isEmpty(traceId)) {
- invocation.setAttachment(MDCTraceUtils.KEY_TRACE_ID, traceId);
- }
+ if (isProviderSide) { //服务提供者逻辑
+ String traceId = invocation.getAttachment(MDCTraceUtils.KEY_TRACE_ID);
+ if (StringUtils.isEmpty(traceId)) {
+ MDCTraceUtils.addTraceId();
+ } else {
+ MDCTraceUtils.putTraceId(traceId);
+ }
+ } else { //服务消费者逻辑
+ String traceId = MDCTraceUtils.getTraceId();
+ if (!StringUtils.isEmpty(traceId)) {
+ invocation.setAttachment(MDCTraceUtils.KEY_TRACE_ID, traceId);
}
}
try {
return invoker.invoke(invocation);
} finally {
- if (isProviderSide && traceProperties.getEnable()) {
+ if (isProviderSide) {
MDCTraceUtils.removeTraceId();
}
}
diff --git a/zlt-demo/dubbo-demo/README.md b/zlt-demo/dubbo-demo/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..824c4bfac118dc7d049541601c2943177582e3ce
--- /dev/null
+++ b/zlt-demo/dubbo-demo/README.md
@@ -0,0 +1,12 @@
+## Demo说明
+
+Spring Cloud 集成 Dubbo 的 demo
+
+启动后访问:http://127.0.0.1:8091/test/abc
+
+
+
+## 集成 Spring Cloud Gateway
+[Dubbo想要个网关怎么办?试试整合Spring Cloud Gateway](https://mp.weixin.qq.com/s/_idYl39i1eQejLLLlCW2sg)
+
+
diff --git a/zlt-demo/dubbo-demo/pom.xml b/zlt-demo/dubbo-demo/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c860c70dfc120d6f9fadb0232cbae499124f93da
--- /dev/null
+++ b/zlt-demo/dubbo-demo/pom.xml
@@ -0,0 +1,50 @@
+
+
+ * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@EnableDiscoveryClient +@SpringBootApplication +public class WebDubboApp { + public static void main(String[] args) { + SpringApplication.run(WebDubboApp.class, args); + } +} diff --git a/zlt-demo/dubbo-demo/src/main/java/org/zlt/controller/WebController.java b/zlt-demo/dubbo-demo/src/main/java/org/zlt/controller/WebController.java new file mode 100644 index 0000000000000000000000000000000000000000..0a2e9a84554566ca6fde624ae47f631bc0afa631 --- /dev/null +++ b/zlt-demo/dubbo-demo/src/main/java/org/zlt/controller/WebController.java @@ -0,0 +1,28 @@ +package org.zlt.controller; + +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; +import org.zlt.service.RpcService; + +/** + * @author zlt + * @date 2020/6/26 + *
+ * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Slf4j +@RestController +public class WebController { + @DubboReference + private RpcService dubboService; + + @GetMapping("/test/{p}") + public String test(@PathVariable("p") String param) { + log.info("==============WebController"); + return dubboService.test(param); + } +} diff --git a/zlt-demo/dubbo-demo/src/main/java/org/zlt/service/RpcService.java b/zlt-demo/dubbo-demo/src/main/java/org/zlt/service/RpcService.java new file mode 100644 index 0000000000000000000000000000000000000000..00e6fc3cc36f6137a0a98b0d46ec8de6e657fe83 --- /dev/null +++ b/zlt-demo/dubbo-demo/src/main/java/org/zlt/service/RpcService.java @@ -0,0 +1,12 @@ +package org.zlt.service; + +/** + * @author zlt + * @date 2020/1/30 + *
+ * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +public interface RpcService { + String test(String param); +} diff --git a/zlt-demo/dubbo-demo/src/main/java/org/zlt/service/impl/RpcServiceImpl.java b/zlt-demo/dubbo-demo/src/main/java/org/zlt/service/impl/RpcServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cfabb23e9ba5a3afa860bb2d5417ae75c3528fb2 --- /dev/null +++ b/zlt-demo/dubbo-demo/src/main/java/org/zlt/service/impl/RpcServiceImpl.java @@ -0,0 +1,22 @@ +package org.zlt.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.zlt.service.RpcService; + +/** + * @author zlt + * @date 2020/1/30 + *
+ * Blog: https://zlt2000.gitee.io + * Github: https://github.com/zlt2000 + */ +@Slf4j +@DubboService(protocol = "dubbo") +public class RpcServiceImpl implements RpcService { + @Override + public String test(String param) { + log.info("==============RpcServiceImpl"); + return "dubbo service: " + param; + } +} diff --git a/zlt-demo/dubbo-demo/src/main/resources/application.yml b/zlt-demo/dubbo-demo/src/main/resources/application.yml new file mode 100644 index 0000000000000000000000000000000000000000..5cfc389335b973324917860144efca22667fa2fd --- /dev/null +++ b/zlt-demo/dubbo-demo/src/main/resources/application.yml @@ -0,0 +1,19 @@ +dubbo: + scan: + base-packages: org.zlt.service + protocols: + dubbo: + name: dubbo + port: -1 + registry: + address: spring-cloud://localhost + consumer: + timeout: 5000 + check: false + retries: 0 + cloud: + subscribed-services: + +zlt: + trace: + enable: true \ No newline at end of file diff --git a/zlt-demo/dubbo-demo/src/main/resources/bootstrap.yml b/zlt-demo/dubbo-demo/src/main/resources/bootstrap.yml new file mode 100644 index 0000000000000000000000000000000000000000..6484c93d4749b776afc73a848eb127ab0f92543c --- /dev/null +++ b/zlt-demo/dubbo-demo/src/main/resources/bootstrap.yml @@ -0,0 +1,11 @@ +server: + port: 8091 + +spring: + application: + name: zlt-web-dubbo + main: + allow-bean-definition-overriding: true + cloud: + nacos: + server-addr: 192.168.28.130:8848 \ No newline at end of file