java
文章平均质量分 64
清扬叶
这个作者很懒,什么都没留下…
展开
-
分布式算法---Paxos 算法
Paxos发布Lamport 最初在 1990 年首次发表了 Paxos 算法,选的论文题目就是“The Part-Time Parliament”。由于算法本身极为复杂,用希腊城邦作为比喻反而使得描述更为晦涩,论文的三个审稿人一致要求他把希腊城邦的故事删除掉,这令 Lamport 感觉颇为不爽,然后干脆就撤稿不发了,所以 Paxos 刚刚被提出的时候并没有引起什么反响。八年之后(1998 年),Lamport 再次将此文章重新整理后投到《ACM Transactions on Computer Sys原创 2021-09-27 17:25:08 · 233 阅读 · 0 评论 -
elastic-job作业分片算法
elastic-job作业分片策略elastic-job有以下分片策略:1. AverageAllocationJobShardingStrategy分片策略2. OdevitySortByNameJobShardingStrategy分片策略3. RotateServerByNameJobShardingStrategy分片策略并且支持还支持自定义分片策略AverageAllocationJobShardingStrategy分片策略,即基于平均分配算法的分片策略,是默认的分片策略。对应原创 2020-10-28 10:13:28 · 1546 阅读 · 0 评论 -
nginx 轮询转发请求不均衡
后端服务配置,一台116服务器用于nginx转发请求,使用轮询的负载均衡策略;两台后端API接口服务器57和117,用于处理请求。 现象背景:当对指定接口进行压力测试的时候,会出现绝大部分的请求都转发到57服务器,而117服务器上只有少量的请求。 问题定位:查看nginx的error日志发现,出现大量报错:2020/06/16 14:23:00 [error] 4950#4950: *4162133210 no live upstreams while...原创 2020-06-16 11:05:50 · 3079 阅读 · 0 评论 -
根据IP免费查询对应运营商信息
1.利用 ip138.com 获取相关信息 如:https://ip138.com/iplookup.asp?ip=88.88.88.88&action=22.www.cip.cc 如:http://www.cip.cc/8.8.8.83.淘宝接口 http://ip.taobao.com/service/getIpInfo.php?ip=18.8...原创 2020-04-21 20:23:05 · 14358 阅读 · 0 评论 -
查看进程使用的GC类型
1.查看进程使用的GC类型 查询看Java程序进程 id [root@localhost log]# ps -ef |grep java root 11740 1 1 18:56 pts/0 00:00:39 java -Djava.security.egd=file:/dev/./urandom -jar -server -Xmx8...原创 2020-04-21 20:09:22 · 2498 阅读 · 0 评论 -
Linux 运行jar包命令 java -jar xx.jar >/dev/null 2>&1 &
Linux 运行jar包命令:1.java -jar XXX.jar //当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出2.java -jar XXX.jar & //&代表在后台运行。当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。3.nohup java -jar XXX.jar & ...原创 2020-03-18 19:17:25 · 1409 阅读 · 1 评论 -
HashMap的负载因子为什么不设置成1
为什么HashMap的负载因子设置成0.75,而不是1也不是0.5?这背后到底有什么考虑?在HashMap源码中 HashMap默认容量大小是16,最大容量是2的30次方,默认的负载因子是0.75f;static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16static final int MAXIMUM_CA...原创 2020-03-11 00:00:09 · 1407 阅读 · 1 评论 -
获取本机IP
packagecom.dangdang.ddframe.job.internal.env;importjava.net.InetAddress;importjava.net.NetworkInterface;importjava.net.SocketException;importjava.net.UnknownHostException;importj原创 2017-09-07 19:03:27 · 310 阅读 · 0 评论 -
synchronized锁优化
一 、 Synchronized锁 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,下面介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。原创 2017-07-18 23:47:20 · 247 阅读 · 0 评论 -
synchronized详解
1.互斥锁 互斥锁用来保证共享数据操作的完整性。每个对象都对用于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问对象。2.synchronized的三种应用方式 a 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁; (所谓的实例对象锁就是用synchronized修饰实例对象中的实例方法,注意是实例原创 2017-07-17 00:07:57 · 291 阅读 · 0 评论 -
类加载器测试--类加载器(二)
类加载器测试1.测试加载文件路径publicclassClassloaderTest { publicstaticvoidmain(String[] args) { //启动类加载器加载类的文件 System.out.println(System.getProperty("sun.原创 2017-06-27 23:52:16 · 308 阅读 · 0 评论 -
获取post请求的数据
通常从http post请求获取数据的方法如下:1.request.getInputStream()2.request.getReader()3.request.getParameterMap()系列4.通过spring框架中的RequestBody或RequestParampublicstaticString req2RawString(HttpSer原创 2017-06-22 00:07:59 · 13585 阅读 · 0 评论 -
Class.forName()
Class.forName()源码如下:/**Returns the {@code Class} object associated with the class or *interface with the given string name. Invoking this method is * equivalent to: Class.forName(classNam原创 2017-07-02 23:01:47 · 419 阅读 · 0 评论 -
JDBC驱动类加载
1. 加载数据库启动代码: Class.forName("com.mysql.jdbc.Driver") Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.108.145/test", "root", "root"); Class.forName 方法会根据类的全路径名称去加载对应的原创 2017-07-03 10:40:48 · 581 阅读 · 0 评论 -
volatile变量的特殊规则
valatile是java虚拟机提供的最轻量的同步机制。一、特性当一个变量定义为volatile之后,它将具备两种特性 1.保证变量对所有线程的可见性。可见性是指当一个线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。volatile保证了修改的新值能立即同步到主内存,以及每次使用前立即从主内存刷新 2.禁止指令重排序优化 有volatil原创 2017-06-12 21:47:25 · 334 阅读 · 0 评论 -
双亲委派模型---类加载器(一)
类加载器: 1.启动类加载器(Bootstrap ClassLoader)。这个类加载器使用C++语言实现,是虚拟机自身的一部分。负责将存放在\lib目录中,并且是虚拟机识别的(仅按照文件名识别,如rt.jar,名字不符合的类库即使放在lib目录中也不会被加载)类库加载到虚拟机中。 2.扩展类加载器(Extension ClassLoader)。这个加载器由sun.misc.Laun原创 2017-06-25 23:06:58 · 260 阅读 · 0 评论 -
合理的配置线程池线程数
合理的配置线程池线程数要想合理的配置线程池,就必须首先分析任务特性,可以从以下几个角度来进行分析:任务的性质:CPU密集型任务,IO密集型任务和混合型任务。任务的优先级:高,中和低。任务的执行时间:长,中和短。任务的依赖性:是否依赖其他系统资源,如数据库连接。任务性质不同的任务可以用不同规模的线程池分开处理。CPU密集型任务配置尽可能小的线程,如配置Ncpu转载 2017-07-04 22:45:25 · 976 阅读 · 0 评论 -
StringBuilder 和 StringBuffer
1.StringBuilder : Instances ofStringBuilder are not safe foruse by multiple threads. If such synchronization is required then it isrecommended that{@link java.lang.StringBuffer}be used.2原创 2017-07-04 22:54:31 · 186 阅读 · 0 评论 -
RSA加密解密
public static final String KEY_ALGORTHM = "RSA";/*** 私钥解密* * @param data* @param key* @throws InvalidKeySpecException* @throws NoSuchAlgorithmException* @throws BadPaddingException原创 2017-07-06 09:19:56 · 346 阅读 · 0 评论 -
static 使用
public class StaticTest {// 静态变量 类加载时执行 只执行一次// 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便)private static int flag = 1;// 对于变量,若使用static final修饰,表示一旦赋值不能修改,并且通过类名原创 2017-06-21 23:54:50 · 532 阅读 · 0 评论