自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(138)
  • 收藏
  • 关注

转载 C++ and the Perils of Double-Checked Locking

C++ and the Perils of Double-Checked Locking Scott Meyers and Andrei AlexandrescuSeptember 2004Multithreading is just one damn thing after, before, or simultaneouswith another.1 Introduction

2016-06-02 20:15:33 480

转载 C/C++(&Java) Volatile关键词深度剖析

背景前几天,发了一条如下的微博 (关于C/C++ Volatile关键词的使用建议): 此微博,引发了朋友们的大量讨论:赞同者有之;批评者有之;当然,更多的朋友,是希望我能更详细的解读C/C++ Volatile关键词,来佐证我的微博观点。而这,正是我写这篇博文的初衷:本文,将详细分析C/C++ Volatile关键词的功能 (有多种功能)、Volati

2016-05-30 17:15:51 2455

转载 MySQL 加锁处理分析

原文地址见:http://hedengcheng.com/?p=771 背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思

2016-05-30 15:29:08 545

转载 CQRS(Command Query Responsibility Segration)

来自http://www.cnblogs.com/netfocus/p/4055346.htmlCQRS架构简介前不久,看到博客园一位园友写了一篇文章,其中的观点是,要想高性能,需要尽量:避开网络开销(IO),避开海量数据,避开资源争夺。对于这3点,我觉得很有道理。所以也想谈一下,CQRS架构下是如何实现高性能的。关于CQRS(Command Query Responsib

2016-01-12 15:45:55 1765

转载 ESB产品架构之事务管理

1  概述       在企业内事务在所有的业务交互几乎都是需要的,作为一个业务交易集中者的ESB有时也不得不面对这个问题。ESB是所有企业服务的集中者,它面对的是多种的异构的系统,由此会遇到了非常大的挑战性。大都多的情况下,我们建议如果不是业务上非常的必要,最好不要使用事务,因为在ESB的环境下,事务是一个非常昂贵,他会占用大量的资源。 2    ESB事务的特性

2015-03-04 11:10:59 1004

转载 新浪微博CacheService架构浅析

微博作为国内最大的社交媒体网站之一,每天承载着亿万用户的服务请求,这些请求的背后,需要消耗着巨大的计算、内存、网络、I/O等资源。而且因为微博的产品特性,节假日、热门事件等可能带来突发数倍甚至十几倍的访问峰值,这些都对于支撑微博的底层基础架构提出了比较严苛的要求,需要满足:每秒数十万的用户请求数据更新的实时性服务请求的低响应时间99.99%以上的服务可用性为了满足业

2015-03-03 14:19:52 678

转载 Netty与Reactor模式

一:Netty、NIO、多线程?时隔很久终于又更新了!之前一直迟迟未动也是因为积累不够,后面比较难下手。过年期间@李林锋hw发布了一个Netty5.0架构剖析和源码解读 http://vdisk.weibo.com/s/C9LV9iVqH13rW/1391437855,看完也是收获不少。前面的文章我们分析了Netty的结构,这次咱们来分析最错综复杂的一部分-Netty中的多线程以及NIO的

2015-02-10 18:12:21 603

转载 AbstractQueuedSynchronizer的介绍和原理分析

简介提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并需要实现它的方法来管理其状态,管理的方式就是通过类似acquire和release的方式来操纵状态。然而多线程环境中对状态的操纵必须确保原子性,因此子类对于状态的把握,需要使用这个同

2015-02-06 18:49:19 645

转载 总结一下内存泄漏的几个点

from  http://michael-softtech.iteye.com/blog/748260今日部署tomcat的时候提示thread local 可能引起内存泄漏,于是研究了一下在java中可能引起内存泄漏的一些点,简单写一下 内存泄漏,在我看来大体有两个原因。一是本身就是跟操作系统紧密相关的资源型对象,在使用的时候要比较小心,不然容易引起泄漏。比如:

2015-01-31 10:28:55 718

转载 GC

如何判断垃圾对象?垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理。引用计数(ReferenceCounting)算法这种方法比较简单直观,FlashPlayer/Python使用该算法,简单高效。核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该对象没有被引用,可以被回收。但是,Java/C#并不采用该算法,因为该

2015-01-27 18:23:48 593 1

