google Dapper自己实现Demo
来源:互联网 发布:lrc编辑器 mac 编辑:程序博客网 时间:2024/05/21 12:49
import java.util.ArrayList; import java.util.List; public class Test { //idWorker就是为了生成一个唯一的id private static SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0); private static List<MessageVO> list = new ArrayList<MessageVO>(); public static void main(String[] args) { long traceID =idWorker.nextId(); long spanID =idWorker.nextId(); MessageVO vo = new MessageVO("main方法开始了……", traceID, -1L, spanID); list.add(vo); doA(traceID,spanID); doB(traceID,spanID); treeMenuList(-1L,0); } public static void treeMenuList(Long pid,int d){ int tmp =0; for(MessageVO mu: list){ //遍历出父id等于参数的id if(mu.getpID().equals(pid)){ for(int i=0;i<d;i++){ System.out.print("***"); } System.out.println(mu); //递归遍历下一级 if(tmp==0){ tmp=d+1; } treeMenuList(mu.getSpanID(),tmp); } } } private static void doA(long traceID,long pid) { long spanID =idWorker.nextId(); MessageVO vo = new MessageVO("doA方法开始了……", traceID, pid, spanID); list.add(vo); doE(traceID,spanID); } private static void doB(long traceID,long pid) { long spanID =idWorker.nextId(); MessageVO vo = new MessageVO("doB方法开始了……", traceID, pid, spanID); list.add(vo); doC(traceID,spanID); doD(traceID,spanID); } private static void doD(long traceID,long pid) { long spanID =idWorker.nextId(); MessageVO vo = new MessageVO("doD方法开始了……", traceID, pid, spanID); list.add(vo); } private static void doC(long traceID,long pid) { long spanID =idWorker.nextId(); MessageVO vo = new MessageVO("doC方法开始了……", traceID, pid, spanID); list.add(vo); } private static void doE(long traceID,long pid) { long spanID =idWorker.nextId(); MessageVO vo = new MessageVO("doE方法开始了……", traceID, pid, spanID); list.add(vo); doF(traceID,spanID); } private static void doF(long traceID,long pid) { long spanID =idWorker.nextId(); MessageVO vo = new MessageVO("doF方法开始了……", traceID, pid, spanID); list.add(vo); } }
public class MessageVO { private String messg; //内容 private Long traceID; //全局唯一的 TraceID private Long pID; //上级id private Long spanID; //全局唯一的 SpanID public MessageVO() { } public MessageVO(String messg, Long traceID, Long pID, Long spanID) { this.messg = messg; this.traceID = traceID; this.pID = pID; this.spanID = spanID; } public String getMessg() { return messg; } public void setMessg(String messg) { this.messg = messg; } public Long getTraceID() { return traceID; } public void setTraceID(Long traceID) { this.traceID = traceID; } public Long getpID() { return pID; } public void setpID(Long pID) { this.pID = pID; } public Long getSpanID() { return spanID; } public void setSpanID(Long spanID) { this.spanID = spanID; } @Override public String toString() { return messg; } }
运行结果如下:
阅读全文
2 1
- google Dapper自己实现Demo
- dapper查询demo、
- 分布式追踪系统---google的dapper
- Dapper
- Dapper
- Dapper
- Google Dapper-大规模分布式系统的基础跟踪设施
- 分布式服务的Trace——Google Dapper & Twitter Zipkin
- Google之大规模分布式系统的监控基础架构Dapper
- 分布式服务的Trace——Google Dapper & Twitter Zipkin
- 分布式服务的Trace——Google Dapper & Twitter Zipkin
- 分布式服务的Trace——Google Dapper & Twitter Zipkin
- Google Dapper-大规模分布式系统的基础跟踪设施
- Google Dapper-大规模分布式系统的基础跟踪设施
- Google Dapper,大规模分布式系统的跟踪系统
- 分布式服务的Trace——Google Dapper & Twitter Zipkin
- Google Dapper 大规模分布式系统的跟踪方案
- 避开Google Voice Search利用Google Speech API实现Android语音识别之Demo实现
- keepalived + lvs(DR) 高可用负载均衡
- R语言之模型评估
- Linux top命令
- java中instanceof跟equals和equalsIgnoreCase的区别
- Mysql基础原理以及应用
- google Dapper自己实现Demo
- TextPaint
- 互联网开发人员需知的“108”个技术栈
- CF—Hot Bath
- JAVA zip压缩
- hdu2795 Billboard 线段树维护最值
- java之观察者模式实例讲解
- MYSQL数据库(七)-数据表的插入、删除
- 数据结构之链表