【zipkin/jaeger使用系列】dubbo v2.7.3使用zipkin进行链路监控
【go第三方框架系列】viper框架的使用
viper,”毒蛇”(国外程序员取框架名,真奇怪),是配置读取框架中比较受欢迎的一个。
linux系统下C语言程序编译过程
预处理
编译器将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
【sonarqube使用系列】sonarqubeV6.7.7的安装、使用、架构
本文参考资料
https://medium.com/@jay_56373/extending-sonarqube-static-analyzer-tool-capabilities-7b3d77a8b6a6 |
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架构图
【java框架系列】关于java学习的阶段性思考
最近有学PHP的朋友想转到java(说公司要求用spring boot做项目),问我有没有什么捷径或者经验,给他一个换语言的学习指引。
看得出来,他还没有搭建自己的知识体系,我就趁机给他灌输一个观念:先要有完整的知识体系结构(或者通用中间件技术架构),然后编程语言只是工具,是可以被替换的。当然,这不是我的原创,是一些前辈告诉我的(我相信很多高手都会觉得:语言都是工具,架构模式才是关键。用java写的,用go语言、Python也可以,只是效果、代码管理、维护性的差异)。