- 博客(41)
- 收藏
- 关注
原创 zipkin-go学习之report-http
zipkin-go的report支持多种传播方式,比如:http,RabbitMq,kafka,log等方式。此文着重了解http-report的使用方式github地址:https://github.com/openzipkin/zipkin-go源码路径为:reporter/http/http.go1.report的创建此步主要进行report的一些初始化设置,并创建两个goroutine来处理请求发送func NewReporter(url string, opts ...Reporter
2020-12-31 15:20:50
519
原创 zipkin-go学习之httpserver
最近打算学习zipkin的使用,所以写此文记录一下zipkin在httpserver简单使用。官方github地址:https://github.com/openzipkin/zipkin-go此文根据官方示例代码进行分析,示例文件名称:example_httpserver_test.go以下为具体流程分析:1.创建NewReporterreporter := logreporter.NewReporter(log.New(os.Stderr, "", log.LstdFlags)) defer
2020-12-29 17:48:01
718
原创 java获取linux主机中英伟达GPU状态信息(通过nvidia-smi命令)
由于业务需要获取服务器显卡信息来分配资源,所以打算新增接口来响应GPU信息。 百度许久发现没有直接获取相关信息的工具包,有 oshi 包可以用来获取服务器内存,硬盘等基本信息,但是可惜不支持GPU信息获取;间间获取的方法都是通过bash执行nvidia-smi命令然后截取字符串解析。不过这种方法很不灵活,后来通过查看api,发现nvidia-smi命令可以直接输出xml格式文本,通过xml可以直观的解析GPU信息与进程信息。具体实现如下: 1. 通过 nvidia-s...
2020-11-06 16:37:39
3265
1
原创 Ubuntu 16.04.6运行GitBook书籍(Go语言圣经)
最近打算学习一下go语言,了解之后打算通过go语言圣经学习,继而了解到了GitBook,为了加深学习打算在自己的服务器上发布该书籍服务。GitBook是一个命令行工具(和Node.js库),用于使用GitHub / Git和Markdown(或AsciiDoc)构建漂亮的书。这是一个示例:学习Javascript。官方github:https://github.com/GitbookIO/gitbook部署机器为阿里云主机,系统为Ubuntu 16.04.6,接下来就开始了GitBook发布之路:
2020-05-26 11:42:50
411
原创 ProcessBuilder的使用(执行多行命令,实时获取日志)
ProcessBuilder用来创建操作系统进程,可以在指定位置,执行指定命令。这里通过process实现java执行shell,python脚本的功能。1.通过ProcessBuilder执行多行命令由于需要在命令中设置Path,试了多种方式后,使用cmd/bash封装为一整个命令实现,其中windows环境下使用cmd,linux环境下使用/bin/bash。windows代码如下:多行命令通过分号分割List<String> commandList = new Array
2020-05-11 16:04:44
9149
原创 服务性能测试和内存监控
在项目框架搭建好后,决定测试一下服务的性能,并测试一下是否存在内存泄漏等问题,所以决定开始测试之路。因为第一次搞,所以也是在摸索中前行。最后选择Jmeter作为服务性能测试工具,使用Jconsole作为内存监控工具。1.jmeter的使用下载地址:https://jmeter.apache.org/download_jmeter.cgi选择版本下载即可,顺便下载插件包,地址:https...
2020-04-26 10:17:54
589
原创 谷歌浏览器插件推荐
1.Nimbus 截屏 & 屏幕录像机---功能强大提供方便的全屏幕截屏和录制功能,并且提供了网页对截屏进行编辑具体功能列表如下:2.Charset修改网站编码,可解决由于编码引起的乱码问题,小巧简洁。3.Dark Reader一个护眼扩展程序,通过实时生成黑色主题,为每一个网站启用夜间模式。4.Custom Cursor for Chrome™ -...
2020-04-20 17:23:54
453
原创 spring初始化后获取自定义注解bean
目的是通过注解将特定类的信息(如接口编号)与类关联,之后可通过接口编号获取对应bean来执行对应逻辑。1.新建注解类:@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Servicepublic @interface ServiceCode {...
2020-04-01 11:27:41
1898
原创 Windows单电脑部署Consul集群
1.下载Consul-windows版本。下载地址:https://www.consul.io/downloads.html选择对应的windows版本即可。2.准备配置文件,其中包括三个server和一个client,注意其中node_name 需唯一,ui指定是否启动可视化页面,server区分server与clientserver1:{ "datacenter"...
2020-03-24 16:42:58
869
3
原创 SpringMVC原理(请求流程分析)
SpringMVC最主要的类为DispatcherServlet,包名为org.springframework.web.servlet。该类继承于FrameworkServlet,FrameworkServlet的类图如下:即本质上FrameworkServlet也是一个Servlet,特别的是这个Servlet对应的URI为*,所有的context path下的请求都会在这个Serv...
2020-03-02 16:46:35
194
原创 了解jdk源码-atomic和locks包
1.原子操作类包路径:java.util.concurrent.atomic基础类其中包括:布尔类型-AtomicBoolean,整形类型-AtomicInteger,浮点类型-AtomicLong,引用类型-AtomicReference。其主要理念:由volatile修饰value保证可见性和有序性,使用unsafe进行CAS操作实现原子性操作。其中主要方法getAndS...
2020-02-26 15:12:30
219
原创 Python3.8版本 Twisted-19.10.0-cp38-cp38-win_amd64.whl 文件分享(安装Scrapy报错)
在使用python3.8安装Scrapy时,由于无依赖包twisted报错,离线下载其依赖时由于网络十分缓慢,百度发现无3.8版本分享,特意下载后分享。百度网盘分享链接:链接:https://pan.baidu.com/s/1MeH8uzeaLCMfLFN66AUkJg提取码:nshj如果失效,可以在评论区提醒,我看到之后会更新资源。...
2020-02-23 11:49:37
7369
24
原创 git的简单使用
1.下载代码git clone ssh://git@服务器ip:端口/项目路径.git2.进入创建的项目文件夹cd 项目名3.切换分支git checkout 分支(我使用的项目一般都是dev)4.更新代码git pull5.创建自己的分支git remote add 账号 ssh://git@ip:端口/账号/工程名.git 地址是...
2018-11-05 16:29:05
139
原创 nginx基本使用方法
1.下载链接 http://nginx.org/en/download.html2.解压后修改conf下的nginx.conf来适应自己的服务器events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream...
2018-01-29 11:03:11
428
原创 Spring-MVC中的上传和下载
1.配置pom.xml commons-fileupload commons-fileupload 1.3.1 commons-io commons-io 2.4 2.配置MultipartResolvername="multipartResolv
2018-01-29 10:42:47
140
原创 Spring-MVC基础(1)
1.核心组件: 1.DispatcherServlet: 前端控制器,用来过滤客户端发送过来,想要进行逻辑处理的请求。2.Controller/Headler: 控制器/处理器。开发人员自定义,用来处理用户请求的,并且处理完成之后返回给用户指定视图的对象。3.HandlerMapping: 处理器映射器。DispatcherServlet接收到客户端请求
2018-01-29 10:17:56
191
原创 Spring的基本使用配置
1.在web.xml中配置spring容器的监听器和配置文件的路径。 <!--ContextLoaderListener实现ServletContextListener监听器接口,而ServletContextListener只负责监 听Web容器的启动和关闭的事件。RequestContextFilter实现ServletRequestListener监听器接口,该监听器 监听HTTP
2018-01-29 09:51:41
214
原创 Spring----AOP
1.Advice 分为四种: Before Advice,需要extends BeforeAdvice。重写void before(Method m, Object[] args, Object target) throws Throwable;After advice,需要extends Advice。重写void afterReturning(Object returnValue, Meth
2017-11-11 10:30:07
195
原创 Spring动态代理中有什么方法不会被代理探究
JDK代理中 会代理对象中的所有方法,对于Object中继承的方法,会代理toString方法,但是不会代理equals,hashCode,getClass方法。 原因在于在Spring中的JdkDynamicAopProxy类中的invoke方法执行时会判断 if ((!this.equalsDefined) && (AopUtils.isEqualsMethod(method)))
2017-11-11 09:58:14
1840
原创 Spring---IOC(控制反转+依赖注入)
1.setter方式注入(依赖于无参构造器) A。基本类型public class HelloBean {private String name;private int age;public String sayHello(){return "hello "+name +",your age is" + age;}.............}配置文件applicationConte
2017-11-11 09:16:56
180
原创 Servlet总结(2)
1.servlet中的服务器内部跳转和客户端重定向 服务器内部跳转:String url = "/hello.html"; request.getRequestDispatcher(url).forward(request, response);特点:需要使用request对象来完成,不会改变浏览器地址栏。客户端重定向:String url = "hello.html";
2017-10-26 10:16:40
233
原创 Java Servlet总结(1)
1.软件tomcat tomcat路径作用: backup–配置文件的简单备份 bin–可执行文件的放置,如启动和停止tomcat,以.sh结尾的代表Linux下的命令;以.bat结尾的代表Windows下的命令 conf–配置文件,context.xml可以用来配置数据源之类的东西。logging文件记录tomcat服务器运行的日志记录。server.xml可以设置域名、端口号、IP、请求
2017-10-26 09:39:50
255
原创 java总结
java的优点 跨平台特性(java程序编译为字节码文件在JVM中运行)垃圾回收机制注释 单行注释 //多行注释 /* */文档性注释 /* /标识符(类,方法和变量的名字) 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头区分大小写没有长度限制保留字–goto,const(不是关键字但是不能当作标识符
2017-10-10 11:22:56
231
原创 Mybatis基础
Mybatis是简化和实现了 Java 数据持久化层(persistence layer)的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。要使用这个框架首先就要导入mybatis的架包,而mybatis底层是封装JDBC的方法,所以还需要导入Jdbc的架包,当导入了架包,就可以开始mybaits的配置了。 首先是一个mybatis的配置文件,类型为下 注意:
2017-09-23 16:59:53
302
原创 JDBC基础
1.注册驱动,用来让虚拟机和数据库进行交流,jdbc中会有一个池,里面存放所有的驱动,但是默认池中是空的,所以需要先注册一个关于oracle的驱动放置到池中,然后才能得到这个驱动来完成虚拟机与数据库的交流,注册驱动有三种方法:a,在oracle.jdbc.driver.OracleDriver 静态代码块 能完成注册驱动Class.forName("oracle.jdbc.driver.Oracl
2017-09-23 10:53:48
296
原创 SQL--基础语句2
列名 数据类型 默认值 约束 create table customer( id number(7) primary key, name char(25) not null, phone varchar2(20) unique )删除表 drop table customer主键约束可以写在列后,也可以写在所有列之后。列级约束和表级约束 primary
2017-09-13 11:56:49
217
原创 SQL---基础语句select
SQL语句分类: 数据查询语言 Date Query Language,DQL.负责数据查询而不会对数据本身进行修改的语句,核心指令是select,辅助指令from,where,group by和order by. 数据定义语言 Date Definition Language,DDL.负责数据结构定义与数据库定义的语言,由create,alter,drop三个语法组成. 数据操纵语言
2017-09-13 11:50:46
246
原创 XML---解析
本文介绍三种xml文件的解析方法,Dom解析,SAX解析,Dom4j解析。 1.Dom解析 Dom解析是javax下的一种xml解析方法 解析过程如下:package parseXML;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.
2017-09-13 11:26:54
259
原创 XML--语法
1.文档声明: XML文件的后缀为.xml XML文件要求文件有一个头部声明:<?xml version="1.0" encoding="UTF-8"?>表示当前文件是xml文件,版本为1.0,编码方式为UTF-82.元素: 每个xml文件必须有且只有一个根元素,根元素是一个完全包括文件中所有其他元素的元素。 xml元素是指文件中出现的标签,一个标签分为开始标签和结束标签,有两种书写形式:
2017-09-13 11:08:31
238
转载 java异常捕获的一点感悟
感谢原作者的分享:http://blog.youkuaiyun.com/salerzhang/article/details/46581457下面的代码时Thinking in java中的一个题目。问会输出什么? class Annoyance extends Exception {} class Sneeze extends Annoyance {} class Human { public sta
2017-08-24 20:01:53
217
原创 java-----I/O流
按照不同分类,大致可以分为输入流,输出流;字节流,字符流;包装流,基本流。 其中输入流大致可以看做InputStream,基本方法为read(),read(byte []),read(byte [],int off ,int len). 需要特别注意:read()返回下一个数据字节;如果到达流的末尾,则返回 -1。 read(byte [])返回读
2017-08-20 16:01:34
283
原创 java-----建立对象时代码执行顺序
如果之前没有进行类加载 1.类加载,(java -cp xx.xx.xx,Class.forName/load) 同时初始化类中静态的属性(赋默认值) 2.执行静态代码块(只执行一次,属于类) //如果之前做过类加载,从第三步开始执行 3.分配内存空间,同时初始化非静态的属性(赋默认值) 4.调用父类构造器 5.父类构造器执行完后,如果自己声明属性的同时有显示的赋值,那么进行显示赋值把
2017-08-20 15:21:29
262
转载 java-----内部类
Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正。 请尊重作者劳
2017-08-20 15:15:14
272
原创 java-----基础(2)
数组:数组的建立有四步,声明(类型,名字)—-创建(开辟内存空间)——赋值(必须符合类型)—–使用 注意数组是一个对象;数组的初始容量为0。 数组复制 system.arraycopy(maArray,0,hold,0,myArray.length) 数组的遍历 foreach在传递基本数据类型时,传递的是数据值。而在传递引用类型时,传递的是该引用,即该数据的存放地址。值传递和引用
2017-08-12 13:06:17
222
原创 java ---基础(1)
java的优点:摆脱了平台的限制,实现了“一次编写,到处运行”。 提供一个相对安全的内存管理和访问机制。(垃圾回收,代码安全验证) 完善的应用程序接口,无数的第三方类库,快速开发。 标识符:类,方法,变量的名字都是标识符。 可以字符和下滑线”_”和”$”开头。
2017-08-12 12:44:55
223
原创 线程 -----基础
进程是操作系统分配资源的最小单元,而进程是由很多线程组成的,其中线程拿到CPU资源执行的时间间隔叫时间片,以纳秒为单位。线程是程序执行流的最小单元。 线程有新建状态,可运行状态,运行状态,阻塞状态,死亡状态。 新建状态就是实例化了线程,但是还没有开始运行,也就是没有start(); 可运行状态指线程开始运行但没有拿到Cpu执行权在等待CPU执行权的状态 运行状态指线程开始运行并拿到CPU执行
2017-08-11 16:38:26
273
原创 反射 ---基础
反射是在只知道类的名字和路径的情况下,通过反射获取类中的属性,构造器,方法,并创建该类的对象,使用其中的方法。 反射可以分为 步:创建字符串(内容为类的路径)———- String s=”com.reflection.Test” 使用Class.forName得到该类的类——— Class c =Class.fo
2017-08-11 13:11:51
205
原创 集合-----Map (3)
Map称为键值对,也叫映射。主要存储时分为key和value,其中key就相当于数组的下标,用来查找和定位value,key值不可重复,无序,每个key只能映射一个value。而value可以重复,map中对value不关心。 Map可以分为Hashmap,Hashtable和TreeMap。Hashmap默认容量为16,允许使用 null 值和 null 键。HashMap 的实例有两个参数影响
2017-08-11 11:07:13
220
原创 集合---List (2)
List可以分为ArrayList,LinkedList,Vector等分支。List的特性是可重复数据,有序。ArrayList的底层实现是数组,默认容量为10,当需要扩容时,会变为原来容量的1.5倍。因为是数组实现,ArrayList适合查找数据。/** * Default initial capacity. 默认容量为10 */
2017-08-11 10:30:21
278
原创 集合---- Set (1)
集合分为两大类:单值集合和键值对。 其中单值集合分为Set和List 。 键值对则为Map。 Set的特性为不可重复,无序。List的特性为可重复,有序。 1.Set有HsahSet,TreeSet等分支,两者都是不可重复的,为了确保无重复数据,在存入时,HashSet和TreeSet都会先使用HashCode来查看两者是否有相同哈希值,如果哈希值相等,则使用Equals方法比较。这样的方
2017-08-11 10:05:11
362
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人