0%

本文背景

因为:
1.dubbo已经从apache毕业,而zipkin官方的brave-instrumentation-dubbo-rpc的5.6版本支持的dubbo版本是2.6.6版本、且对2.7.3版本支持不太友好(2.6.6这个版本是未毕业前的版本,不太喜欢),只能把brave-instrumentation-dubbo-rpc抠出来,用以支撑2.7.3版本。

2.dubbo官方提供的例子还是xml配置版本,现在都9102年了,谁还用XML配置版本。

因为以上两点,有了此文。

阅读全文 »

预处理

编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E来参看。
预处理 命令:gcc -E hello.c -o hello.i
作用:将hello.c预处理输出hello.i

编译

这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后后,把代码翻译成汇编语言。可用gcc的参数-S来参看。
编译器(ccl)将文本文件hello.i 翻译成文本文件hello.s, 它包含一个汇编语言程序。
汇编语言程序中的每条语句都以一种标准的文本格式描述了一条低级机器语言指令。
编译命令:gcc -S hello.i -o hello.s
作用:将预处理输出文件hello.i汇编成hello.s文件

汇编

把编译阶段生成的.s 文件转换为二进制目标代码。可用gcc的参数-c来参看。
汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成可重定位目标程序的格式, 并将结果保存在目标文件hello.o中。hello.o文件是一个二进制文件,它的字节编码是机器语言。
汇编命令:gcc -c hello.s -o hello.o
作用:将汇编输出文件hello.s编译输出hello.o文件

链接

把obj文件链接为可执行的文件:链接器(ld)负责.o文件的并入,结果就是hello文件。
它是一个课执行的目标文件,可以加载到存储器后由系统调用。
链接命令:gcc hello.o -o hello

本文参考资料

https://medium.com/@jay_56373/extending-sonarqube-static-analyzer-tool-capabilities-7b3d77a8b6a6
https://docs.sonarqube.org/6.7/ArchitectureandIntegration.html
https://docs.sonarqube.org/6.7/Documentation.html

sonarqube安装使用过程

从sonarqube官网下载zip包

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.7.zip

解压看到有如下目录

找到mysql服务器,创建对应的数据库

修改sonar的配置

因为sonar是wrapper启动,可以在conf目录下修改对应的配置。

从商城或者github下载插件包

从日志中可以看出sonarqube的组成

elasticsearch启动

/data/sonar/sonarqube/elasticsearch/bin/elasticsearch -Epath.conf=/data/sonar/sonarqube/temp/conf/es

sonar web启动

/usr/lib/jdk1.8.0_161/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/data/sonar/sonarqube/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:./lib/server/*:/data/sonar/sonarqube/lib/jdbc/mysql/mysql-connector-java-5.1.42.jar org.sonar.server.app.WebServer /data/sonar/sonarqube/temp/sq-process4130329630669150644properties

sonar ce启动

/usr/lib/jdk1.8.0_161/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/data/sonar/sonarqube/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:./lib/server/*:./lib/ce/*:/data/sonar/sonarqube/lib/jdbc/mysql/mysql-connector-java-5.1.42.jar org.sonar.ce.app.CeServer /data/sonar/sonarqube/temp/sq-process5887400279437001324properties

sonarqube原理与架构

sonarqube架构图

最近有学PHP的朋友想转到java(说公司要求用spring boot做项目),问我有没有什么捷径或者经验,给他一个换语言的学习指引。
看得出来,他还没有搭建自己的知识体系,我就趁机给他灌输一个观念:先要有完整的知识体系结构(或者通用中间件技术架构),然后编程语言只是工具,是可以被替换的。当然,这不是我的原创,是一些前辈告诉我的(我相信很多高手都会觉得:语言都是工具,架构模式才是关键。用java写的,用go语言、Python也可以,只是效果、代码管理、维护性的差异)。

阅读全文 »