转载 ConcurrentHashMap Segment&HashEntryLinkedList

ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHas

2015-01-26 15:31:16 1279

转载 Dubbo基本原理机制-超时、注册

from: http://blog.csdn.net/paul_wei2008/article/details/19355681Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况分析源代码,基本原理如下:client一个线程调用远程接口,生成一个唯一的ID(比如一段随机字符串,UUID等),Dubbo是使用Atomi

2015-01-15 14:29:54 2349

转载 memcached缓存批量更新解决方案探讨

众所周知,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。 俺所在的公司经营的主要是基于web和wap两个平台的手机游戏门户网站,分布式缓存解决方法正好有用武之地,多平台共享使用memcache缓存数据 (php+mysql+memcache),确实很大程度的缓解访问量过大对数据库的压力。但是,在享受便利的同时,同样也遇到相信对大多数 memc

2015-01-14 16:49:05 927

原创 head first dubbo

1.resources:      https://github.com/alibaba/dubbo 2.userGuide     http://alibaba.github.io/dubbo-doc-static/Developer+Guide-zh.htm

2015-01-09 17:07:10 427

原创 virgo in eclipse

user-guide :  http://www.eclipse.org/virgo/documentation/virgo-documentation-3.6.2.RELEASE/docs/virgo-tooling-guide/html/index.html

2015-01-09 17:04:07 841

原创 memcache memory release

1、flush_all命令只是将记录置为过期,并不会释放内存空间(This command does not pause the server, as it returns immediately. It does not free up or flush memory at all, it just causes all items to expire.) 2、memcache没有监视记

2015-01-09 17:00:27 523

转载 Vector Clock算法的理解

Vector Clock是Amazon’s Dynamo用来捕捉同一不同版本的对象的因果关系的一种算法。根据Dyanmo paper的描述,矢量时钟实际上是一个(node,counter)对列表(即(节点,计数器)列表)。矢量时钟是与每个对象的每个版本相关联。通过审查其向量时钟,我们可以判断一个对象的两个版本是平行分枝或有因果顺序。如果第一个时钟对象上的计数器在第二个时钟对象上小于或等于其他所有节

2015-01-09 16:55:55 784

转载 [转]NoSQL数据库笔谈

NoSQL数据库笔谈databases , appdir , node , paper颜开 , v0.2 , 2010.2序思想篇CAP最终一致性变体BASE其他I/O的五分钟法则不要删除数据RAM是硬盘,硬盘是磁带Amdahl定律和Gustafson定律万兆以太网手段篇一致性哈希亚马逊的现状算法的选择Quorum

2015-01-09 11:27:01 1251

转载 JDK中设计模式

本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图。首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助。一、设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)适应软件不断变化二、学习JDK中设计模式的好处(1)借鉴优秀代码的设计,有助于提高代码设计能力(2)JDK的设计中体现了大多数设计模式,

2015-01-08 15:48:20 709

转载 无锁HashMap的原理与实现

在《疫苗:Java HashMap的死循环》中,我们看到,java.util.HashMap并不能直接应用于多线程环境。对于多线程环境中应用HashMap,主要有以下几种选择:使用线程安全的java.util.Hashtable作为替代。使用java.util.Collections.synchronizedMap方法,将已有的HashMap对象包装为线程安全的。使用java.

2015-01-08 13:09:51 2402

转载 buffer&cache

A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.也就是说buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据

2015-01-04 10:55:53 388

转载 vmstat命令详解

一、前言vmstat命令:  用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况二、虚拟内存运行原理在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的

2014-12-31 11:24:56 382

转载 [转]高性能I/O设计模式Reactor和Proactor

两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理的事件及其事件处理器(或回调函数);事件分离器负责将请求事件传递给事件处理器。两个与事件分离

2014-12-26 15:01:42 425

转载 [转]设计模式在Java I/O中的应用(装饰模式和适配器模式)

在Java语言的IO库的设计中,使用了两个结构模式,即装饰模式和适配器模式,本章就围绕这两个模式讨论Java的IO库的设计. 一:引言 Java语言采用流的机制来实现输入/输出,所谓流,就是数据的有序排列,它可以从某个源(流源)出来,到某个目的地(流汇)。根据流的方向可以将流分为输出流和输入流.例如Java程序可以用FileInputStream类从一个磁盘文件读入byte类型数据,也

