01 2016 档案
摘要:摘要:随着数据体积的激增,MySQL+memcache已经满足不了大型互联网类应用的需求,许多机构也纷纷选择Redis作为其架构上的补充,下面就一览新浪微博、Pinterest及Viacom的实践分享。 随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽。这里我们将为大家分享社
阅读全文
摘要:Redis与Memcached的区别 传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.My
阅读全文
摘要:今天突然发现一个新大陆,Webbench,是linux下,用这很方便,开源,不限制并发访问次数和时间....大爱啊! 下载Webbench 使用wget 或者windows下载好导入linux也行,地址:http://home.tiscali.cz/cz210552/distfiles/webben
阅读全文
摘要:VMware CEO Pat Gelsinger曾说:数据科学是未来,大数据分析则是打开未来之门的钥匙企业正在迅速用新技术武装自己以便从大数据项目中获益。各行业对大数据分析人才的需求也迫使我们升级自己的技能以便寻找更好的职业发展。跳槽之前最好先搞清楚一个岗位会接触到的项目类型,这样你才能掌握所有需要...
阅读全文
摘要:一、Redis Client介绍1.1、简介Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对各类API进行封装调用。Jedis源码工程地址:https://github.com/xetorthio/jedis1.2、使用Redis Client最好选用与服务端对应...
阅读全文
摘要:开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。(1)Java的安装配置可以参考我们的Java开发环境配置(2)安装了 redis 服务;请参考:Windows环境下使用Redis缓存工具的图文详细...
阅读全文
摘要:一、简介 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,...
阅读全文
摘要:用Redis构建分布式锁在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。这篇文章的目的就是尝试提出一种官方权...
阅读全文
摘要:Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。这里是Pipe原理的图示:创建管道通过Pipe.open()方法打开管道。例如:Pipe pipe = Pipe.open();向管道写数据要向管道...
阅读全文
摘要:Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。这里有个例子:ServerSocketChannel server...
阅读全文
摘要:Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。打开 DatagramChannel下面是 DatagramChannel 的打开方式:DatagramChannel channel...
阅读全文
摘要:Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个...
阅读全文
摘要:Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。打开 S...
阅读全文
摘要:Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表:为什么使用Selector?Selector的创建向Selector注册通道S...
阅读全文
摘要:Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Chann...
阅读全文
摘要:在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。transferFrom()FileChannel的transferFrom()方法可以将数据从源通道传输到FileChan...
阅读全文
摘要:Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIO Buffer相关的话题列表...
阅读全文
摘要:Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的...
阅读全文
摘要:Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具...
阅读全文
摘要:1. 背景1.1. Java线程模型的演进1.1.1. 单线程时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能。1...
阅读全文
摘要:作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。Java编程入门类一 对于没有Java编程经验的程序员要入门,随便读什么入门...
阅读全文
摘要:一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。Java...
阅读全文
摘要:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术,具体的应用需求还得具体分析。如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还...
阅读全文
摘要:分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告:架构师不要将精力浪费在如何设计能满足三...
阅读全文
摘要:本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法。具体参考文章,详见最后的链接。三、LVS负载均衡LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,用来实现Linux平台下的简单负载均衡。LVS是Li...
阅读全文
摘要:本次分享大纲软件负载均衡概述Ngnix负载均衡Lvs负载均衡Haproxy负载均衡本次分享总结一、软件负载均衡概述硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。本文...
阅读全文
摘要:本文是负载均衡详解的第一篇文章,介绍负载均衡算法, 硬件负载均衡。部分内容摘自读书笔记。三、负载均衡算法常用的负载均衡算法有,轮询,随机,最少链接,源地址散列,加权等方式;3.1 轮询将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。优点:服务器请求数目相同;缺点:服务器压力不一样,不...
阅读全文
摘要:面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。从单机网站到分布式网站,很重要的区别是业...
阅读全文
摘要:本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka)。【第二篇的内容大部分为网络资源的整理和汇总,供大家学习总结使用,最后有文章来源】本次分享大纲消息队列概述(见第一篇:大型网站架构系列:分布式消息队列(...
阅读全文
摘要:以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务(见第二篇:大型网站架构系列:分布式消息队列(二))常用消息队列(见第二篇:大型网站架构系列:分布式消息队列(二))参考(推荐)...
阅读全文

浙公网安备 33010602011771号