blog.hongxi.org

Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)

ConcurrentHashMap完全解析(jdk6/7,8)

并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O...

2016-10-31 08:05:29

阅读数:119

评论数:0

简述Zookeeper作注册中心

Zookeeper的数据模型很简单,有一系列被称为ZNode的数据节点组成,与传统的磁盘文件系统不同的是,zk将全量数据存储在内存中,可谓是高性能,而且支持集群,可谓高可用,另外支持事件监听。这些特点决定了zk特别适合作为注册中心(数据发布/订阅)。不过要注意网络闪断引发的节点摘除问题。 Z...

2016-10-26 12:38:23

阅读数:1

评论数:0

分布式锁的三种实现方式

分布式锁大有用途,比如用在减库存操作、流水号生成,分布式计数器等。分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那一层来挡。当大量的行锁、表锁、事务充斥着数据库的时候。一般web应用很多的瓶颈都在数据库上,这里给大家介绍的是减轻数据库锁负担的方案--分布式锁服务。本文介绍分...

2016-10-26 12:30:27

阅读数:1

评论数:0

用户态和内核态

(1)用户态和内核态的概念? --->内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序--->用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺,...

2016-10-22 14:12:50

阅读数:6

评论数:0

Integer.valueOf(int)及自动装箱内幕

  Integer为什么要提供功能与new Integer(xx)一样的valueOf(xx)方法呢,看了源代码之后,我发现了惊人的内幕。 public static Integer valueOf(int i) { assert IntegerCache.high &am...

2016-10-22 05:11:58

阅读数:6

评论数:0

23种设计模式

目录   创建型   1. Factory Method(工厂方法)   2. Abstract Factory(抽象工厂)   3. Builder(建造者)   4. Prototype(原型)   5. Singleton(单例)   结构型   6. ...

2016-10-21 00:05:04

阅读数:10

评论数:0

MySQL聚簇索引

聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但innoddb 的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。   当表有聚簇索引时,它的数据实际上存放在索引的叶子页(leaf page)中。术语‘聚簇’表示数据行和相邻的键值进错的存储在一...

2016-10-20 15:16:41

阅读数:3

评论数:0

深入JVM锁机制2-Lock

前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现。与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的。 在java.util.concurrent.l...

2016-10-20 14:42:24

阅读数:6

评论数:0

深入JVM锁机制1-synchronized

目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。    数据同步需要依赖锁,那锁的同步又依赖谁?sy...

2016-10-20 14:40:18

阅读数:3

评论数:0

Dubbo协议与连接控制

  协议参考手册 (+) (#) 推荐使用Dubbo协议 性能测试报告各协议的性能情况,请参见:性能测试报告 (+) dubbo:// (+) (#) Dubbo缺省协议采用单一长连接和NIO异步通讯,...

2016-10-18 14:50:35

阅读数:0

评论数:0

MySQL日志Undo&Redo

00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。 - 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行...

2016-10-17 23:25:09

阅读数:1

评论数:0

Redis持久存储-AOF&RDB

Redis中数据存储模式有2种:cache-only,persistence;cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为缓存中的数据持久备份到磁盘文件,在...

2016-10-17 17:18:10

阅读数:2

评论数:0

JVM问题诊断常用命令:jinfo,jmap,jstack

1.jinfo 描述:输出给定 java 进程所有的配置信息。包括 java 系统属性和 jvm 命令行标记等。 用法: jinfo [ option ] pid jinfo [ option ] executable core jinfo [ option ] [server-id...

2016-10-17 17:07:59

阅读数:2

评论数:0

算法如何开窍

【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{ public s...

2016-10-14 17:26:48

阅读数:23

评论数:0

生产环境连接池和线程池配置参考

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"> <p...

2016-10-13 05:24:23

阅读数:3

评论数:0

【转】动态字节码技术跟踪Java程序

 Whats is Java Agent?   .. java.lang.instrument.Instrumentation   之前有写 基于AOP的日志调试 讨论一种跟踪Java程序的方法, 但不是很完美.后来发现了 Btrace , 由于它借助动态字节码注入技术 , 实现优雅且功能...

2016-10-12 07:14:37

阅读数:3

评论数:0

Mysql innodb 间隙锁

前段时间系统老是出现insert死锁,很是纠结。经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现幻读,但是它会把锁定范围扩大,有时候也会给我们带来麻烦,我们就遇到了。 在数据库参数中, 控制间...

2016-10-10 20:07:32

阅读数:2

评论数:0

Java实现二分查找算法

Java程序员总该玩点基本的算法。 1、前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序 2、原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前面找,若大于中值则在中值...

2016-10-10 00:05:54

阅读数:3

评论数:0

AUTO_INCREMENT列在InnoDB里如何工作

如果你为一个表指定AUTO_INCREMENT列,在数据词典里的InnoDB表句柄包含一个名为自动增长计数器的计数器,它被用在为该列赋新值。自动增长计数器仅被存储在主内存中,而不是存在磁盘上。  InnoDB使用下列算法来为包含一个名为ai_col的AUTO_INCREMENT列的表T初始化自...

2016-10-09 23:55:46

阅读数:6

评论数:0

【转】ActiveMQ与虚拟通道

 郑重提示,本文转载自http://shift-alt-ctrl.iteye.com/blog/2065436   ActiveMQ提供了虚拟通道的特性(Virtual Destination),它允许一个逻辑通道(logical destination)映射成一个或者多个物理通道(phy...

2016-10-07 17:58:13

阅读数:0

评论数:0

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