自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(24)
  • 收藏
  • 关注

转载 Callable 与 Runnable 区别

Callable 与 Runnable java.lang.Runnable是一个接口,只有一个run()方法 public interface Runnable { public abstract void run();} run()方法的返回值是void,故在执行完任...

2019-08-20 19:17:00 738

转载 如何防止防火墙导致的数据库空闲连接断开问题

ERROR [com.alibaba.druid.util.JdbcUtils] - close connection errorjava.sql.SQLRecoverableException: IO Error: Broken pipe at oracle.jdbc.driv...

2019-08-20 18:52:00 1124

转载 GBK 与 UTF-8

GBK与UTF-8的区别: GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准。GBK编码专门用来解决中文编码的,是双字节的。不论中英文都是双字节的。支持持简体中文。 UTF-8 编码是用以解决国际上字符的一种多字节编码,它对英文使...

2019-08-17 13:53:00 1082

转载 JAVA Socket-01:可选项

Socket选项指定了Java Socket类所依赖的原生socket如何发送和接收数据。对于客户端Socket,Java支持9个选项: TCP_NODELAY SO_BINDADDR SO_TIMEOUT SO_LINGER SO_SNDBUF ...

2019-08-16 15:24:00 188

转载 NIO-02:Reactor模式(二)

Java的NIO模式的Selector网络通讯,其实就是一个简单的Reactor模型。 下面是一个典型的NIO Reactor模型原型实现。 package com.lands.nio;import java.io.IOException;import java.net.Ine...

2019-08-14 11:29:00 122

转载 NIO-02:Reactor模式(一)

Netty是典型的Reactor模型结构,关于Reactor的详尽阐释,本文站在巨人的肩膀上,借助 Doug Lea(就是那位让人无限景仰的大爷)的“Scalable IO in Java”中讲述的Reactor模式。 “Scalable IO in Java”的地址是:http://gee...

2019-08-14 11:25:00 114

转载 Disruptor-07 常见模式代码范例

public class Test { private static Logger logger = LogManager.getLogger(); @SuppressWarnings("unchecked") public static void main(String[...

2019-08-10 16:10:00 149

转载 Disruptor-06 等待策略

//..... // Construct the Disruptor with a SingleProducerSequencer Disruptor<LongEvent> disruptor = new Disruptor( ...

2019-08-10 12:40:00 443

转载 Disruptor-05 几种常用模式

吞吐量测试数据(每秒的数量)如下。 环境: - CPU:Intel Core i7 860 @ 2.8 GHz without HT - JVM:Java 1.6.0_25 64-bit - OS:Windows 7 ABQ Disru...

2019-08-10 12:31:00 385

转载 Disruptor-04 原理介绍

Disruptor通过以下设计来解决队列速度慢的问题: 环形数组结构 为了避免垃圾回收,采用数组而非链表。同时,数组对处理器的缓存机制更加友好。 元素位置定位,数组长度2^n,通过位运算,加快定位的速度。下标采取递增的形式。不用担心index溢出的问题。index是long类型...

2019-08-10 12:22:00 142

转载 Disruptor-03 共享与缓存

什么是共享 下图是计算的基本结构。L1、L2、L3分别表示一级缓存、二级缓存、三级缓存,越靠近CPU的缓存,速度越快,容量也越小。所以L1缓存很小但很快,并且紧靠着在使用它的CPU内核;L2大一些,也慢一些,并且仍然只能被一个单独的CPU核使用;L3更大、更慢,并且被单个插槽上的所有CPU...

2019-08-10 12:06:00 269

转载 Disruptor-02 锁和CAS

关于锁和CAS 保证线程安全一般分成两种方式:锁和原子变量。 例如,Thread1和Thread2都要把Entry加1。若不加锁,也不使用CAS,有可能Thread1取到了myValue=1,Thread2也取到了myValue=1,然后相加,Entry中的value值为2。这与预期不相...

2019-08-10 11:49:00 122

转载 Disruptor-01锁对性能影响

Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Mar...

2019-08-10 11:45:00 190

转载 Java的几种线程状态说明

Java的几种线程状态说明 1、NEW(新建) java.lang.Thread.State枚举中的NEW状态描述: 1 2 ...

2019-08-07 18:25:00 272

转载 Druid-由防火墙导致的数据库空闲连接断开问题

问题描述 公司一个新项目上线,处于试运行阶段,这个项目虽然是外网可访问的,故部署在了DMZ区,但试运行阶段只给了公司内少部分员工地址和账号(其中包括一些领导),故访问量很小,但项目还是挺重要的。 试运行阶段中,项目应用日志中不定期会报异常,尤其是在刚上午刚开始使用时,还有空闲一段时间后再次...

2019-08-05 14:52:00 2987

转载 简易Git工作流

写在前面的话: Linus作为造物主,不光创造了Linux,对于软件业另一个NB的贡献是花了两周的时间设计开发了Git。最近看了Linus在Google关于Git的演讲,对于Git的诞生背景与使用方式有了深刻的认识。Linus自身对于代码管理系统,考虑的3个点: 1. 分布式...

2019-07-24 20:18:00 111

转载 正确使用 Optional 解决null安全问题

Optional是Java8提供的为了解决null安全问题的一个API。善用Optional可以使我们代码中很多繁琐、丑陋的设计变得十分优雅。这篇文章是建立在你对Optional的用法有一定了解的基础上的,如果你还不太了解Optional,可以先去看看相关教程,或者查阅Java文档。 ...

2019-07-24 13:02:00 229

转载 设计的原则

【 基本原则】 • 原则 1 :保持每件事情都尽可能的简单。用最简单的解决方案来解决问题。 • 原则 2 :不要去搞一些不需要的东西,需要的时候再搞。程序员们常对自己说:“我肯定以后会需要这项额外的功能,所以现在就提前把它实现了吧”,其...

2019-07-24 10:14:00 209

转载 Synchronized 原理

一、Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Sync...

2019-07-23 20:58:00 85

转载 JVM启动参数介绍

因为Hotspot JDK提供的参数默认值,在小版本之间不断变化,参数之间也会互相影响。而且,服务器配置不同,都可能影响最后的效果。所以千万不要迷信网上的某篇文章(包括这篇)里面的参数配置,一切的配置都需要自己亲身测试一番才能用。 针对于JVM参数默认值不断变化,可以使用-XX:+Print...

2019-07-21 22:52:00 285

转载 布隆过滤器

什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。 相比于传统的 List、Set、Map 等数据结...

2019-07-21 21:41:00 92

转载 一致性Hash原理

一、前言 在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。 但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差...

2019-07-21 20:43:00 91

转载 CAP原理

分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。 分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。 本文介绍该定理。它其实很好懂,而且是显而易见的。下面的内容主要参考了 Michael...

2019-07-21 10:26:00 92

转载 最终一致性算法Gossip简介

Gossip算法因为Cassandra而名声大噪,Gossip看似简单,但要真正弄清楚其本质远没看起来那么容易。 1. Gossip背景 Gossip算法如其名,灵感来自办公室八卦,只要一个人八卦一下,在有限的时间内所有的人都会知道该八卦的信息,这种方式也与病毒传播类似,因此Go...

2019-07-21 10:14:00 282

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除