随遇而安

随波逐流,随遇而安

额,假装这里有签名...

linux 如何更改网卡 MAC 地址

原文出处:暗无天日查看网卡MAC地址使用ip命令就能查看MAC地址了:iplinkshow${interface}2:enp0s25:<NO-CARRIER,BROADCAST,MULTICAST,UP>mtu1500qdiscfq_codelstateDOWNmodeDEFAULTgroupdefaultqlen1000link/etherf0:de:f1:ad:1d:f0brdff:ff:ff:ff:ff:ff其中 link/ether 后面那一串用 : 分割的6字节十六进制数就是网卡的MAC地址了,也就是 f0:de:f1:ad:1d:f0手工修改MAC地址使用ip命令也能修......


随遇而安 发表于2018/06/11 18:25:39 172次赏阅 0个点评

Spring Boot 自动配置的 “魔法” 是如何实现的?

原文出处:sylvanassunSpringBoot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数用户平时习惯设置的配置作为默认配置)的功能来为用户快速构建出标准化的应用。SpringBoot的特点可以概述为如下几点:内置了嵌入式的Tomcat、Jetty等Servlet容器,应用可以不用打包成War格式,而是可以直接以Jar格式运行。提供了多个可选择的”starter”以简化Maven的依赖管理(也支持Gradle),让您可以按需加载需要的功能模块。尽可能地进行自动配置,减少了用户需要动手写的各种冗余配置项,SpringBoot提倡无XML配置文件的理......


随遇而安 发表于2018/06/11 18:25:37 154次赏阅 0个点评

JDK 源码阅读 : FileDescriptor

原文出处:木杉的博客操作系统使用文件描述符来指代一个打开的文件,对文件的读写操作,都需要文件描述符作为参数。Java虽然在设计上使用了抽象程度更高的流来作为文件操作的模型,但是底层依然要使用文件描述符与操作系统交互,而Java世界里文件描述符的对应类就是FileDescriptor。Java文件操作的三个类:FileIntputStream,FileOutputStream,RandomAccessFile,打开这些类的源码可以看到都有一个FileDescriptor成员变量。注:本文使用的JDK版本为8。FileDescriptor与文件描述符操作系统中的文件描述符本质上是一个非负整数,其中......


随遇而安 发表于2018/06/07 14:52:15 1092次赏阅 0个点评

深入 Spring Boot :实现对 Fat Jar jsp 的支持

原文出处:Hengyunabcspringboot对于jsp支持的限制对于jsp的支持,SpringBoot官方只支持了war的打包方式,不支持fatjar。参考官方文档: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-jsp-limitations这里springboot官方说是tomcat的问题,实际上是springboot自己改变了打包格式引起的。参考之前的文章:http://hengyu......


随遇而安 发表于2018/06/05 09:29:53 329次赏阅 0个点评

使用 JITWatch 查看 JVM 的 JIT 编译代码

原文出处:刘正阳背景我们知道Java代码通过编译器编译成字节码,一般是class文件,有JVM的各个类加载器加载后,根据JVM的启动配置可以进行解释执行和编译执行,编译执行是由JIT(JustInTime)Compiler将字节码编译成本地代码来提高执行速度,缺点是编译本身会消耗时间并且会占用堆外空间(codecache中),但是一般Server应用内存足够且能够忍受启动时的略微缓慢。查看Java源代码对应的bytecode可以通过javap来实现。有时候我们想排查问题或者了解底层是如何实现的,就需要查看JIT编译后的汇编代码是什么样的,Hotspot提供了-XX:+PrintAssembly......


随遇而安 发表于2018/06/05 09:29:52 223次赏阅 0个点评

RocketMQ 源码学习 4 : 消息发送

