自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雨和你的故事

Baron的博客专栏

  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

转载 Servlet 工作原理解析

Servlet 工作原理解析Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的

2016-05-29 17:01:08 791

转载 Zookeeper session超时

1、会话概述在ZooKeeper中,客户端和服务端建立连接后,会话随之建立,生成一个全局唯一的会话ID(Session ID)。服务器和客户端之间维持的是一个长连接,在SESSION_TIMEOUT时间内,服务器会确定客户端是否正常连接(客户端会定时向服务器发送heart_beat,服务器重置下次SESSION_TIMEOUT时间)。因此,在正常情况下,Session一直有效,并且ZK集群

2016-04-26 23:53:34 6528

转载 [zookeeper]联接中断,watch恢复,心跳和客户端超时

[ZooKeeper]连接中断,watch恢复,心跳和客户端超时前一篇文章分析了server端主动超时session的情况,接下来看一下client和server网络暂时中断的情况。1.和server主动关闭连接一样,client抛出EndOfStreamException异常,此时客户端状态还是CONNECTED2.SendThread处理异常,清理连接,将当前所有请求置

2016-04-26 23:31:22 4312

转载 Zookeeper开发常见问题

背景与目的Zookeeper开发过程中遇到一些常见问题,为了后续开发不犯同样的错误,总结一下此类问题,并进行分析和解决。适合人员主要适合zookeeper开发、测试及运维相关人员。问题与解决一、 关于zookeeper_init函数的使用问题描述:开发人员在调用zookeeper_init函数时,若返回一个非空句柄zh

2016-04-26 23:19:03 963

转载 一种高效无锁内存队列的实现

Disruptor是LMAX公司开源的一个高效的内存无锁队列。这两天看了一下相关的设计文档和博客,下面尝试进行一下总结。第一部分。引子谈到并发程序设计,有几个概念是避免不了的。1.锁:锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很

2016-04-25 22:45:19 613

转载 基于数组的无锁队列

1 引言最近对于注重性能的应用程序,我们有了一种能显著提高程序性能的选择:多线程.线程的概念实际上已经存在了很长时间.在过去,多数计算机只有一个处理器,线程主要用于将一个大的任务拆分成一系列更小的执行单元.以使得当其中某些执行单元因为等待资源而被阻塞的时候剩余的执行单元能继续执行。举个示例,一个网络应用程序,它监听一个TCP端口,当有外部请求到达时,处理请求.对于一个单线程的应用程序来说,

2016-04-25 22:38:52 786

转载 Zookeeper 分布式锁

转载自:http://blog.csdn.net/java2000_wl/article/details/8694270获取锁实现思路:1.     首先创建一个作为锁目录(znode),通常用它来描述锁定的实体,称为:/lock_node2.     希望获得锁的客户端在锁目录下创建znode,作为锁/lock_node的子节点,并且节点类型为有序临时节点(EPHEMER

2016-04-25 22:28:14 435

转载 ZeroMQ的内部架构

