计算机网络中的多路复用技术
摘要:1.多路复用介绍 多路复用即一个信道传输多路信号 典型的多路复用方法: a.频分多路复用(Frequency division multiplexing——FDM) b.时分多路复用(Time division multiplexing——TDM) c.波分多路复用(Wavelength divis
阅读全文
posted @
2016-01-26 21:39
duanxz
阅读(4557)
推荐(0) 编辑
ActiveMQ之一--ActiveMQ入门
摘要:MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。 一、 概述与介绍 ActiveMQ 是Apache
阅读全文
posted @
2016-01-25 13:40
duanxz
阅读(932)
推荐(0) 编辑
ehcache介绍
摘要:一、SpringBoot默认集成CacheManager Spring声明式缓存:Spring 定义 CacheManager 和 Cache 接口用来统一不同的缓存技术。例如 JCache、 EhCache、 Hazelcast、 Guava、 Redis 等。在使用 Spring 集成 Cach
阅读全文
posted @
2016-01-24 21:18
duanxz
阅读(5181)
推荐(0) 编辑
I/O模型之二:Linux IO模式及 select、poll、epoll详解
摘要:目录: 《I/O模型之一:Unix的五种I/O模型》 《I/O模型之二:Linux IO模式及 select、poll、epoll详解》 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《I/O模型之四:Java 浅析I/O模型》 同步IO和异步IO,阻塞IO
阅读全文
posted @
2016-01-24 21:02
duanxz
阅读(2214)
推荐(1) 编辑
Netty中的三种Reactor(反应堆)
摘要:目录: Reactor(反应堆)和Proactor(前摄器) 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式》 《Java NIO系列教程(八)JDK AIO编程》-
阅读全文
posted @
2016-01-24 00:28
duanxz
阅读(15955)
推荐(6) 编辑
I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor
摘要:目录: 《I/O模型之一:Unix的五种I/O模型》 《I/O模型之二:Linux IO模式及 select、poll、epoll详解》 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《I/O模型之四:Java 浅析I/O模型》 Reactor(反应堆)和P
阅读全文
posted @
2016-01-24 00:26
duanxz
阅读(4658)
推荐(1) 编辑
【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式
摘要:目录: Reactor(反应堆)和Proactor(前摄器) 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式》 《Java NIO系列教程(八)JDK AIO编程》-
阅读全文
posted @
2016-01-24 00:25
duanxz
阅读(716)
推荐(0) 编辑
mysql 数据库 自动截取数据的问题---mysql的sql_model的四种模式:宽松模式、严格模式
摘要:mysql支持的sql_mode模式:ANSI、TRADITIONAL、STRICT_ALL_TABLES和STRICT_TRANS_TABLES。 ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。 TRADITIONAL模式:严
阅读全文
posted @
2016-01-24 00:23
duanxz
阅读(3323)
推荐(1) 编辑
spring-session之四:Spring Session下的Redis存储结构
摘要:spring-session项目启动后 运行示例httpsession一次后 查看redis中的值: Redis中的存储说明:1、spring:session是默认的Redis HttpSession前缀(redis中,我们常用’:’作为分割符)。2、每一个session都会创建3组数据: 第一组
阅读全文
posted @
2016-01-24 00:23
duanxz
阅读(12249)
推荐(0) 编辑
Mysql auto_increment总结
摘要:一、为什么InnoDB表要建议用自增列做主键 我们先了解下InnoDB引擎表的一些关键特征: InnoDB引擎表是基于B+树的索引组织表(IOT); 每个表都需要有一个聚集索引(clustered index); 所有的行记录都存储在B+树的叶子节点(leaf pages of the tree);
阅读全文
posted @
2016-01-24 00:22
duanxz
阅读(2795)
推荐(0) 编辑
mysql实战优化之一:sql优化
摘要:1、选取最适用的字段属性 MySQL 可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为char(255),显然给数据库增加了不必要
阅读全文
posted @
2016-01-24 00:21
duanxz
阅读(1162)
推荐(0) 编辑
mysql字符集和校对规则(Mysql校对集)
摘要:字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下简要说明 字符集和校对规则 字符集是一套符号和编码。校对规则是在字符集内用于比较字符的一套规则。 MySql在collation提供较强的支持,oracel在这方面没查到相应的资...
阅读全文
posted @
2016-01-24 00:20
duanxz
阅读(3721)
推荐(0) 编辑
Oracle B-tree、位图、全文索引三大索引性能比较及优缺点汇总
摘要:引言:大家都知道“效率”是数据库中非常重要的一个指标,如何提高效率大家可能都会想起索引,但索引又这么多种,什么场合应该使用什么索引呢?哪种索引可以提高我们的效率,哪种索引可以让我们的效率大大降低(有时还不如全表扫描性能好)下面要讲的“索引”如何成为我们的利器而不是灾难!多说一点,由于不同索引的存储结...
阅读全文
posted @
2016-01-24 00:19
duanxz
阅读(2156)
推荐(0) 编辑
索引——位图索引
摘要:位图索引非常适合于决策支持系统(Decision Support System,DSS)和数据仓库,它们不应该用于通过事务处理应用程序访问的表。它们可以使用较少到中等基数(不同值的数量)的列访问非常大的表。尽管位图索引最多可达30个列,但通常它们都只用于少量的列。 例如,您的表可能包含一个称为Sex
阅读全文
posted @
2016-01-24 00:19
duanxz
阅读(2560)
推荐(0) 编辑
mysql索引之一:索引基础(B-Tree索引、哈希索引、聚簇索引、全文(Full-text)索引区别)(唯一索引、最左前缀索引、前缀索引、多列索引)
摘要:没有索引时mysql是如何查询到数据的 索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10
阅读全文
posted @
2016-01-24 00:18
duanxz
阅读(10555)
推荐(8) 编辑
mysql分区表之二:MySQL的表的四种分区类型介绍
摘要:一、什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。 二、为什么要对表进行分区 为了改善大型表以及具有各种访问模式的表的可
阅读全文
posted @
2016-01-24 00:17
duanxz
阅读(7360)
推荐(1) 编辑
Avro之一:Avro简介
摘要:一、引言 1、 简介 Avro是Hadoop中的一个子项目,也是Apache中一个独立的项目,Avro是一个基于二进制数据传输高性能的中间件。在Hadoop的其他项目中例如HBase(Ref)和Hive(Ref)的Client端与服务端的数据传输也采用了这个工具。Avro是一个数据序列化的系统。Av
阅读全文
posted @
2016-01-24 00:17
duanxz
阅读(3353)
推荐(0) 编辑
使用 sysbench对mysql进行压力测试介绍之一
摘要:sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。本文只是简单演示一下几种测试的用法,具体的一些参数设置,需要根据不同的测试要求来进行调整。我也是参考了很多网上的文章,本来以为很简单
阅读全文
posted @
2016-01-24 00:12
duanxz
阅读(1231)
推荐(0) 编辑
MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法
摘要:在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。 这几个循环语句的格式如下: WHILE……DO……END WHILE REPEAT……UN
阅读全文
posted @
2016-01-24 00:12
duanxz
阅读(42114)
推荐(1) 编辑
mysql事务之二:MySQL隔离级别演示
摘要:登录mysql: Mysql 版本号 查看InnoDB存储引擎 系统级的隔离级别 和 会话级的隔离级别 更改会话级的隔离级别 打开两个mysql连接: 在第一个连接中设置不同隔离级别,然后在两个连接上查看设置结果: session1: session2: 更改系统级的隔离级别 session1: s
阅读全文
posted @
2016-01-24 00:11
duanxz
阅读(881)
推荐(0) 编辑
mysql事务之一:MySQL数据库事务隔离级别(Transaction Isolation Level)及锁的实现原理
摘要:一、数据库隔离级别 数据库隔离级别有四种,应用《高性能mysql》一书中的说明: 然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上 这里全局默认是REPEATABLE-READ,其实MySQL本来默认也是这个级别 2.对当前session修改,在登录mysq
阅读全文
posted @
2016-01-24 00:10
duanxz
阅读(1225)
推荐(0) 编辑
mysql实战优化之二:limit优化(大表翻页查询时) sql优化
摘要:mysql的表test中有20105119行数据。建立索引:data_status,place_cargo_status 场景1: 结果:查询时间为:7.360s 场景1: 结果:查询时间为:7.111s 场景三: 结果:查询时间为0.141s 场景四: 查询时间为0.140s 查看执行计划: 场景
阅读全文
posted @
2016-01-24 00:06
duanxz
阅读(719)
推荐(0) 编辑
mysql实战优化之三:表优化
摘要:对于大多数的数据库引擎来说,硬盘操作可能是最重大的瓶颈。所以,把你的数据变得紧凑会对这种情况非常有帮助,因为这减少了对硬盘的访问。 如果一个表只会有几列罢了(比如说字典表,配置表),那么,我们就没有理由使用 INT 来做主键,使用 MEDIUMINT, SMALLINT 或是更小的 TINYINT
阅读全文
posted @
2016-01-22 13:46
duanxz
阅读(516)
推荐(0) 编辑
I/O模型之四:Java 浅析I/O模型(BIO、NIO、AIO、Reactor、Proactor)
摘要:目录: 《I/O模型之一:Unix的五种I/O模型》 《I/O模型之二:Linux IO模式及 select、poll、epoll详解》 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《I/O模型之四:Java 浅析I/O模型》 一、传统的BIO 网络编程的
阅读全文
posted @
2016-01-22 13:44
duanxz
阅读(3009)
推荐(0) 编辑
memcache的一致性hash算法使用
摘要:一、概述 1、我们的memcache客户端(这里我看的spymemcache的源码),使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计
阅读全文
posted @
2016-01-22 09:32
duanxz
阅读(557)
推荐(1) 编辑
WebSocket :Nginx+WebSocket内部路由策略推送服务器的实现(附可生产环境应用代码)
摘要:1.项目背景 前几天写了一篇WebSocket推送的博客:WebSocket :用WebSocket实现推送你必须考虑的几个问题 支持的连接数大概几千个,具体数量依赖于tomcat能并发的线程数,但很多时候生产环境应用的话几千个肯定是不行的,所以本问介绍Nginx+WebSocket的实现思路及代码
阅读全文
posted @
2016-01-21 20:27
duanxz
阅读(1960)
推荐(0) 编辑
Linux下的Memcache安装,启动
摘要:一、linux安装memcache 1. 如果通过下载源码进行安装,则需要下载最新版本http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz。 如果通过apt-get方式安装,则无需下载。 2. 进行memcache的安装: 1).
阅读全文
posted @
2016-01-21 20:26
duanxz
阅读(4525)
推荐(0) 编辑
memcache常见问题及解答
摘要:memcached的cache机制是怎样的? Memcached主要的cache机制是LRU(最近最少用)算法+超时失效。当您存数据到memcached中,可以指定该数据在缓存中可以呆多久Which is forever, or some time in the future。如果memcached
阅读全文
posted @
2016-01-21 20:26
duanxz
阅读(613)
推荐(0) 编辑
Memcache技术分享:介绍、使用、存储、算法、优化、命中率
摘要:1、memcached 介绍 1.1 memcached 是什么? memcached 是以LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal 等众
阅读全文
posted @
2016-01-21 19:49
duanxz
阅读(704)
推荐(0) 编辑
memcache两种客户端比较
摘要:1.memcached client for java 客户端API:memcached client for java 网址:http://www.whalin.com/memcached(我从 https://github.com/gwhalin/Memcached-Java-Client/do
阅读全文
posted @
2016-01-21 19:09
duanxz
阅读(3944)
推荐(0) 编辑
TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
摘要:一、OSI 模型 OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧,比较懒);OSI 整个模型层次大致可以分为3个主要层面来看|.............主机...............| 操作系统和软件
阅读全文
posted @
2016-01-21 18:52
duanxz
阅读(35274)
推荐(3) 编辑
让memcached分布式
摘要:memcached是应用最广的开源cache产品,它本身不提供分布式的解决方案,我猜想一方面它想尽量保持产品简单高效,另一方面cache的key-value的特性使得让memcached分布式起来比较简单。memcached的分布式主要在于客户端,通过客户端的路由处理来搭建memcached集群环境
阅读全文
posted @
2016-01-21 18:33
duanxz
阅读(693)
推荐(0) 编辑
CIDR地址分类
摘要:CIDR(Classless Inter Domain Routing)改进了传统的IPv4地址分类。传统的IP分类将IP地址直接对应为默认的分类,从而将Internet分割为网络。CIDR在路由表中增加了子网掩码(subnet masking),从而可以更细分网络。利用CIDR,我们可以灵活的将某...
阅读全文
posted @
2016-01-21 18:21
duanxz
阅读(1878)
推荐(0) 编辑
关联表中记录统计
摘要:两张表: sql脚本如下: 按照category表中的品种统计product表中的数量: 这里要说的是group by,分类统计。不要忘了。否则成了下面这样:
阅读全文
posted @
2016-01-21 14:39
duanxz
阅读(520)
推荐(0) 编辑
keytool生成JKS证书的详细步骤及截图
摘要:注:防止有不必要的空格,尽量不要复制粘贴 1、 依据CFCA所提供的CN生成密钥存储文件和密钥对(创建JKS证书库) keytool -genkey -v -alias slserver -keyalg RSA -keysize 1024 -keypass 111111 -dname "cn=dua
阅读全文
posted @
2016-01-20 20:40
duanxz
阅读(13983)
推荐(1) 编辑
Tomcat下WebSocket最大连接数测试
摘要:WebSocket现在很常用,想要测试tomcat的最大连接数,今天试了一个可行的办法和配置(之前是用全公司的设备一起来测试的,真机环境的测试收到网络的影响很大,其实真实环境应用中,网络才是websocket的最大瓶颈) 废话不多说~ 1.Tomcat需要设置的地方(很多人从网上找的配置试了不可行)
阅读全文
posted @
2016-01-20 20:29
duanxz
阅读(3040)
推荐(0) 编辑
使用wireshark观察SSL/TLS握手过程--双向认证/单向认证
摘要:SSL/TLS握手过程可以分成两种类型:1)SSL/TLS 双向认证,就是双方都会互相认证,也就是两者之间将会交换证书。2)SSL/TLS 单向认证,客户端会认证服务器端身份,而服务器端不会去对客户端身份进行验证。我们知道,握手过程实际上就是通信双方协商交换一个用于对称加密的密钥的过程,而且握手过程...
阅读全文
posted @
2016-01-20 19:55
duanxz
阅读(4706)
推荐(0) 编辑
图解SSL/TLS协议
摘要:一、SSL协议的握手过程开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake)。假定客户端叫做爱丽丝,服务器叫做鲍勃,整个握手过程可以用下图说明(点击看大图)。握手阶段分成五步。第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client rando...
阅读全文
posted @
2016-01-20 19:54
duanxz
阅读(407)
推荐(0) 编辑
java ssl https 连接详解 生成证书
摘要:我们在关于Java EE安全的系列文章中,有一篇也详细介绍了如何在Java EE应用中创建SSL连接和证书。正如前面文章提到的,SSL(Secure Sockets Layer,安全套接层)/TLS(Transport Layer Security,传输层安全)保证了客户端和web服务器的连接安全。...
阅读全文
posted @
2016-01-20 19:35
duanxz
阅读(11114)
推荐(0) 编辑
mysql实战优化之四:mysql索引优化
摘要:0、 使用SQL提示 用户可以使用use index、ignore index、force index等SQL提示来进行选择SQL的执行计划。 1、支持多种过滤条件 2、避免多个范围条件 应尽量避免在 where 子句中使用!=或<>操作符,可以用in、between and代替,否则将引擎放弃使用
阅读全文
posted @
2016-01-20 17:00
duanxz
阅读(1072)
推荐(0) 编辑
mysql实战优化之五: 更新/插入优化 sql优化
摘要:通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作)。当读取者完成对表的操作的时候,锁就会被解除。如果写入者正在等待的时候,另一个读取操作到达了,该读取操作也会被阻塞(block),因为默认
阅读全文
posted @
2016-01-20 14:29
duanxz
阅读(1761)
推荐(0) 编辑
mysql实战优化之六:Order by优化 sql优化、索引优化
摘要:在MySQL中的ORDER BY有两种排序实现方式: 1、利用有序索引获取有序数据 2、文件排序 在使用explain分析查询的时候,利用有序索引获取有序数据显示Using index。而文件排序显示Using filesort。 1.利用有序索引获取有序数据 取出满足过滤条件作为排序条件的字段,以
阅读全文
posted @
2016-01-20 14:28
duanxz
阅读(1673)
推荐(0) 编辑
mina2中IoHandler
摘要:IoHandler 当我们通过IoSession执行相关操作的时候,如写数据,这些事件会触发Mina框架抽象的IoService实例,从而调用Mina框架底层的相关组件进行处理。这时,配置的IoHandler就被用来处理Mina所触发的相关事件,处理这些事件的操作被抽象出来。实际上,IoHandle
阅读全文
posted @
2016-01-19 20:03
duanxz
阅读(1801)
推荐(0) 编辑
I/O通信模型(BIO,NIO,AIO)
摘要:一、传统的BIO 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。 在基
阅读全文
posted @
2016-01-19 19:58
duanxz
阅读(1324)
推荐(0) 编辑
mina框架详解
摘要:Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina
阅读全文
posted @
2016-01-19 19:55
duanxz
阅读(94064)
推荐(8) 编辑
团队
摘要:定位、使命 清晰的定位是团队成立的前提、士气的保障、外部合作的基础,价值衡量的标尺。
阅读全文
posted @
2016-01-19 19:51
duanxz
阅读(787)
推荐(0) 编辑
支付业务的数据库表的设计
摘要:一、数据表 数据库中的数据表是整个核心逻辑的载体说在,所有的记账逻辑、以及与支付前台交互的数据都是在这里 进行记录。现就主要的表进行简要说明。不同的第三方支付其数据表名称肯定也不同,这里的表名称仅作参考 gTransLog表: 支付网关交易流水表,所有通过网关的交易全部都会在此表中写入数据。 tAc
阅读全文
posted @
2016-01-19 19:50
duanxz
阅读(2944)
推荐(0) 编辑
实战 TestNG 监听器
摘要:TestNG 是一个开源的自动化测试框架,其灵感来自 JUnit 和 NUnit,但它引入了一些新功能,使其功能更强大,更易于使用。TestNG 的设计目标是能够被用于进行各种类型测试:单元测试、功能测试,端到端测试、集成测试,等等。NG 是 Next Generation 的简写,表示下一代,意在
阅读全文
posted @
2016-01-19 19:49
duanxz
阅读(1517)
推荐(0) 编辑
gopush-cluster 架构
摘要:前言 gopush-cluster是一套golang开发的实时消息推送集群,主要分享一下开发这套系统的想法和思路。 架构 主要分为三个模块来开发,comet/web/message。 comet 主要负责消息排队、消息推送以及和客户端的连接维护;整套系统依据是消息ID顺序原则获取消息(客户端本地获取
阅读全文
posted @
2016-01-19 19:48
duanxz
阅读(500)
推荐(0) 编辑
委派模式
摘要:在常用的23种设计模式中其实面没有委派模式(delegate)的影子,但是在Spring中委派模式确实用的比较多的一种模式,Spring MVC框架中的DispatcherServlet其实就用到了委派模式,在Spring的源码中,以Delegate结尾的地方都实现了委派模式。有前辈将其总结为代理模
阅读全文
posted @
2016-01-19 19:46
duanxz
阅读(1349)
推荐(0) 编辑
多线程设计模式(四):生产者-消费模式
摘要:生产者-消费模式,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费者线程负责具体处理生产者提交的任务。两者之间通过共享内存缓冲去进行通信。 一、架构模式图: 类图: 生产者:提交用户请求,提取用户任务,并装入内存缓冲区; 消费者:在内存缓冲区中提取并处理任务;
阅读全文
posted @
2016-01-19 19:34
duanxz
阅读(804)
推荐(0) 编辑
微服务监控之二:Metrics+influxdb+grafana构建监控平台
摘要:系统开发到一定的阶段,线上的机器越来越多,就需要一些监控了,除了服务器的监控,业务方面也需要一些监控服务。Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作。 使用Metrics 通过构建一个Spring Boot的基本应用来演示Metrics的工作方式。 在M
阅读全文
posted @
2016-01-19 19:14
duanxz
阅读(5169)
推荐(0) 编辑
多线程设计模式(三):Master-Worker模式
摘要:Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务;Worker进程,负责处理子任务。当Worker进程将子任务处理完成后,结果返回给Master进程,由Master进程做归纳汇总,最后得到最终的结果。 一、什么是Mast
阅读全文
posted @
2016-01-19 19:12
duanxz
阅读(836)
推荐(0) 编辑
多线程设计模式(二):Future模式
摘要:一、什么是Future模型: 该模型是将异步请求和代理模式联合的模型产物。类似商品订单模型。见下图: 客户端发送一个长时间的请求,服务端不需等待该数据处理完成便立即返回一个伪造的代理数据(相当于商品订单,不是商品本身),用户也无需等待,先去执行其他的若干操作后,再去调用服务器已经完成组装的真实数据。
阅读全文
posted @
2016-01-19 19:08
duanxz
阅读(718)
推荐(1) 编辑
HAProxy安装配置用于TCP的负载均衡
摘要:HaProxy介绍 Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,Haproxy会自动的
阅读全文
posted @
2016-01-19 18:42
duanxz
阅读(3619)
推荐(0) 编辑
多线程设计模式(一):总体介绍
摘要:多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion、不变、生产者-消费者 模式;jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池; 锁(分为内部锁、重入锁、读写锁)、ThreadLocal
阅读全文
posted @
2016-01-19 17:07
duanxz
阅读(1044)
推荐(0) 编辑
HDFS之五:Hadoop 拒绝远程 9000 端口访问
摘要:最近学习Hadoop 时发现在本机访问 hadoop 9000 端口没有问题,但是远程机器访问 9000端口时不能访问,通过telnet 命令诊断发现发现无法访问端口,经过网上搜索解决方案结合自己实践,总结解决办法一般有以下几点。 首先,利用netstat -tpnl查看的端口开放情况 下图中900
阅读全文
posted @
2016-01-19 17:06
duanxz
阅读(12789)
推荐(0) 编辑
分布式缓存系统 Memcached 基本配置与命令
摘要:为了方便测试,给出一个C客户端libmemcached链接:https://launchpad.net/libmemcached/ 以及memcacheclient-2.0 : http://code.jellycan.com/files/memcacheclient-2.0.zip(已生成 sln
阅读全文
posted @
2016-01-17 23:47
duanxz
阅读(945)
推荐(0) 编辑
分布式缓存系统 Memcached CAS协议
摘要:Memcached在1.2.4版本后新增了CAS(Check and Set)协议,主要用于并发控制:memcached中同一个item同时被多个线程(多个客户端)更改的并发问题。CAS协议最本质的东西——版本号,即将每个item都关联一个全局唯一的编号,从而利用该唯一的编号来判断item数据在某个
阅读全文
posted @
2016-01-17 23:46
duanxz
阅读(1888)
推荐(0) 编辑
分布式缓存系统 Memcached 状态机之SET、GET命令
摘要:首先对状态机中的各种状态做个简单总结,具体可见状态转换示意图: 1.listening:这个状态是主线程的默认状态,它只有这一个状态:负责监听socket,接收客户连接,将连接socket派发给工作线程。 2.conn_new_cmd:每个工作线程的接收到新连接的初始状态,为处理该连接socket准
阅读全文
posted @
2016-01-17 23:45
duanxz
阅读(722)
推荐(0) 编辑
分布式缓存系统 Memcached 状态机之socket连接与派发
摘要:上节已经分析到了主线程中监听socket注册事件和工作线程中连接socket注册事件的回调函数都是event_handler,且event_handler的核心部分都是一个有限状态机:drive_machine。因此接下来将对该状态机具体的业务处理进行深入的剖析。 memcached将每个socke
阅读全文
posted @
2016-01-17 23:44
duanxz
阅读(725)
推荐(0) 编辑
分布式缓存系统 Memcached 状态机之网络数据读取与解析
摘要:整个状态机的基本流程如下图所示,后续分析将按该流程来进行。 接上节分解,主线程将接收的连接socket分发给了某工作线程,然后工作线程从任务队列中取出该连接socket的CQ_ITEM,开始处理该连接的所有业务逻辑。这个过程也就是上图中的第一个状态conn_listening。 而工作线程首先进入的
阅读全文
posted @
2016-01-17 23:44
duanxz
阅读(688)
推荐(0) 编辑
分布式缓存系统 Memcached 半同步/半异步模式
摘要:在前面工作线程初始化的分析中讲到Memcached采用典型的Master_Worker模式,也即半同步/半异步的高效网络并发模式。其中主线程(异步线程)负责接收客户端连接,然后分发给工作线程,具体由工作线程完成客户端的求情任务。 在memcached中,主线程负责监听所有socket上的事件,当so
阅读全文
posted @
2016-01-17 23:43
duanxz
阅读(901)
推荐(0) 编辑
分布式缓存系统 Memcached 主线程之main函数
摘要:前两节中对工作线程的工作流程做了较为详细的分析,现把其主要流程总结为下图: 接下来本节主要分析主线程相关的函数设计,主函数main的基本流程如下图所示: 对于主线程中的工作线程的初始化到启动所有的工作线程前面已经做了分析,后面的创建监听socket、注册监听socket的libevent事件、启动主
阅读全文
posted @
2016-01-17 23:43
duanxz
阅读(624)
推荐(0) 编辑
分布式缓存系统 Memcached slab和item的主要操作
摘要:上节在分析slab内存管理机制时分析Memcached整个Item存储系统的初始化过程slabs_init()函数:分配slabclass数组空间,到最后将各slab划分为各种级别大小的空闲item并挂载到对应大小slab的空闲链表slots上。本节将继续分析对slab和item的主要操作过程。 s
阅读全文
posted @
2016-01-17 23:42
duanxz
阅读(638)
推荐(0) 编辑
分布式缓存系统 Memcached 内存管理机制
摘要:在前面slab数据存储部分分析了Memecached中记录数据的具体存储机制,从中可以看到所采用的内存管理机制——slab内存管理,这也正是linux所采用的内存高效管理机制,对于Memchached这样的内存cache服务器,内存高效管理是其最重要的任务之一。 Linux 所使用的 slab 分配
阅读全文
posted @
2016-01-17 23:41
duanxz
阅读(634)
推荐(0) 编辑
分布式缓存系统 Memcached 工作线程初始化
摘要:Memcached采用典型的Master-Worker模式,其核心思想是:有Master和Worker两类进程(线程)协同工作,Master进程负责接收和分配任务,Worker进程负责处理子任务。当各Worker进程将各个子任务处理完成后,将结果返回给Master进程,由Master进程做归纳和汇总
阅读全文
posted @
2016-01-17 23:40
duanxz
阅读(643)
推荐(0) 编辑
分布式缓存系统 Memcached 数据存储slab与hashtable
摘要:缓存数据以item为基本单元,以双链表形式存放在对应级别大小的slabclass结构的chunk中。同时该item还存放在链式hashtable中bucket中,用于提供快速查找的索引。 首先是理解缓存的基本数据单元item结构: typedef struct _stritem { struct _
阅读全文
posted @
2016-01-17 23:39
duanxz
阅读(846)
推荐(0) 编辑
分布式缓存系统 Memcached 哈希表操作
摘要:memcached 中有两张hash 表,一个是“主hash 表”(primary_hashtable),另外一个是“原hash 表”(old_hashtable)。一般情况下都在主表中接受操作,在插入新item时判断是否需要进行扩;每次操作的时候,先会检测表是否正处于扩展(expanding)状态
阅读全文
posted @
2016-01-17 23:39
duanxz
阅读(764)
推荐(0) 编辑
分布式缓存系统 Memcached 整体架构
摘要:分布式缓存出于如下考虑,首先是缓存本身的水平线性扩展问题,其次是缓存大并发下的本身的性能问题,再次避免缓存的单点故障问题(多副本和副本一致性)。分布式缓存的核心技术包括首先是内存本身的管理问题,包括了内存的分配,管理和回收机制。其次是分布式管理和分布式算法,其次是缓存键值管理和路由。 什么是Memc
阅读全文
posted @
2016-01-17 23:38
duanxz
阅读(1425)
推荐(0) 编辑
Fiddler2 模拟文件上传
摘要:最近遇到一个需求,需要上传音频文件, 服务端使用webService 通过spring3 进行文件上传。代码完成后使用 html 通过post 方式请求接口成功了,但不知道如何使用Fiddler2工具进行模拟测试,经过一番努力终于成功了,在此分享一下! spring3文件上传开以参考:http://...
阅读全文
posted @
2016-01-17 23:18
duanxz
阅读(2149)
推荐(0) 编辑
Mysql存储过程查询结果赋值到变量的方法
摘要:Mysql存储过程查询结果赋值到变量的方法 把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用set或into的方式来实现赋值。示例代码: drop table if exists test_tbl; create
阅读全文
posted @
2016-01-17 23:17
duanxz
阅读(10255)
推荐(1) 编辑
数据分析与处理之二(Leveldb 实现原理)
摘要:郑重声明:本篇博客是自己学习 Leveldb 实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可以浏览原始页面 :-),感兴趣的
阅读全文
posted @
2016-01-17 22:58
duanxz
阅读(423)
推荐(0) 编辑
LevelDB Cache实现机制分析
摘要:几天前淘宝量子恒道在博客上分析了HBase的Cache机制,本篇文章,结合LevelDB 1.7.0版本的源码,分析下LevelDB的Cache机制。概述 LevelDB是Google开源的持久化KV单机存储引擎,据称是HBase的鼻祖Bigtable的重要组件tablet的开源实现。针对存储面对的...
阅读全文
posted @
2016-01-17 22:12
duanxz
阅读(1559)
推荐(0) 编辑
大型分布式系统中的缓存架构
摘要:本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 缓存概述 缓存的分类 缓存主要分为四类,如下图: CDN 缓存 CDN(Content Delivery Network 内容分发网络)的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中。
阅读全文
posted @
2016-01-17 22:10
duanxz
阅读(1441)
推荐(0) 编辑
Ehcache/Redis/Tair缓存性能对比[转载]
摘要:FW : http://xulingbo.net/?p=434 版权归许令波所有。此处只是一个转载。 后面介绍的不同方式都有测试数据,这些测试数据都是在同一的测试环境下得出的测试结果: 测试机器的配置如下: 64位5核CPU, E5620 @ 2.40GHz,内存8G CDN端缓存 由 于计数器的价
阅读全文
posted @
2016-01-17 21:29
duanxz
阅读(4897)
推荐(0) 编辑
nginx启动,重启,关闭命令
摘要:一、启动 cd usr/local/nginx/sbin ./nginx 二、重启 /usr/nginx/sbin/nginx -s reload 停止操作 停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的 步骤1:查询nginx主进程号 ps -ef | grep
阅读全文
posted @
2016-01-16 18:56
duanxz
阅读(2865)
推荐(0) 编辑
Nginx配置文件详细说明
摘要:在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.#运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件error_log /var/log/nginx/error.log;p...
阅读全文
posted @
2016-01-16 18:55
duanxz
阅读(330)
推荐(0) 编辑
windows下nginx安装、配置与使用
摘要:目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。 相比apeach、iis,nginx以轻量级、高性能、稳定、配置简单、资源占用少等优势广受欢迎。...
阅读全文
posted @
2016-01-16 18:55
duanxz
阅读(926)
推荐(0) 编辑
java http大文件断点续传上传
摘要:1,项目调研因为需要研究下断点上传的问题。找了很久终于找到一个比较好的项目。在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面。https://github.com/freewebsys/java-large-file-uploader-de...
阅读全文
posted @
2016-01-15 17:07
duanxz
阅读(9343)
推荐(0) 编辑
FTP断点续传
摘要:一,最重要的一点,断点续传需要服务器的支持,这个是必要条件。 传统的FTP SERVER是不支持断点续传的,因为它不支持REST指令,传统的FTP指令(我是指服务器端指令)并不包括REST指令。 第二,客户端要知道使用REST等一系列指令来作断点续传。 看看断点续传的详细过程...
阅读全文
posted @
2016-01-15 17:04
duanxz
阅读(20880)
推荐(1) 编辑
解读断点续传的基本原理
摘要:断点续传的理解可以分为两部分:一部分是断点,一部分是续传。断点的由来是在下载过程中,将一个下载文件分成了多个部分,同时进行多个部分一起的下载,当某个时间点,任务被暂停了,此时下载暂停的位置就是断点了。续传就是当一个未完成的下载任务再次开始时,会从上次的断点继续传送。 使用多线程断点续传下载的时...
阅读全文
posted @
2016-01-15 17:03
duanxz
阅读(2704)
推荐(0) 编辑
FTP文件传输协议两种模式 ftp协议集,错误码集,ftp客户端命令集
摘要:TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet, 你可以用ftp命令来传输...
阅读全文
posted @
2016-01-14 09:49
duanxz
阅读(4578)
推荐(0) 编辑
服务器是否支持断点续传
摘要:通常情况下,Web服务器(如Apache)会默认开启对断点续传的支持。因此,如果直接通过Web服务器来提供文件的下载,可以不必做特别的配置,即可享受到断点续传的好处。断点续传是在发起HTTP请求的时候加入RANGE头来告诉服务器客户端已经下载了多少字节。等所有这些请求都返回之后,再把得到的内容一块一...
阅读全文
posted @
2016-01-13 11:13
duanxz
阅读(5857)
推荐(1) 编辑
RocketMQ总结
摘要:架构 概念模型最基本的概念模型与扩展后段概念模型 存储模型 RocketMQ吐血总结User GuideRocketMQ是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求, 在2016年底捐赠给Apache开源基金会成为孵化项目,经过不到一年
阅读全文
posted @
2016-01-12 16:16
duanxz
阅读(762)
推荐(0) 编辑
ISO模型的七个分层
摘要:要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准, 从字面意思来看TCP/IP是TCP和IP协议的合称
阅读全文
posted @
2016-01-12 14:22
duanxz
阅读(8052)
推荐(2) 编辑
分布式系统的压测
摘要:全链路压测改造: 链路上的有些应用不是幂等的,需要针对的改造。 下游写流量的拦截,防止污染BI报表,推荐算法的影响。 中间件需要支持对压测流量的识别,使得压测标识能够随着调用传递下去。 全链路压测的安全机制分两层: 第一层是安全的监控和保护,建立非法流量的监控机制,正常用户访问不了的测试数据,测试用
阅读全文
posted @
2016-01-12 09:38
duanxz
阅读(527)
推荐(0) 编辑
性能测试,负载测试,压力测试,容量测试的区别
摘要:性能测试(Performance Test):以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。关注点:how much和how fast 负载测试:对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资
阅读全文
posted @
2016-01-12 09:29
duanxz
阅读(7582)
推荐(0) 编辑
ES:document的创建和删除
摘要:1、document的全量替换 (1)语法与创建文档是一样的,如果document id不存在,那么就是创建;如果document id已经存在,那么就是全量替换操作,替换document的json串内容 (2)document是不可变的,如果要修改document的内容,第一种方式就是全量替换,直
阅读全文
posted @
2016-01-11 19:11
duanxz
阅读(1303)
推荐(0) 编辑
全文检索引擎Solr系列——整合中文分词组件IKAnalyzer
摘要:IK Analyzer是一款结合了词典和文法分析算法的中文分词组件,基于字符串匹配,支持用户词典扩展定义,支持细粒度和智能切分,比如: 智能分词的结果是: 最细粒度分词结果: 整合IK Analyzer比mmseg4j要简单很多,下载解压缩IKAnalyzer2012FF_u1.jar放到目录:E:
阅读全文
posted @
2016-01-11 19:09
duanxz
阅读(570)
推荐(0) 编辑
全文检索引擎Solr系列——整合中文分词组件mmseg4j
摘要:默认Solr提供的分词组件对中文的支持是不友好的,比如:“VIM比作是编辑器之神”这个句子在索引的的时候,选择FieldType为”text_general”作为分词依据时,分词效果是: 它把每一个词都分开了,可以想象如果一篇文章这样分词的搜索的体验效果非常差。能够和Solr集成的中文分词组件有很多
阅读全文
posted @
2016-01-11 19:05
duanxz
阅读(446)
推荐(1) 编辑
全文检索引擎Solr系列——Solr核心概念、配置文件
摘要:Document Document是Solr索引(动词,indexing)和搜索的最基本单元,它类似于关系数据库表中的一条记录,可以包含一个或多个字段(Field),每个字段包含一个name和文本值。字段在被索引的同时可以存储在索引中,搜索时就能返回该字段的值,通常文档都应该包含一个能唯一表示该文档
阅读全文
posted @
2016-01-11 19:04
duanxz
阅读(667)
推荐(0) 编辑
全文检索引擎Solr系列—–全文检索基本原理
摘要:索引 Solr/Lucene采用的是一种反向索引,所谓反向索引:就是从关键字到文档的映射过程,保存这种映射这种信息的索引称为反向索引 左边保存的是字符串序列 右边是字符串的文档(Document)编号链表,称为倒排表(Posting List) 字段串列表和文档编号链表两者构成了一个字典。现在想搜索
阅读全文
posted @
2016-01-11 19:03
duanxz
阅读(515)
推荐(1) 编辑
ES之一:Elasticsearch6.4 windows安装 head插件ik分词插件安装
摘要:准备安装目标:1.Elasticsearch6.42.head插件3.ik分词插件 第一步:安装Elasticsearch6.4 下载方式:1.官网下载 https://www.elastic.co/downloads/elasticsearch2.百度网盘下载:https://pan.baidu.
阅读全文
posted @
2016-01-11 19:00
duanxz
阅读(1549)
推荐(0) 编辑
FTP,FTPS,FTPS与防火墙
摘要:昨天搭建了一台FTPS服务器,过程中学习了很多不清楚的知识点,还有遇到的问题,记录一下。(大部分内容汇集、整理自网络)一. 关于FTP传输模式 众所周知,FTP传输有两种工作模式,Active Mode和Passive Mode(主动模式和被动模式),简单描述连接过程如下: 主动模式的连接过程...
阅读全文
posted @
2016-01-11 14:32
duanxz
阅读(4219)
推荐(0) 编辑
NGINX通过Stream转发ftp请求
摘要:一、NGINX 1.9之前,需要安装第三方的TCP插件: http://www.cnblogs.com/i-blog/p/6165378.html 二、1.9之后直接使用Stream配置就可以了,当然需要先安装stream模块: 1.nginx 增加tcp./configure --with-str
阅读全文
posted @
2016-01-11 13:55
duanxz
阅读(5562)
推荐(0) 编辑
nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)
摘要:nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下),安装Nginx和HttpAccessKeyModule模块(参考LNMP环境搭建:第一步:在/usr/local/src/下下载模块压缩包: wget http://wiki.
阅读全文
posted @
2016-01-11 13:54
duanxz
阅读(2440)
推荐(0) 编辑
mysql实战优化之七:数据库侧配置优化
摘要:对于功能,我们可能知道必须改进什么;但对于性能问题,有时我们可能无从下手。其实,任何计算机应用系统最终队可以归结为: cpu消耗 内存使用 对磁盘,网络或其他I/O设备的输入/输出(I/O)操作。 但我们遇到性能问题时,要判断的第一点就是“在这三种资源中,是否有哪一种资源达到了有问题的程度”,因为这
阅读全文
posted @
2016-01-11 13:53
duanxz
阅读(967)
推荐(0) 编辑
TCP之一:传输控制协议(Transmission Control Protocol, TCP)
摘要:TCP协议主为了在主机间实现高可靠性的包交换传输协议。本文将描述协议标准和实现的一些方法。因为计算机网络在现代社会中已经是不可缺少的了,TCP协议主要在网络不可靠的时候完成通信,对军方可能特别有用,但是对于政府和商用部门也适用。TCP是面向连接的端到端的可靠协议。它支持多种网络应用程序。TCP对下层
阅读全文
posted @
2016-01-11 13:37
duanxz
阅读(6786)
推荐(1) 编辑
TELNET协议规范
摘要:ARPA Internet上的主机被要求采用并实现此标准。 介绍TELNET Protocol的目的是提供一个相对通用的,双向的,面向八位字节的通信方法。它主要的目标是允许接口终端设备的标准方法和面向终端的相互作用。可以预见到,此协议也可被用于终端到终端的通信和处理到处理的通信(分布式计算)。 ...
阅读全文
posted @
2016-01-11 13:37
duanxz
阅读(2271)
推荐(0) 编辑
FTP协议完全详解
摘要:1.介绍FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。在阅读本文之前最好能够阅读TCP协议标准规范和Telnet协议标准规范。2.概览在本节中我们将讨论一些表面上的问题,有些名词的定义请参...
阅读全文
posted @
2016-01-11 13:35
duanxz
阅读(41546)
推荐(2) 编辑
mysql索引之二:数据结构及算法原理
摘要:摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用My
阅读全文
posted @
2016-01-06 20:16
duanxz
阅读(578)
推荐(0) 编辑
MYSQL数据库索引类型都有哪些?
摘要:索引类型: B-TREE索引,哈希索引•B-TREE索引加速了数据访问,因为存储引擎不会扫描整个表得到需要的数据。相反,它从根节点开始。根节点保存了指向子节点的指针,并且存储引擎会根据指针寻找数据。它通过查找节点页中的值找到正确的指针,节点页包含子节点的指针,并且存储引擎会根据指针寻找数据。它通过查...
阅读全文
posted @
2016-01-06 19:25
duanxz
阅读(2850)
推荐(1) 编辑
mysql实战优化之八:关联查询优化
摘要:1. 多表连接类型 1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT * FROM table1 CROSS JOIN table2; SELECT * FROM table1 JOIN table2; SELECT
阅读全文
posted @
2016-01-06 19:24
duanxz
阅读(720)
推荐(0) 编辑
profile MySQL性能分析工具
摘要:分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个MySQL实例,而session级别紧影响当前session。该参数开启后,后续执行的SQL语句都将记录其资源...
阅读全文
posted @
2016-01-06 19:12
duanxz
阅读(1428)
推荐(0) 编辑
MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)
摘要:MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法。 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: 示例二:insert单条记录 使用 dual 做表名可以让你在 select 语句后面直接跟上
阅读全文
posted @
2016-01-05 23:17
duanxz
阅读(1150)
推荐(0) 编辑
mysql函数之一:INSTR、LOCATE、POSITION VS LIKE
摘要:LOCATE、POSITION和INSTR函数相似功能实例 使用LOCATE、POSITION和INSTR函数查找字符串中指定子字符串的开始位置。SQL语句如下: 执行结果如下: 从上图中代码执行的结果可以看出,子字符串“369”在字符串“www.baike369.com”中从第10个字母位置开始,
阅读全文
posted @
2016-01-05 21:19
duanxz
阅读(3952)
推荐(0) 编辑
Linux面试题大全(带答案)
摘要:一.填空题:1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。3. Linux文件系统中每个文件用 索引节点来标识。Linux文件系统使用索引节点来记录文件信息,作用于Windows的文件分配表类似,索引节点是一个数...
阅读全文
posted @
2016-01-05 21:11
duanxz
阅读(54174)
推荐(2) 编辑
spring bean id重复覆盖的问题解决
摘要:问题: 当我们的web应用做成一个大项目之后,里面有很多的bean配置,如果两个bean的配置id是一样的而且实现类也是一样的,例如有下面两份xml的配置文档: beancontext1.xml [html] view plain copy <?xml version="1.0" encoding=
阅读全文
posted @
2016-01-05 21:09
duanxz
阅读(5881)
推荐(1) 编辑
Spring MVC的异步模式(ResponseBodyEmitter、SseEmitter、StreamingResponseBody) 高级使用篇
摘要:DeferredResult高级使用 上篇博文介绍的它的基本使用,那么本文主要结合一些特殊的使用场景,来介绍下它的高级使用,让能更深刻的理解DeferredResult的强大之处。 它的优点也是非常明显的,能够实现两个完全不相干的线程间的通信。处理的时候请注意图中标记的线程安全问题~~~ 实现长轮询
阅读全文
posted @
2016-01-05 21:09
duanxz
阅读(5566)
推荐(0) 编辑
JDK实现的线程池之四:jdk实现的ScheduledThreadPoolExecutor
摘要:一、定时任务调度方式常见的有: 1、cron是一个linux下的定时执行工具,一些重要的任务的定时执行可以通过cron来实现,例如每天凌晨1点备份数据等。 2、在JAVA WEB开发中,我们也经常需要用到定时执行任务的功能,JDK提供了Timer类与ScheduledThreadPoolExecut
阅读全文
posted @
2016-01-05 21:08
duanxz
阅读(851)
推荐(0) 编辑
Mybatis拦截器介绍及分页插件
摘要:1.1目录1.1 目录1.2 前言1.3 Interceptor接口1.4 注册拦截器1.5 Mybatis可拦截的方法1.6 利用拦截器进行分页1.2前言 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻...
阅读全文
posted @
2016-01-05 21:01
duanxz
阅读(771)
推荐(0) 编辑
MyBatis collection的两种形式——MyBatis学习笔记之九
摘要:与association一样,collection元素也有两种形式,现介绍如下:一、嵌套的resultMap实际上以前的示例使用的就是这种方法,今天介绍它的另一种写法。还是以教师映射为例,修改映射文件TeacherMapper.xml如下(点击此处进入嵌套resultMap形式的示例源码下载页面。注...
阅读全文
posted @
2016-01-05 21:00
duanxz
阅读(6566)
推荐(0) 编辑
MyBatis 一对一(OneToOne)__SELECT
摘要:1.创建SQL脚本:CREATE TABLE t_person(id int(3) not null auto_increment,name varchar(20) default null,age int(3) default 0,primary key (id)) charset="gb2312...
阅读全文
posted @
2016-01-05 20:59
duanxz
阅读(1448)
推荐(0) 编辑
Mybatis 一对一(OneToOne)关系映射__INSERT
摘要:今天测试Ibatis的一对一的关联映射时总是出现错误,其中很多的错误都是自己不小心写错的..现把整个Ibatis源代码记录下来,以便以后熟记:1.数据库脚本:CREATE TABLE t_person( id int(3) not null auto_increment, name varchar(...
阅读全文
posted @
2016-01-05 20:59
duanxz
阅读(2259)
推荐(0) 编辑
mybatis association表关联与rowbounds共同使用时的异常及其解决方案
摘要:按照mybatis手册中所说的,association有两种实现方式,嵌套查询和嵌套结果映射。如手册中所述,select方式会带来N+1次查询的问题,考虑到效率问题的话建议使用嵌套结果映射。但是在结合使用rowbounds进行分页的时候嵌套结果映射会报Mapped Statements with n...
阅读全文
posted @
2016-01-05 20:58
duanxz
阅读(578)
推荐(0) 编辑
Mybatis Laz-Load功能实现代码赏析(原创)
摘要:对于Mybatis 拥有的Lazy Load(有中文翻译成延迟加载)功能,应该很同学都有听说过,今天主要与大家一起来解读一下Mybatis在Lazy Load功能的实现的代码。Lazy Load实现的功能很好理解,就是在数据与对象进行Mapping操作时,只有当真正使用该对象时,才进行Mapping...
阅读全文
posted @
2016-01-05 20:58
duanxz
阅读(729)
推荐(0) 编辑
mybatis sql中的条件语句
摘要:1.mybatis判断是否为空或null 2.Mybatis中的like查询 今天要做一个模糊查询 用的Mybatis 开始写的是: 最后改为: select id,bookName,author,publisher,donor,status,createDate,lastUpdate from b
阅读全文
posted @
2016-01-05 20:57
duanxz
阅读(9077)
推荐(1) 编辑
HDFS之四:HDFS原理解析(总体架构,读写操作流程)
摘要:前言 HDFS 是一个能够面向大规模数据使用的,可进行扩展的文件存储与传递系统。是一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和 存储空间。让实际上是通过网络来访问文件的动作,由程序与用户看来,就像是访问本地的磁盘一般。即使系统中有某些节点脱机,整体来说系统仍然可以持
阅读全文
posted @
2016-01-05 20:56
duanxz
阅读(4527)
推荐(0) 编辑
Mybatis多参数查询映射
摘要:一、单个参数: 二、多参数: 三、Map封装多参数: 四、List封装in: 五、多参数传递之注解方式示: 六、selectList()只能传递一个参数,但实际所需参数既要包含String类型,又要包含List类型时的处理方法: 将参数放入Map,再取出Map中的List遍历。如下:
阅读全文
posted @
2016-01-05 20:55
duanxz
阅读(898)
推荐(0) 编辑
mysql索引之六:mysql高效索引之覆盖索引
摘要:概念 如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作 判断标准 使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询 注
阅读全文
posted @
2016-01-05 20:54
duanxz
阅读(1177)
推荐(0) 编辑
MYSQL BENCHMARK()函数
摘要:MySQL有一个内置的BENCHMARK()函数,可以测试某些特定操作的执行速度。 BENCHMARK会重复计算expr表达式count次,通过这种方式就可以评估出mysql执行这个expr表达式的效率。这个函数的返回值始终是0,但可以根据客户端提示的执行时间来得到BENCHMARK总共执行的所消耗
阅读全文
posted @
2016-01-05 20:52
duanxz
阅读(4657)
推荐(0) 编辑
并集(union和union all的区别)、交集、差集、全连接
摘要:一、并集 Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要删除重复行,那么就使用Union All 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致); 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关
阅读全文
posted @
2016-01-05 20:43
duanxz
阅读(4178)
推荐(0) 编辑
跳出率、退出率、蹦失率的概念?
摘要:作SEO的人应该都听说过“跳出率”“退出率”“蹦失率”下面我来介绍下:什么是跳出率?定义:跳出率指单页访问次数或访问者从进入(目标)页离开网站的访问次数百分比。公式:Bouce Rate=单页访问者/总访问者数量什么是退出率(Exite Rate)定义:通过当前页面离开网站的浏览次数与该网页总浏览次...
阅读全文
posted @
2016-01-05 20:33
duanxz
阅读(2189)
推荐(0) 编辑
js页面埋点
摘要:页面埋点的作用,其实就是用于流量分析。而流量的意思,包含了很多:页面浏览数(PV)、独立访问者数量(UV)、IP、页面停留时间、页面操作时间、页面访问次数、按钮点击次数、文件下载次数等。而流量分析又有什么用处: 1、提高网站的转化率 根据页面埋点可得到一些重要信息,它告诉你用户对网站的反应,以及如何
阅读全文
posted @
2016-01-05 20:33
duanxz
阅读(2144)
推荐(0) 编辑
sql语句中GROUP BY 和 HAVING的使用 count()
摘要:在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。SELECT SUM(population) FROM bbc这里的SUM作用在所有返回记录...
阅读全文
posted @
2016-01-05 19:29
duanxz
阅读(11049)
推荐(0) 编辑
HDFS之三:hdfs参数配置详解
摘要:1、hdfs-site.xml 参数配置 – dfs.name.dir – NameNode 元数据存放位置 – 默认值:使用core-site.xml中的hadoop.tmp.dir/dfs/name – dfs.block.size – 对于新文件切分的大小,单位byte。默认是64M,建议是1
阅读全文
posted @
2016-01-05 19:27
duanxz
阅读(26987)
推荐(3) 编辑
Eclipse Java注释模板设置详解
摘要:在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的数倍。因此项目的可维护性、可复用性是衡量一个项目好坏的关键。而注释则是可维护性中必不可少的一环。注释模板导入步骤安装方法:打开eclipse/myeclipse选择 window-->Preferences-->JAVA-->Code-->...
阅读全文
posted @
2016-01-05 19:13
duanxz
阅读(711)
推荐(0) 编辑
linux下mysql配置文件my.cnf最详细解释
摘要:MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下;在Linux下叫my.cnf,该文件位于/etc/my.cnf。 可以查找下:find / -name my.cnf my.cnf的文件内容: my.cnf的文件内容说明: # *** 应用定制选项 *** ## MyS
阅读全文
posted @
2016-01-05 19:01
duanxz
阅读(48572)
推荐(2) 编辑
mysql函数之二:left,right,substring,substring_index MySQL截取字符串函数方法
摘要:函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2、从右开始截取字符串 right(str, length) 说明:right
阅读全文
posted @
2016-01-05 18:57
duanxz
阅读(2819)
推荐(0) 编辑
mysql函数之三:find_in_set() 函数 返回str在字符串集strlist中的序号
摘要:如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N。 FIND_IN_SET(str,strlist) 如果字符串str是在的strlist组成的N子串的字符串列表,返回值的范围为1到N。 一个字符串列表就是一个由一些被 ‘,’ 符号分开的子链组成的字符串。如果第一个
阅读全文
posted @
2016-01-05 10:19
duanxz
阅读(3712)
推荐(1) 编辑
binlog之一:binary log初探
摘要:MySQL Binary Log也就是常说的bin-log,是mysql执行改动产生的二进制日志文件,其主要作用有两个: Replication(主从数据库):在master端开启binary log后,log会记录所有数据库的改动,然后slave端获取这个Log文件内容就可以在slave端进行同样
阅读全文
posted @
2016-01-04 19:13
duanxz
阅读(1457)
推荐(0) 编辑
Mysql 关键字-保留字
摘要:ADDALLALTERANALYZEANDASASCASENSITIVEBEFOREBETWEENBIGINTBINARYBLOBBOTHBYCALLCASCADECASECHANGECHARCHARACTERCHECKCOLLATECOLUMNCONDITIONCONNECTIONCONSTRAI...
阅读全文
posted @
2016-01-04 19:12
duanxz
阅读(5040)
推荐(0) 编辑
binary(binary区分大小写),unsigned,unsigned zerofill关键字介绍
摘要:mysql建表时,每个字段的属性有三个选项: binary,unsigned,unsigned zerofill,作用如下: 一、binary CHAR VARCHAR:值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键字。使用BINARY的例子见 mysql查询不区分大小写问
阅读全文
posted @
2016-01-04 18:58
duanxz
阅读(3438)
推荐(1) 编辑
mysql update不支持子查询更新
摘要:先看示例: 结果: 表中的create_user_uin_tree标识该条记录由谁创建。 创建新用户时,根据当前登录用户的uin及新创建的用户uin,有如下SQL: 结果: 那么修改的create_user_uin_tree的标识SQL为: 报错信息: Error Code: 1093. You c
阅读全文
posted @
2016-01-04 15:18
duanxz
阅读(12460)
推荐(0) 编辑
mysql函数之四:concat() mysql 多个字段拼接
摘要:语法: COUNT(DISTINCT expr ,[expr ...]) 函数使用说明:返回不同的非NULL 值数目。若找不到匹配的项,则COUNT(DISTINCT) 返回 0 Mysql的查询结果行字段拼接,可以用下面两个函数实现: 1. concat函数 如果连接串中存在NULL,则返回结果为
阅读全文
posted @
2016-01-04 14:38
duanxz
阅读(121823)
推荐(0) 编辑
经典SQL问题: 行转列,列转行
摘要:情景简介 学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列。数据库grade里面数据如下图,假定每个人姓名都不一样,作为主键。本文以MySQL为基础,其他数据库会有些许语法不同。 数据库数据: 处理后效果: 下面介绍三种方法: 方法一: SELECT DISTIN
阅读全文
posted @
2016-01-04 13:21
duanxz
阅读(1327)
推荐(0) 编辑
RocketMQ之三:RocketMQ集群环境搭建
摘要:1、初步理解Producer/Consumer Group在安装RocketMQ之前我们先来理解Group概念,在RocketMQ中Group是很重要的。通过Group机制,让RocketMQ天然的支持消息负载均衡!比如某个Topic有9条消息,其中一个Consumer Group有3个实例(3个进
阅读全文
posted @
2016-01-04 11:37
duanxz
阅读(5476)
推荐(0) 编辑
mysql函数之五:group_concat mysql 把结果集中的一列数据用指定分隔符转换成一行
摘要:函数使用说明:该函数返回带有来自一个组的连接的非NULL 值的字符串结果。其完整的语法如下 例子: 结果: # uin'1''2''3''44''176''196''204''210''215''237''238' 结果: 示例3: 找到管理员及下级管理员所创建的角色: 或者: 但查不出结果来,为什
阅读全文
posted @
2016-01-04 11:24
duanxz
阅读(4596)
推荐(0) 编辑