原文出处:谢晞鸣1.Client端,三种发送方式RocketMQ支持常见的三种发送方式,SYNCproducer.send(msg)同步的发送方式,会等待发送结果后才返回。可以用send(msg,timeout)的方式指定等待时间,如果不指定,就是默认的3000ms.这个timeout最终会被设置到ResponseFuture里,再发送完消息后,用countDownLatch去awaittimeout的时间,如果过期,就会抛出异常。ASYNCproducer.send(msg,newSendCallback(){@OverridepublicvoidonSuccess(SendResultse......


随遇而安 发表于2018/06/05 09:29:51 204次赏阅 0个点评

linux 重要日志说明

原文出处:暗无天日从 https://linuxtechlab.com/important-logs-monitor-identify-issues/ 看到的/var/log/boot.log存储了与系统启动相关的信息。当启动有问题,或者系统莫名其妙的关机或重启,则可以查看该日志。/var/log/secure(RHEL/CentOS)&/var/log/auth.log(Debian/ubuntu)存储了与用户认证有关的信息.比如查看用户登录的信息,或者sudo命令的使用情况。/var/log/faillog记录了所有登录系统的失败尝试。/var/log/dmesg记录的是硬件/驱动......


随遇而安 发表于2018/06/05 09:29:51 122次赏阅 0个点评

深入Spring Boot :怎样排查 java.lang.ArrayStoreException

原文出处:Hengyunabcjava.lang.ArrayStoreException分析这个demo来说明怎样排查一个springboot1应用升级到springboot2时可能出现的java.lang.ArrayStoreException。demo地址:https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-ArrayStoreExceptiondemo里有两个模块,springboot1-starter和springboot2-demo。在springboot1-starter模块里,是一个简单的Health......


随遇而安 发表于2018/06/05 09:29:50 119次赏阅 0个点评

透过现象看原理:详解 Spring 中 Bean 的 this 调用导致 AOP 失效的原因

原文出处:光闪前言在我们使用Spring时,可能有前辈教导过我们,在bean中不要使用this来调用被@Async、@Transactional、@Cacheable等注解标注的方法,this下注解是不生效的。那么大家可曾想过以下问题为何致this调用的方法,注解会不生效这些注解生效的原理又是什么如果确实需要调用本类方法,且还需要注解生效,该怎么做?代理是否可以做到this调用注解就直接生效?通过本文,上面的疑问都可以解决,而且可以学到很多相关原理知识,信息量较大,那么就开始吧现象以@Async注解为例,@Async注解标记的方法,在执行时会被AOP处理为异步调用,调用此方法处直接返回,@As......


随遇而安 发表于2018/06/04 15:43:57 114次赏阅 0个点评

Service Mesh 及其主流开源实现解析

原文出处:行思錄什么是ServicemeshServiceMesh直译过来是 服务网格,目的是解决系统架构微服务化后的服务间通信和治理问题。服务网格由sidecar节点组成。在介绍servicemesh之前,我们先来看一下什么是sidecar.Sidecar在软件系统架构中特指边车模式。这个模式的灵感来源于我们生活中的边三轮:即在两轮摩托车的旁边添加一个边车的方式扩展现有的服务和功能。在绝地求生吃鸡游戏中,摩托车是无敌的,应该也与这个模式有关吧这个模式的精髓在于实现了数据面(业务逻辑)和控制面的解耦:原来两轮摩托车的驾驶者集中注意力跑赛道,边车上的领航员专注周围信息和地图,专注导航。具体到微服......


随遇而安 发表于2018/06/04 15:43:56 132次赏阅 0个点评

Http 持久连接与 HttpClient 连接池

原文出处:kingszelda一、背景HTTP协议是无状态的协议,即每一次请求都是互相独立的。因此它的最初实现是,每一个http请求都会打开一个tcpsocket连接,当交互完毕后会关闭这个连接。HTTP协议是全双工的协议,所以建立连接与断开连接是要经过三次握手与四次挥手的。显然在这种设计中,每次发送Http请求都会消耗很多的额外资源,即连接的建立与销毁。于是,HTTP协议的也进行了发展,通过持久连接的方法来进行socket连接复用。从图中可以看到:在串行连接中,每次交互都要打开关闭连接在持久连接中,第一次交互会打开连接,交互结束后连接并不关闭,下次交互就省去了建立连接的过程。持久连接的实现有......


随遇而安 发表于2018/06/04 15:43:54 80次赏阅 0个点评

Kafka 源码分析2 : Network相关

原文出处:刘正阳背景我们直接跑到最底层,看看kafka的网络层处理是怎么处理的。因为Java的NIO还是偏底层,不能直接用来做应用开发,所以一般都使用像netty的框架或者按照自己的需要封装一些nio,让上层业务不用关心网络处理的细节,只需要创建服务监听端口、接受请求、处理请求、写返回就可以了。我在看netty、thrift等涉及到网络的Java框架时比较喜欢去看他们的nio是怎么封装的,这里也是能够体现作者水平的地方。javanio的基本元素为Selector、Channel、ByteBuffer。我们从server和client两端分别分析。kafkaserver端在org.apache.......


随遇而安 发表于2018/06/04 15:43:52 84次赏阅 0个点评

numfmt : 让数字变得更容易理解

原文出处:暗无天日像 ls, df, du 这类命令都带有一个选项可以将数字直接转换成人类容易阅读的形式来展现。比如,直接执行 df 时,容量显示的是多少个块,而当用 df-h 时,容量会根据块的数量转换成G/M/K的形式。[lujun9972@T520~]$df文件系统1K-块已用可用已用%挂载点dev1900280019002800%/devrun190693286819060641%/run/dev/sda241022688236313001527785261%/tmpfs19069322620418807282%/dev/shmtmpfs1906932019069320%/sys/fs......


随遇而安 发表于2018/06/04 15:43:51 974次赏阅 0个点评

kafka 源码分析3: Producer

原文出处:刘正阳ProducerProducer是生产者的接口定义常用的方法有publicFuture<RecordMetadata>send(ProducerRecord<K,V>record);publicFuture<RecordMetadata>send(ProducerRecord<K,V>record,Callbackcallback);publicvoidflush();publicvoidclose();KafkaProducer是异步的,调用send方法后,kafka并没有立即发送给broker,而是先放在buffer缓冲池中就......


随遇而安 发表于2018/06/04 15:43:50 78次赏阅 0个点评

深入探索并发编程系列1 : 锁不慢;锁竞争慢

原文出处:Yebangyu译者按Preshing 的博客是学习并发编程的不可多得的资料,讲解比较详细。身边的很多朋友从中受益良多。我们在和作者沟通后,获得了授权,着手翻译了他的博客,刊登在这里,以飨朋友诸君。和一般的翻译不同,我们加上了独家的注释。注释要么是纠正错误,要么是辅助理解,要么是补充扩展;相信对大家会大有裨益。正文翻译:@Diting0x审校&&注释:@睡眼惺忪的小叶先森原文地址: Preshing原文锁(也叫互斥量)在很长一段时间都被误解了。1986年,在Usenet的有关于多线程的讨论会中,MatthewDillon说过:大多数人都对锁有个误解,认为锁是慢的。25......


随遇而安 发表于2018/06/04 15:43:49 37次赏阅 0个点评

kafka源码分析3 : Producer

原文出处:刘正阳ProducerProducer是生产者的接口定义常用的方法有publicFuture<RecordMetadata>send(ProducerRecord<K,V>record);publicFuture<RecordMetadata>send(ProducerRecord<K,V>record,Callbackcallback);publicvoidflush();publicvoidclose();KafkaProducer是异步的,调用send方法后,kafka并没有立即发送给broker,而是先放在buffer缓冲池中就......


随遇而安 发表于2018/06/04 15:43:48 35次赏阅 0个点评