概述想要了解ZMQ内部结构的人越来越多,大量关于代码库的讨论经常提到的问题是缺乏一个可以让新人快速了解代码结构的架构文档。本文的目的便是提供一种这样的文档。本文会逐步覆盖整个代码库,但是不会去关注太多的细节问题。因为随着时间的推移,细节部分可能与文档脱节。如果想要获得详细信息,你应该查看相关部分的源码。首先需要提醒读者的是代码库是复杂的。从代码行数(也许是意大利面式的代码行数,我想ZM

2016-04-25 21:31:00 1839

转载 自动化运维工具SaltStack详细部署

==========================================================================================一、基础介绍==========================================================================================1、简介Sa

2016-04-23 18:55:34 1128

转载 Salt-API安装配置及使用

SaltStack 官方提供有REST API格式的 salt-api 项目,将使Salt与第三方系统集成变得尤为简单。本文讲带你了解如何安装配置Salt-API, 如何利用Salt-API获取想要的信息。前置阅读salt-api手册Salt External Authentication System环境说明操作系统环境: CentOS 6.4,已配置EP

2016-04-23 18:53:44 1380

转载 salt-api安装、配置、使用

salt-api也用了一段时间了,现在从安装、配置、使用三个方面梳理下知识。1、安装采用pip安装方便快捷,当然编译安装也很nice。安装pip采用的编译安装的方式,版本当前最新1.5.6,下载、解压、编译、安装是不变的法则。[root@saltstack ~]#wgethttps://pypi.python.org/packages/s

2016-04-23 16:45:38 3538

转载 saltstack应用之批量部署mysql

应用环境:使用salt写了个自动部署mysql的配置配置管理文件,由于mysql的有版本号,端口等不确定属性,需要使用pillar来单独配置每个minion的属性。一,原始方法例如,需要在salt id为10.1.1.1-centos.game.web的服务器上部署mysql,版本号为5.5.25,实例有3个,3306,3307,3308, 正常情况下的流程是这样的:

2016-04-23 15:37:31 1659

原创 zookeeper C API 编译

今天想用一下 zookeeper API,结果编译的时候遇到以下问题。1.问题1问题描述执行完 configure,然后开始编译 make,结果抛出一下错误信息。touch config.h.incd . && /bin/sh ./config.status config.hconfig.status: creating config.hmake  al

2016-04-16 15:32:53 3072

转载 CAS原子操作实现无锁及性能分析

CAS原子操作实现无锁及性能分析 Author:Echo Chen(陈斌)Email:[email protected]:Blog.csdn.net/chen19870707Date:Nov 13th, 2014最近在研究nginx的自旋锁的时候,又见到了GCC CAS原子操作,于是决定动手分析下CAS实现的无

2016-04-10 00:31:09 341

转载 多线程模型下的无锁编程

多线程模式是比较流行的一种并发编程模型,多线程编程的一个特点就是线程间共享内存空间;这可以降低线程间通信的开销,但却引来了另外的一个难缠的问题:竟态条件!,因此,甚至有人对多线程模型提出了质疑,看这里。在多线程编程模型下,解决竟态条件的传统方法就是加锁保护临界区,但这存在影响系统性能、优先级反转等问题.因此又有人提出了,多线程模型下无锁编程的一些方式:1.线程内通信框架: Di

2016-04-10 00:26:03 1197

转载 ZeroMQ的内部架构

概述想要了解ZMQ内部结构的人越来越多,大量关于代码库的讨论经常提到的问题是缺乏一个可以让新人快速了解代码结构的架构文档。本文的目的便是提供一种这样的文档。本文会逐步覆盖整个代码库,但是不会去关注太多的细节问题。因为随着时间的推移,细节部分可能与文档脱节。如果想要获得详细信息,你应该查看相关部分的源码。首先需要提醒读者的是代码库是复杂的。从代码行数(也许是意大利面式的代码行数,我想ZM

2016-04-10 00:19:00 740

转载 C协程实现的效率对比

前段时间实现的C协程依赖栈传递参数,在开启优化时会导致错误,于是实现了一个ucontext的版本,但ucontext的切换效率太差了,在我的机器上执行4000W次切换需要11秒左右,这达不到我的要求,所以重新设计了实现,使得在开启优化时也能得到正确的结果.并且效率也令人满意,4000W次切换仅需要730ms左右,足足比ucontext的实现快乐近15倍。下面贴出实现:

2016-04-09 22:19:43 359

转载 异步网络消息处理框架

最近一段时间将原来写的kendynet网络框架重写了大部分的代码,让提供的接口更清晰,对用户更友好。整个框架的架构分层3层:1)单线程,基于原始数据流的网络接口,在这一层上,没有提供封包的处理,定时器事件等等。使用者可以在此之上按自己的需求做进一步的封装。2)单线程,提供connection,封包处理,接收发送超时处理。3)网络逻辑分离的异步网络框架,抽象出三个主要

2016-04-09 22:13:27 903

转载 一种协程的 C/C++ 实现

介绍在前几天接触到了协程的概念,觉得很有趣。因为我可以使用一个线程来实现一个类似多线程的程序,如果使用协程来替代线程,就可以省去很多原子操作和内存栅栏的麻烦,大大减少与线程同步相关的系统调用。因为我只有一个线程,而且协程之间的切换是可以由函数自己决定的。我有见过几种协程的实现,因为没有 C/C++ 的原生支持,所以多数的库使用了汇编代码,还有些库利用了 C 语言的 setjmp 和

2016-04-09 22:11:49 972

转载 实现C协程

协程的概念就不介绍了,不清楚的同学可以自己google,windows和unix like系统本身就提供了协程的支持,windows下叫fiber,unix like系统下叫ucontext.在这里重复制造轮子,一是为了更清楚了解协程的实现,二是为了在windows和unix like系统下都提供一套统一的协程接口.首先介绍下接口,很简单,只有几个函数:#ifn

2016-04-09 22:04:52 328

转载 MYSQL开发性能研究之INSERT,REPLACE,INSERT-UPDATE性能比较