2014-12-19 14:25:29 1034

转载 TCP状态转换图

注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。1、建立连接协议(三

2014-12-16 11:42:04 500

转载 [转]Linux的epoll模型

Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在我用的2.6.15-25-386内核中,该值是1024,搜索内核

2014-12-16 10:41:54 363

转载 [Web]URL编码与解码

from http://kb.cnblogs.com/page/133765/通常如果一样东西需要编码,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据,对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。  例如,Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你

2014-12-01 10:48:32 436

原创 setup

SET-UP:_________________________________________________________________________________________________________________________________________======================     JDK        ==

2014-10-13 12:09:45 573

原创 tomcat setenv.sh

export JAVA_OPTS="$JAVA_OPTS\ -server\ -Xms704m\ -Xmx704m\ -XX:OnOutOfMemoryError=/usr/share/scripts/on_server_crash.sh\ -XX:+HeapDumpOnOutOfMemoryError\ -XX:HeapDumpPath=/var/log/tomcat7\ -XX:

2014-10-10 13:22:11 10318

转载 【转】tomcat server.xml

Tomcat Server的结构图

2014-10-10 13:13:29 406

转载 spring context

spring获取webapplicationcontext,applicationcontext几种方法详解方法一:在初始化时保存ApplicationContext对象代码:ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");ac.getBean("be

2014-08-22 17:57:40 452

转载 memcached refcount

在多线程环境中,前面memcacheditem锁粒度中可以看出在thread.c中那些item_get,item_link等,对item的一些基本操作都会根据锁的类型(分段锁或者是全局锁),严格的保证在多线程环境中的原子性,但是memcached中通过libevent得到的客户端请求,然后处理命令,函数是process_command,可以看到这个函数是不加锁的,也就是说通过原子操作调用了item

2014-08-09 17:31:48 568

转载 Slab Item source-code

今天主要总结items相关的操作,items的操作分布比较多,定义和实现在memcachd.h/c、thread.h/c、items.h/c都有,感觉完全可以放在items.h/c中。这里就对所有的这些操作(除去stats部分)进行一个简单的总结。首先对数据结构、ITEM_*宏和一些变量进行一个简单的说明,这里先建立一个宏观的概念,理解了它们的用途对后续阅读程序有很大的帮助。/**  

2014-08-01 16:24:45 438

转载 Zookeeper原理及应用场景

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee

2014-08-01 12:04:14 506

转载 分布式服务框架 Zookeeper

Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等

2014-07-31 17:18:41 547

转载 zookeeper acl

zookeeper ACL原文  http://www.cnblogs.com/wangxiaowei/p/3315137.html      生产环境中,经常会有多个项目使用zookeeper,例如多个hbase集群。每个项目搭建一套独立的zookeeper,无论从机器成本,还是运维成本,都是一笔额外的开销。然而多项目,多集群共用zookeeper又涉及一个权限隔

2014-07-30 14:05:03 459

原创 linux avariable port range

1.view    sysctl -a | grep 'net.ipv4.ip_local_reserved_ports'2.write    sysctl -w

2014-07-15 19:46:00 609

转载 RHEL更换yum源

刚开始接触redhat linux的时候,经常会为安装软件发愁,linux下的软件依赖对新手来说太繁琐和复杂。后来听说了一个好工具yum,但是作为RHEL的免费试用者,yum首先需要我们自己更换可用的源,并且配置好才能方便地使用。本人曾经在配置过程中,根据资料一步一步配置,但是还是出错了,为此纠结万分。在yum makecache的时候报错如下:[Errno 14] PYC

2014-07-15 14:18:12 682

原创 memcached restart shell

1.memcached-manager shell   2.check-memcached with telnet

2014-07-14 15:06:10 616

转载 memcached shell(start stop restart)

分享一例用于监控memcached进程是否启动的shell脚本,用于memcache的启动、停止与重启等操作,有需要的朋友参考下。1,memcached_inc.sh 设置路径,端口等讯息。代码: 复制代码代码示例:#!/bin/sh    #config include    HOST=$(hostname)  SI

2014-07-11 15:30:16 1426

空空如也

空空如也

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

TA关注的人

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