`
文章列表
出自:http://www.iteye.com/magazines/132-Java-NIO   Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) Java NIO提供了与标准IO不同的IO工作方式:  Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作, ...
宏观: 1.缓存。在持久层或持久层之上做缓存。 从数据库中查询出来的数据先放入缓存中,下次查询时,先访问缓存,如果未命中则查询数据库。 2.表分区和拆分.无论是业务逻辑上的拆分还是无业务含义的分区。 3.提高磁盘速度.这包括RAID和其他磁盘文件分段的处理。主要的思想是提高磁盘的并发度(多个物理磁盘存放同一个文件)。
最近看到一篇博客,大致的意思就是网管将原本混乱不堪的交换机整理整齐了,起初交换机是图2那样的,由于越来用的人越多,操作的人越来越多,最终成为了图1那个样子。这不禁让我想到了项目中的代码,原先在刚上线的时候谈不上是完美的,但它总归是整齐的,但是由于中间人员流动,bug修改等等原因吧,最终的结果就是代码一团糟。为什么会出现这样的情况呢?
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议。 MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁( ...
本文我们主要介绍了MySQL性能分析以及explain的使用,包括:组合索引、慢查询分析、MYISAM和INNODB的锁定、MYSQL的事务配置项等,希望能够对您有所帮助。 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selecttype table type possible_keys key key_len ref rows extra各列。 其中, type=const表示通过索引一次就找到了; key=primary的话,表示使用了主键; type=all,表示为全表扫描; key=nu ...
下面是一些个人架构上的总结,本来想只在公司内部进行共享的,因此内容写的口语化一点,也没什么图示,所有内容没有查任何资料是脑子里面的东西吐出来的因此可能会不准确不全,希望抛砖引玉,大家互相讨论。 要注意,我这些文章是一个总体的架构经验不针对具体的语言和平台,因此也不一定是适用所有的语言和平台的。 (内容是前几天写的,现附上索引)   前端架构 http://www.iteye.com/topic/1134817(前端内容有点少我不懂前端) 后端架构 系统层面 http://www.iteye.com/topic/1134819 语言层面 
ajax请求代码:   [javascript] view plaincopy   //区域事件选择配送点  
千峰老师的《大规模分布式系统架构与设计实战》的第三章讲的是分布式协调的实现,在工头-职介所-工人的模型中,分布式协调实际上就是职介所相关的一些内容,包括领导(职介所)怎么产生的,当前领导宕机了怎么办,领导如何管理各个员工(工人)等等一系列问题。 在fourinone中,选取领导并不像paxos算法一样实行基于抢占的少数服从多数的策略,而是一种谦让的策略,相当领导的人在发出当领导的申请之前先问问别人想不想当领导,如果想,他自己就先忍着,如果没有其他人他才出头。这样就避免了冲突。 当领导确定后,有领导统一发号施令,同步各个机器。 而领导又是如何同步各个机器的呢?fourinone框架通过park进 ...
前言 本文将会着重介绍防御XSS攻击的一些原则,需要读者对于XSS有所了解,至少知道XSS漏洞的基本原理,如果您对此不是特别清楚,请参考这两篇文章:《Stored and Reflected XSS Attack》《DOM Based XSS》 攻击者可以利用XSS漏洞向用户发送攻击脚本,而用户的浏览器因为没有办法知道这段脚本是不可信的,所以依然会执行它。对于浏览器而言,它认为这段脚本是来自可以信任的服务器的,所以脚本可以光明正大地访问Cookie,或者保存在浏览器里被当前网站所用的敏感信息,甚至可以知道用户电脑安装了哪些软件。这些脚本还可以改写HTML页面,进行钓鱼攻击。 虽然产生XS ...
1、索引中最常见的就是B树索引,B树索引的实现与二叉查找树相似,但是B的意思不是binary,而是balance(平衡)。 2、B树索引上的每个结点都是一个块,有叶子块和分支块之分。块中的数据包括各个索引以及一个rowid。走索引查询时,会按照树的分支将需要查询数据路径上的相应的分支块和叶子块读到内存。 3、B树索引不存在非唯一性条目,在一个非唯一性索引中,Oracle会把rowid作为一个额外的列追加到键上,使得键唯一。非唯一性索引,会先按索引键值排序,然后按rowid升序排序。 4、B树索引时高度平衡的,大多数情况,B树索引的高度都是2或3,即使索引数百万行记录也是如此。这说明,一般情况 ...
下面内容来源于Quora上的一个提问,问题是使用Redis需要避免的五个问题。而回答中超出了五个问题的范畴,描述了五个使用Redis的注意事项。如果你在使用或者考虑使用Redis,可能你可以学习一下下面的一些建议,避免一下提到的问题。 1.使用key值前缀来作命名空间 虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。 另外,在使用前缀作为命名空间区隔不同key的时候,最好在程序中使用全局配置来实现,直接在代码里写前缀的做法要严格避免,这样可维护性实在太差了。
一,说明 因项目需求要调研一下TDDL,在调研中发现相关的资料较少,因此记之。本文描述Diamond和TDDL中间件的部署和使用。Diamond(http://code.taobao.org/p/diamond/wiki/index/)是淘宝开源的配置管理系统(config server),以简单可用的方式提供分布式系统的配置管理功能。TDDL(http://code.taobao.org/p/tddl-dynamic-datasource/wiki/index/)是淘宝开源的数据库中间件,提供统一的中间层实现对下层数据库的集群管理,动态配置,读写分离等功能(数据同步需自行处理);当前开 ...
我们的程序常常有一些配置信息,例如连接的数据库配置、缓存大小、线程数等等。这些配置信息的管理一般有两种方式: a. 配置信息放到文件中,程序启动时导入,或者在程序运行过程中监控文件的修改重新导入配置文件 b. ...
淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer 外号:头都大了 ©_Ob)框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离, ...
[转载请注明作者和原文链接,  如有谬误, 欢迎在评论中指正. ]    场景描述 在分布式应用, 往往存在多个进程提供同一服务. 这些进程有可能在相同的机器上, 也有可能分布在不同的机器上. 如果这些进程共享了一些资源, 可能就需要分布式锁来锁定对这些资源的访问.本文将介绍如何利用zookeeper实现分布式锁. 思路 进程需要访问共享数据时, 就在"/locks"节点下创建一个sequence类型的子节点, 称为thisPath. 当thisPath在所有子节点中最小时, 说明该进程获得了锁. 进程获得锁之后, 就可以访问共享资源了. 访问完成后, 需要将t ...
Global site tag (gtag.js) - Google Analytics