技术杂记
Ace佳佳佳佳佳
这个作者很懒,什么都没留下…
展开
-
HTTPS加密解密那些方案记录
众所周知:Http1.0主要是无状态无连接,浏览器每次请求都要与服务器创建TCP连接,就要三次握手四次挥手,处理完就断开。所谓无状态就是服务器不跟踪客户端也不记录请求。http1.1 连接方式从1.0的close变成了keep-alive 持久连接。避免连接建立和释放的开销,服务器必须按照客户端请求的先后顺序回送结果。不允许同时存在两个并行的响应。http2.0:二进制分帧和多路复用。...原创 2019-10-24 15:53:21 · 318 阅读 · 0 评论 -
当提到JVM类加载的时候,我们是在谈什么?
当我们提到JVM的时候,前提是我们知道啥是JVM,谈这事的基础,至少知道它是java 虚拟机。此时至少要知道什么是虚拟机,如果听说过VM ware的话,需要知道这个VM是Virtual Machine的简称,这样就知道了JVM 是全称是Java Virtual Machine。那虚拟机是干啥的呢,用Java编写的程序,计算机是没法识别出来的,它根本就不懂这门语言,那么怎么办?就要有角色给它翻译翻...原创 2019-09-16 17:45:31 · 133 阅读 · 0 评论 -
[自用向]粗略复习——线程基础(基础的不得了)
取材于网络,忘记哪些帖子惹,挺多的。主要是我自己防止自己忘记记录的。1.线程是大家比较熟悉的概念,线程和进程都有五个阶段:创建、就绪、运行、阻塞、终止。多线程即一个程序有多个顺序流在执行。实现的方法 有三种:Thread、Runnable 和 Callable接口与Future、线程池结合。2.首先说java.lang.ThreadThread类,是很方便的一种,使用起来很快速,如果...原创 2019-09-16 11:38:59 · 144 阅读 · 0 评论 -
Maven项目中Scala项目打包后不存在的解决办法
Scala文件在package之后没有出现在target里,进入jar包看一下,发现只有java的编译文件,却没有scala编译文件,这里要修改一下pom.xml,增加插件。<!-- scala编译插件 --> <plugin> <groupId>net.alchim31.maven</groupI...原创 2019-04-17 17:37:38 · 2624 阅读 · 0 评论 -
用大数据报异常: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
用Spark或者Hbase可能会报这个错误,这个不影响流程,但是很烦,所以探究原因是HADOOP_HOME_DIR值为nul了,也就是环境变量的问题,这个问题普遍出现在windows调试的过程中。解决这个问题:可以下载:hadoop 2.2.0 : https://github.com/srccodes/hadoop-common-2.2.0-bin 或者hadoop 2.6.0 : ht...原创 2019-04-17 16:11:47 · 296 阅读 · 0 评论 -
解决 /etc/sudoers is world writable
linux系统中,etc文件夹下的sudoers文件是我们常用sudo指令的配置文件。我们可能会通过修改sudoers去修改指令。但是如果修改不当则会出现以下情况:sudo:sudo /etc/sudoers is world writablesudo:no valid sudoers sources found ,quittingsudo:unable to initialize pol...原创 2019-04-15 18:19:07 · 19125 阅读 · 3 评论 -
解决运行docker命令要用sudo的问题
Q:首先说一下问题是怎么出现的?A:Docker的守护线程绑定的是unix socket,而不是TCP端口,这个套接字默认属于root,其他用户可以通过sudo去访问这个套接字文件。所以docker服务进程都是以root账户运行。解决的方式是创建docker用户组,把应用用户加入到docker用户组里面。只要docker组里的用户都可以直接执行docker命令。可以先通过指令查看是否有用户组...原创 2019-04-08 16:24:27 · 936 阅读 · 0 评论 -
通过Shell命令-监视一个进程或端口,挂掉后自动重启,并自定义日志
1.问题的产生主要是因为某些内存问题,kylin总是自动挂掉。排查后发现因为多任务执行会占用很大内存,oom killer可能会因为内存不足了,把内存占用大的或者增长快的给自动kill掉。所以这边做了一些处理,写了一个自动重启。2.针对进程名processExist=`ps aux|grep kylin |grep -v "grep"` if [[ -z $processExist ]]...原创 2019-04-10 11:32:38 · 1658 阅读 · 0 评论 -
2.JVM垃圾收集器与内存分配策略
JVM垃圾收集器与内存分配策略Java的程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;(生命周期)这几个区域的内存分配和回收都具备确定性,因为方法结束的时候,内存就跟着回收了。Java堆和方法区和他们不同,我们只有在程序运行期间才能知道会创建哪些对象,这部分内存的分配和回收是动态的!如何判断对象是否存活?1.引入技术算法给对象添加一个引用计数器,每当有一个地方引用他们的时候,计数器转载 2017-03-25 21:42:11 · 267 阅读 · 0 评论 -
1.学习虚拟机:运行时数据区域
虚拟机:运行时数据区域1.程序计数器:线程私有,是一块较小的内存空间,看成是当前线程所执行的字节码行号指示器。多线程是通过线程轮转分配处理器执行时间的。为了线程切换之后能恢复到正确的执行位置,每个线程都需要一个行号指示器。2.虚拟机栈:线程私有,生命周期与线程相同,每个方法执行的时候回创建一个栈帧,储存局部变量表、操作数栈、动态链接、方法出口balabala…每个方法从调用直到执行完成的过程,对原创 2017-03-25 10:33:33 · 304 阅读 · 0 评论