解决方案:如何使用 SkyWalking 给 Dubbo 服务做链路追踪?
优采云 发布时间: 2022-11-22 09:18解决方案:如何使用 SkyWalking 给 Dubbo 服务做链路追踪?
Skywalking监控截图:
Apache Skywalking(孵化器)简介
Apache Skywalking (Incubator) 专为微服务架构和云原生架构系统设计,支持分布式链路跟踪APM系统。Apache Skywalking(孵化器)通过加载探针采集
应用调用链接信息,对采集
到的调用链接信息进行分析,生成应用间关系、服务间关系和服务指标。Apache Skywalking (Incubating) 目前支持多种语言,包括 Java、.Net Core、Node.js 和 Go 语言。
目前Skywalking已经支持从6个可视化维度分析分布式系统的运行情况。
Dubbo与Apache Skywalking(孵化器)编写Dubbo示例程序
Dubbo示例程序已经上传到Github仓库。方便大家下载使用。
API工程
服务接口:
package org.apache.skywalking.demo.interfaces;<br /><br />public interface HelloService {<br /> String sayHello(String name);<br />}<br />
Dubbo服务提供项目
package org.apache.skywalking.demo.provider;<br /><br />@Service(version = "${demo.service.version}",<br /> application = "${dubbo.application.id}",<br /> protocol = "${dubbo.protocol.id}",<br /> registry = "${dubbo.registry.id}", timeout = 60000)<br />public class HelloServiceImpl implements HelloService {<br /><br /> public String sayHello(String name) {<br /> LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(1));<br /> return "Hello, " + name;<br /> }<br /><br />}<br />
消费者工程
package org.apache.skywalking.demo.consumer;<br /><br />@RestController<br />public class ConsumerController {<br /><br /> private static int COUNT = 0;<br /><br /> @Reference(version = "${demo.service.version}",<br /> application = "${dubbo.application.id}",<br /> url = "dubbo://localhost:20880", timeout = 60000)<br /> private HelloService helloService;<br /><br /> @GetMapping("/sayHello/{name}")<br /> public String sayHello(@PathVariable(name = "name") String name) {<br /> if ((COUNT++) % 3 == 0){<br /> throw new RuntimeException();<br /> }<br /> LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(2));<br /> return helloService.sayHello(name);<br /> }<br />}<br />
部署 Apache Skywalking(孵化器)
Apache Skywalking(孵化器)提供两种部署模式:单节点模式和集群模式。以下是单节点模式部署步骤。有关集群模式部署的详细信息,请参阅文档。
依赖第三方组件
JDK8+
弹性搜索 5.x
部署步骤
下载 Apache Skywalking 采集
器
部署弹性搜索
解压缩并启动 Skywalking Collector。运行 bin/startup.sh 命令启动 Skywalking Collector
启动示例程序
在启动示例程序之前,先执行编译打包命令:
" />
./mvnw clean package<br />
启动服务提供者
java -jar -javaagent:$AGENT_PATH/skywalking-agent.jar -Dskywalking.agent.application_code=dubbo-provider -Dskywalking.collector.servers=localhost:10800 dubbo-provider/target/dubbo-provider.jar<br />
启动服务消费者
java -jar -javaagent:$AGENT_PATH/skywalking-agent.jar -Dskywalking.agent.application_code=dubbo-consumer -Dskywalking.collector.servers=localhost:10800 dubbo-consumer/target/dubbo-consumer.jar <br />
获得消费者提供的服务
curl http://localhost:8080/sayHello/test<br />
Skywalking监控截图:首页
/admin-guide/images/skywalking-dashboard.png 拓扑图
/admin-guide/images/skywalking-topology.png 应用视图
/admin-guide/images/skywalking-application.png
JVM信息
/admin-guide/images/skywalking-application_instance.png 服务视图
服务消费者:
/admin-guide/images/skywalking-service-consumer.png
服务提供者:
/admin-guide/images/skywalking-service-provider.png 跟踪视图
/admin-guide/images/skywalking-trace.png
" />
跨度信息:
/admin-guide/images/skywalking-span-Info.png 报警视图
/admin-guide/images/skywalking-alarm.png
欢迎加入我的知识星球,一起探讨架构,交流源码。要加入,请按住下面的二维码:
知识星球上已更新源码,分析如下:
目前,《Dubbo源码解析》目录已在知识星球更新如下:
01.调试环境搭建
02.项目结构一览
03.配置配置
04.核心流程清单
05.扩展机制SPI
06.线程池
07.服务暴露Export
08. 服务参考 Refer
09.注册处
10.动态编译
11. 动态代理
12.服务调用Invoke
13.调用属性
14.过滤器
15.NIO 服务器
16.P2P服务器
解决方案:OZON平台产品审核不通过原因及产品上传常见错误
OZON官方有两种方式:单次上传和表单批量上传。上传后需要审核,目前是人工审核。很多卖家反映商品上传后“拒绝更新”,即商品审核不通过。是什么原因?
首先,确保您的产品或品牌可以在OZON上销售或不受限制。
二、首次上传填写商品信息前,一定要逐项查看填写的提示,并查看平台买家端的listing,可以有效避免出现明显错误。
" />
三、卖家上传图片错误较多。上传前,他还查看了官方知识库中给出的详细上传图片要求。
以下是根据采集
到的买家反馈和实践经验总结的产品上传常见错误列表:
1.产品图片:图片底色偏暗或杂乱。上传的时候主图最好是无价的白底图(灰底图也可以),白色的东西可以深色,总之一定要干净整洁,尤其是主图,尺寸等信息不应该出现在图片中,只展示商品的全部内容,也应该整体展示,而不是只展示商品的一部分。对于服装,主要图片应显示在正面。
2. 多SKU:一个产品只能上传一个SKU。主副图颜色必须与SKU数量一致,同一商品不能出现多个SKU。请注意,这是一个严重的问题。
" />
3.商品分类:上传商品时商品分类选择有问题,分类不确定。建议在买家网站上搜索并确认产品类别后再进行选择。
4、品牌问题:选择没有品牌的产品,但在产品栏目、图片或说明中显示品牌信息,或产品品牌信息不一致。
5.产品描述:描述太短,尺寸大小不对,收录
广告信息。
最后,如果产品已上传但未通过审核,将鼠标移到提醒编号上,系统通常会显示失败原因。