Skywalking: print traceid to log / get traceid (怎样在业务代码中主动获取TraceID) 有更新!

  |   0 评论   |   4,626 浏览

有的时候你的业务系统会对外提供一些服务. 比如HTTP服务. 这样使用方可能是我们C端用户,也有可能是我们的QA同学. 特别是在反馈问题的时候我们希望能够有一个统一的唯一标识符能够提供给用户. 让用户在反馈问题的时候,能够带上一个关键字, 比如相应的请求的带上的时间戳(timestamp). 或者是请求号(requestNo)这样在定位问题的时候能够比较快速的确定问题上下文.进而进行排查. 当然还有比这里刚刚说的两个参数更通用的办法.那就是使用TraceID; 而这篇备忘性质的文章主要是记录基本的处理办法和一部分技术细节.
注意: 此篇文章的方法已经不适用于最新版本的skywalking ,如果你在使用如大于8.2.0版本的代码.请确认是否其它方法

sed 中的正则表达式 有更新!

  |   0 评论   |   3,337 浏览

简单介绍 sed 的正则表达式的使用注意事项.可以看如下的几个case:

一个case:

输入: echo "abcwwwdc456" | gsed -E 's/(abc)([\w]+)(.*456)/\1替换后的字符\3/g'
输出:  abc替换后的字符dc456 
解释: [\w]+只匹配到了所有的`w`.没有匹配后面的`dc`,所以dc没有被替换. 
原因: 实际上字符集是`\`和`w`两者的集合.并不是 **匹配数字和字母下划线** , `\`在 `[ ]`中没有特殊的含义.所以也就无法构建出`\w`

第二个case:

输入: echo "abcwwwdc456" | gsed -E 's/(abc)(\w+)(.*456)/\1替换后的字符\3/g'
输出: abc替换后的字符456
解释: `\w`被识别为了字符集. **数字和字母下划线** , 因此匹配到了w以及后面的dc
原因: 在sed的普通的`s语句`中.是支持如 `\w`,`\b`此类的字符集的.

第三个case:

输入: echo "abcwwwdc456" | ggrep -o -P --color=auto  '(abc)([\w]+)'
输出: abcwwwdc456
解释: `grep`的正则的字符集的定义支持把`\w`放到`[]`中定义新的字符集. 这个更倾向于更常见的正则语法. 写起来也更自然一些
原因: 这个grep使用的是perl语法风格的正则. 因此支持这样处理.

java并发的底层实现原理 有更新!

  |   0 评论   |   2,148 浏览

一. 并发编程的三要素 1. 原子性 同一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 2. 可见性 当多个线程访问同一个变量时,一个线程修改类这个变量的值,其他线程能够立即得到修改的值。 3. 有序性 程序执行的顺序按照代码的先后顺序执行。 在多线程的环境下,必须要保证原子性、可见性和有序性。只要有一个没有被保证买就有可能会导致程序运行错误。 二. 指令重排序 三. java中对并发编程三要素的处理 原子性 可见性 有序性 四. java内存模型(JMM) 五. 顺序一致性模型

sed 入门详解 有更新!

  |   0 评论   |   3,751 浏览

记录了 sed 的常用命令.主要是字符串替换操作. 从其基本语法.到常用命令.以及命令使用的基本核心点进行了主要阐述.阅读此文后能够对 sed 有一个基本的理解.
基本能够覆盖常用的使用场景.