一、为什么要有这个实验我们的系统是批处理系统,类似于管道的架构。而各个数据表就是管道的两端,而我们的程序就类似于管道本身。我们所需要做的事情无非就是从A表抽取数据,经过一定过滤、汇总等操作放置到B表。如果出现了错误,那么就从重新跑这一个管道。所以说,我们的系统其实根本就不要什么事务性,无非就是挂了把表给TRUNCATE(或者有条件地DELETE)一下,然后重跑就行了。这样一来,对于

2016-04-08 00:08:01 2888

转载 SAS SATA SSD IDE硬盘介绍区别

SAS(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,并且提供与SATA硬盘的兼容性。SAS的接口技术可以向下兼容SATA。具体来说,二

2016-04-08 00:02:30 652

转载 SATA SAS SSD 硬盘介绍和评测

SATASATA的全称是Serial Advanced Technology Attachment,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范。SATA硬盘采用新的设计结构,数据传输快,节省空间,相对于IDE硬盘具有很多优势:  1 .SATA硬盘比IDE硬盘传输速度高。目前SATA可以提供150MB/s的高峰传输速率。

2016-04-08 00:00:14 912

转载 [MySQL]Innodb参数优化

innodb_buffer_pool_sizeinnodb_buffer_pool_size 参数用来设置Innodb 最主要的Buffer(Innodb_Buffer_Pool)的大小,也就是缓存用户表及索引数据的最主要缓存空间,对Innodb 整体性能影响也最大。对于一台单独给MySQL 使用的主机,并假设只使用innodb引擎,一般建议该参数为物流内存的75%左右。当

2016-04-07 23:50:41 574

转载 MySQL Innodb数据库性能实践——合适的表记录数

在实际工作中,经常有同事问道:MySQL Innodb表记录数多大是合适的?一般的理解肯定是表越大性能越低,但具体低多少呢,是缓慢下降还是急剧下降,是1000万就下降还是1亿才下降呢?针对这些问题,我做了一下基准测试,基准测试环境如下:【硬件配置】硬件配置CPUIntel(R) Xeon(R) CP

2016-04-07 23:48:38 253

转载 装饰器模式

定义不通过派生类增改类属性动作,而是通过模式设计动态的达到这种效果,而且比继承更方便灵活减少程序的复杂性。举例汪峰打造冠军团队。首先团队类为空,经过汪峰不断的努力,为团队争取学员,也为团队队员打造合适的平台,让其发挥。团队不断的变强,变完整,是由装饰者,根据不同的需求,给基类进行增改,一致最后赢得你的赞同,满足你的需求。实现装配器模式的类图:战队

2016-04-04 14:57:47 486

转载 桥接模式和适配器模式的区别

很多时候经常容易把桥接模式和适配器模式弄混。那什么时候用桥接,什么时候用适配器呢 ?共同点桥接和适配器都是让两个东西配合工作不同点出发点不同。         1)适配器:改变已有的两个接口,让他们相容。         2)桥接模式:分离抽象化和实现,使两者的接口可以不同,目的是分离。        所以说,如果你拿到两个已有模块,想让他们同时

2016-04-04 14:24:44 21285 6

转载 最全最强解析:支付宝钱包系统架构内部剖析(架构图)

支付宝系统架构概况典型处理默认资金处理平台财务会计支付清算核算中心交易柔性事务支付宝的开源分布式消息中间件–Metamorphosis(MetaQ)Metamorphosis (MetaQ)

2016-04-03 12:03:01 908

转载 《The Google File System》论文阅读笔记——GFS设计原理

一、设计预期设计预期往往针对系统的应用场景,是系统在不同选择间做balance的重要依据,对于理解GFS在系统设计时为何做出现有的决策至关重要。所以我们应重点关注:失效是常态主要针对大文件读操作:大规模流式读取、小规模随机读取写操作:大规模顺序追加写,写入后很少修改高效明确定义的并行追加写稳定高效地网络带宽二、整体设计1、系统架构GFS主要由以下三个系统模块组成:

2016-04-02 18:31:01 1211

转载 Redis 的性能幻想与残酷现实

Redis 的性能幻想与残酷现实2011 年,当初选择 Redis 作为主要的内存数据存储,主要吸引我的是它提供多样的基础数据结构可以很方便的实现业务需求。另一方面又比较担心它的性能是否足以支撑,毕竟当时 Redis 还属于比较新的开源产品。但 Redis 官网宣称其是提供多数据结构的高性能存储,我们对其还是抱有幻想的。幻想要了解 Redis 的性能,我们先看看官方的基准性能测

2016-04-02 17:58:12 310

转载 京东咚咚架构演进

