
开源
明月(Alioo)
一个在互联网行业浪迹多年的IT民工,集闷骚与博爱于一身,擅长JAVA,喜欢折腾Linux,热衷于研究各类B/S系统。对各类新奇技术保持极大的热情,行迹诡异,早年经常流窜于移动互联网领域,现藏身于朝林阑珊处。
技术债不能欠,健康债更不能欠, 求道之路,与君同行。
展开
-
Log4j2 精典配置
Configuration 节点上非常重要的一个属性 monitorinterval=”10”表示每10秒检测1次配置文件的变化 配置文件的思想是将依赖jar包的关键日志信息输出到日志文件frame-output.log.%i 本工程下的日志输出到日志文件proj-output.log.%i<?xml version="1.0" encoding="UTF-8"?><...原创 2017-12-11 18:28:15 · 1338 阅读 · 0 评论 -
Maven根据一个现有的项目创建模板
1.首先需要一个现成的项目,预览一下$ ll /Users/didi/work/git/land-server total 56 drwxr-xr-x 17 didi staff 544 7 17 20:35 . drwxr-xr-x 16 didi staff 512 7 9 14:40 .. drwxr-xr-x 15 didi staff 480 ...原创 2018-07-17 21:09:48 · 1862 阅读 · 0 评论 -
一次ajax调用,却发送了二次http请求(一次为请求方法为option,一次为正常请求)
直接上证据,截图来自于chrowm浏览器-开发者工具-network 会发现其中一次请求 Method是OPTIONS 另外一次是正常请求 原因如下: 浏览器对复杂跨域请求的处理,在发送真正的请求前, 会先发送一个方法为OPTIONS的预请求(preflight request), 用于试探服务端是否能接受真正的请求,如果options获得的回应是拒绝性质的,比如404\403...原创 2018-09-04 14:13:53 · 7994 阅读 · 0 评论 -
一致性 Hash 算法(分布式或均衡算法)
简介:一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。场景引入:比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 ...转载 2018-10-08 13:37:50 · 2558 阅读 · 0 评论 -
程序计数器(关于java虚拟机内存的那些事)
什么是程序计数器?程序计数器是一块 较小 的内存空间,它可以看做是当前线程所执行的字节码的 行号指示器 ;在虚拟机的概念模型里(仅仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳准、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成 ;———–摘抄自 周志明版 《深入理解java...转载 2019-04-23 19:56:36 · 355 阅读 · 2 评论 -
supervisor入门教程|安装|启动|实战环节
supervisor是什么是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制许多进程(官方解释)。简单点来讲,就是一个监控脚本运行的工具,不过他可以统一化管理,laravel的队列文档上也有相关使用方式方法,例如:定时脚本的启动、重启、关闭和日志监控swoole的启动、重启、关闭和日志监控 (众所周知,swoole大部分的特性都只能在cli中运行)redis的启动、重启...原创 2019-04-25 11:54:07 · 1178 阅读 · 0 评论 -
kafka搭建后zookeeper节点上的变化
具体搭建步骤参见官网文档:http://kafka.apache.org/quickstart启动zookeepernohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &说明:启动zookeeper后,只有/zookeeper/quot...原创 2019-05-17 14:37:57 · 1151 阅读 · 0 评论 -
《MySQL实战45讲》读后感 21|为什么我只改一行语句,锁这么多
在上一篇文章中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。所以今天,我们就先从这个加锁规则开始吧。首先说明一下,这些加锁规则我没在别的地方看到过有类似的总结,以前我自己判断的时候都是想着代码里面的实现来脑补的。这次为了总结成不看代码的同学也能理解的规则,是我...转载 2019-05-23 11:03:16 · 320 阅读 · 0 评论 -
从实际案例聊聊Java应用的GC优化
当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: 优化前准备: 简单回顾JVM相关知...转载 2018-03-19 11:56:48 · 1939 阅读 · 0 评论 -
缓存雪崩,缓存穿透,缓存击穿,解决方案分析
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存雪崩缓存雪崩是指在我们设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。解决方案缓存失效时的雪崩效应对底层系统的冲击非常可怕。大多数系统设计者考虑用加锁或者队列的方式保证缓存的单线 程(进程)写,从而避免失效时大量的并发请求落到底层存储...转载 2018-03-12 11:53:58 · 316 阅读 · 0 评论 -
一个IT老兵也想为IT做点贡献/FormatEveryThing(For Sublime Text Plugin)
这个需求是很明确的,我们目前很多研发兄弟都在使用sublime text,关于sublime text的数据格式化插件非常多,每次格式化一段json或者xml都需要先将文本标记成某一种特定的数据格式或者保存成对应的后缀文件(比如.json,.xml),才能使用相应数据格式的快捷键进行格式化,而实际情况可能是目前剪贴板上有一段数据需要格式化(以更加友好的形式)进行查看,所以我开发了这个基于语义的智能格原创 2017-11-23 21:38:58 · 255 阅读 · 0 评论 -
ReadWriteLock几点特性
ReadWriteLock几点特性readLock 与 readLock 不互斥 readLock 与 writeLock 互斥 writeLock 与 readLock 互斥 writeLock 与 writeLock 互斥举例来说: 线程1, 先拿到readLock, 线程2试图拿readLock, 可以拿到 线程1, 先拿到readLock, 线程2试图原创 2018-01-22 14:25:26 · 313 阅读 · 0 评论 -
分布式锁实现方案2、基于Redis的SET操作实现的分布式锁
继上一篇文章 分布式锁实现方案1、基于Redis的SETNX操作实现的分布式锁 实现方案之后,redis又提供了更加强大的set方法,可以解决分布式锁实现方案1中提到的缺陷,直接看代码package com.alioo.lock;import com.jd.jim.cli.Cluster;import java.util.concurrent.TimeUnit;/** * *原创 2018-01-22 18:24:54 · 803 阅读 · 1 评论 -
jDK java 历史版本下载链接
jDK java 历史版本下载链接jDK java 历史版本下载链接不是很好找的,特整理一下供需要之时使用官网下载需要1个oracle帐号,没有的话可以注册1个即可 http://www.oracle.com/technetwork/java/javase/archive-139210.html http://www.oracle.com/technetwork/java/javase原创 2018-01-16 18:37:47 · 589 阅读 · 0 评论 -
带你走进tbschedule的世界
原文都是通过PPT写的,所以导出成png格式的了原创 2018-01-18 18:27:01 · 296 阅读 · 0 评论 -
第二章 ZAB协议介绍
第二章 ZAB协议介绍 ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法。 ZAB 协议并不像 Paxos 算法那样,是一种通用的分布式一致性算法,它是一种特别为 ZooKeeper 设计的崩溃可恢复的原子消息广播算法。 ZAB协议主要实现了: 1.使用一个单一的主进程来接收转载 2018-01-30 10:09:58 · 249 阅读 · 0 评论 -
Spring、SpringMVC父子容器关系
Spring、SpringMVC父子容器关系常规配置代码 <!-- listeners --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </...原创 2018-03-15 17:45:41 · 385 阅读 · 0 评论 -
NGINX location 在配置中的优先级
location表达式类型~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。 = 进行普通字符精确匹配。也就是完全匹配。 @ 它定义一个命名的 location,使用在内部定向时,例如 error_page, try_fileslocation优先级说明在ngi...转载 2018-02-24 15:45:44 · 388 阅读 · 0 评论 -
在Java里体验一把协程Quasar
在还没有协程的时代操作系统产生一个进程,进程再产生若干个线程并行的处理逻辑,线程的切换由操作系统负责调度。每个线程都有自己的栈栈是否有一些默认值?的确有默认值,不同的虚拟机不同的平台是不同的,想了解的可以看这里 https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html#wp1...原创 2019-09-19 19:50:49 · 725 阅读 · 0 评论