京东咚咚架构演进咚咚是什么?咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。 自从京东开始为第三方卖家提供入驻平台服务后,咚咚也就随之诞生了。 我们首先看看它诞生之初是什么样的。1.0 诞生(2010 - 2011)为了业务的快速上线,1.0 版本的技术架构实现是非常直接且简单粗暴的。 如何简单粗暴法?请看架构图,如下。1.0 的功能十分简单

2016-04-02 17:56:24 439

转载 HDFS 与 GFS 的设计差异

HDFS 与 GFS 的设计差异后端分布式系列」前面关于 HDFS 的一些文章介绍了它的整体架构和一些关键部件的设计实现要点。我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的。然后呢,我就去把 GFS 的原始论文找出来仔细看了遍,GFS 的整体架构图如下:HDFS 参照了它所以大部分架构设计概念是类似的,比

2016-04-02 17:54:21 1305

转载 HDFS DataNode 设计实现解析

HDFS DataNode 设计实现解析前文分析了 NameNode,本文进一步解析 DataNode 的设计和实现要点。文件存储DataNode 正如其名是负责存储文件数据的节点。HDFS 中文件的存储方式是将文件按块(block)切分,默认一个 block 64MB(该大小可配置)。若文件大小超过一个 block 的容量可能会被切分为多个 block,并存储在不

2016-04-02 17:44:19 541

转载 HDFS NameNode 设计实现解析

HDFS NameNode 设计实现解析接前文 分布式存储-HDFS 架构解析,我们总体分析了 HDFS 架构的主要构成组件包括:NameNode、DataNode 和 Client。本文首先进一步解析 HDFS NameNode 的设计和实现要点。元数据持久化NameNode 将所有元信息以特定的数据结构组织存放在内存中,对于 namespace 和 repl

2016-04-02 17:30:08 317

转载 HDFS 架构解析

HDFS 架构解析本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点。架构目标任何一种软件框架或服务都是为了解决特定问题而产生的。还记得我们在 《分布式存储 - 概述》一文中描述的几个关注方面么?分布式文件系统属于分布式存储中的一种面向文件的数据模型,它需要解决单机文件系统面临的容量扩展和容错问题。所以 H

2016-04-02 17:17:17 384

转载 分布式存储概述

分布式存储概述分布式存储是相对于单机存储而言,之所以要分布自然是因为互联网时代信息数据大爆炸,单机已经难以满足大型应用的数据存储需求。存储系统的关注点关于存储系统,一般我们关注下面几个方面:数据分布与负载均衡数据存储的可靠性与一致性数据访问性能系统容错能力系统扩展能力在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of

2016-04-02 17:09:59 568

转载 Redis 集群的合纵与连横

Redis 集群的合纵与连横之前一篇写了关于 Redis 的性能,这篇就写写我认为比性能更重要的扩展性方面的主题。如果再给我一次回到好几年前的机会,对于使用 Redis 我一开始就要好好考虑将来的扩展问题。就像我们做数据库分库分表,一旦决策了分库分表,通常一次就会分到位,比如搞上 8 或 16 个库,每个库再分 256 或 1024 个表。不管将来业务再怎么发展,基本这

2016-04-02 17:03:20 406

转载 MySQL 数据库主从复制架构

MySQL 数据库主从复制架构前文《MySQL 数据库事务与复制》分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面。原生复制架构MySQL 的原生复制架构原理如上图所示。从库的 I/O Thread 线程负责不断读取主库的 binlog 日志文件并写入本地的 Relay

2016-04-02 17:01:47 448

转载 LB 负载均衡的层次结构

作为后端应用的开发者,我们经常开发、调试、测试完我们的应用并发布到生产环境,用户就可以直接访问到我们的应用了。但对于互联网应用,在你的应用和用户之间还隔着一层低调的或厚或薄的负载均衡层软件,它们不显山不露水默默的发挥着重要的作用,以至于我们经常忽略了它们的存在。因为负载均衡层通常不在一般开发人员的问题域内,而且它们一般都是现成且成熟的解决方案,以至于我们习惯性的忽略和认为乏善可陈。其实不然,本文就

2016-04-02 14:43:36 806

转载 MySQL性能优化的最佳经验,随时补充

1、为查询优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例://

2016-03-29 23:30:11 283

Mycat 权威指南

mycat v1.6 集群解决方案权威指南,详细介绍了Mycat。入门篇->高级进阶篇->生产实践篇->开发篇

2016-03-20

linux 下无线网卡安装通用方法

当然你可以用命令在线安装,但是,这是一种通用的方法,非常可取。

2010-10-24

linux 防火墙配置

linux 防火墙配置的ppt,我觉得不错,大家瞧瞧。

2010-10-24

空空如也

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

TA关注的人

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