- 博客(278)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Sentinel 模块在Twemproxy、ReHash中的应用
1 Sentinel API概念理解有两种方式可以与Sentinel进行通讯:指令、发布与订阅。 Sentinel命令 PING :返回 PONG 。 SENTINEL masters :列出所有被监视的主服务器,以及这些主服务器的当前状态; SENTINEL slaves :列出给定主服务器的所有从服务器,以及这些从服务
2014-04-29 20:08:34
2273
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 基于nutcracker 的redis分布式缓存的实现的注意
TwemPWhat’s awesome about Twemproxy is that it can be configured both to disable nodes on failure, and retry after some time, or to stick to the specified keys -> servers map. This means that it i
2014-04-25 19:31:19
6008
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Pearson 相关系数--最佳理解及相关应用
Pearson 相关系数介绍pearson是一个介于-1和1之间的值,用来描述两组线性的数据一同变化移动的趋势。 当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数等于0,表明它们之间不存在线性相关关系。用
2013-12-19 13:20:50
86982
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 数学距离与相似度度量
一 数学距离1.1 一些性质 数学距离具有一些性质。如果d(p1, p2)是两个点p1和p2之间的距离,则如下性质成立: (1)非负性 (a)对于所有的p1和p2,d(p1, p2)≥0, (b)当且仅当p1=p2时,d(p1, p2)=0。 (2)对称性
2013-12-10 21:43:05
2531
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 架构之路 ---大型网站架构演变和知识体系
之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行
2013-07-13 01:27:23
1243
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java分布式应用简介------I/O模型:阻塞与非阻塞、同步与异步
背景: 按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO服
2013-07-02 23:43:50
2395
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 IO模型及select、poll、epoll和kqueue的区别
先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法一、问题引出 联系区别问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解决方案有以下几种:1.使用多进程或者多线程,但是这种方法会造成程序的复杂,而且对与进程与线程的创
2013-06-01 16:00:07
5885
2
转载 深入理解Linux的软链接和硬链接等Linux易漏知识
一直没有深入了解过链接这块的知识,昨晚有个朋友问我这问题,一下子激发了我的兴趣。今天早上过来看了看鸟哥的书然后在stackoverflow上找了一番,感觉自己现在的理解到位了,起码这样理解容易记忆。先来做个实验,在我们的用户目录下,建立一个测试文件夹,然后新建一个文件,并创建这个文件的软链接和硬链接。如下:123vim fil
2014-05-15 00:02:52
1133
1
原创 Tomcat工作原理 、JVM内存溢出及合理配置、配置文件详解
Wrapper 代表一个 Servlet,它负责管理一个 Servlet,包括的 Servlet 的装载、初始化、执行以及资源回收。Wrapper 是最底层的容器,它没有子容器了,所以调用它的 addChild 将会报错。
2014-04-17 12:07:24
3036
原创 Win7下Zookeeper 单机与集群的搭建【可行版】
1. 概述 ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。2 下载 安装
2014-04-08 17:35:32
3943
原创 Redis 关键 点
虚拟内存(适用于value比key大的情况)4.1.Redis虚拟内存简介首先说明下redis的虚拟内存与操作系统虚拟内存不是一码事,但是思路和目的都是相同的。就是暂时把不经常访问的数据从内存交换到磁盘中,从而腾出宝贵的内存空间。对于redis这样的内存数据库,内存总是不够用的。除了可以将数据分割到多个redis服务器以外。另外的能够提高数据库容量的办法就是使用虚拟内存技术把那些不经常访问
2014-04-04 11:37:44
968
原创 Spring AOP 之编译期织入、装载期织入、运行时织入
一 配置工厂Bean 通常由应用程序直接使用new创建新对象,为了将对象的创建与使用相分离,采用工厂模式,即应用程序将对象的创建与初始化交给工厂来完成。 一般情况下,应用程序有自己的工厂对象来创建bean,如果将工厂对象交给Springle管理,那么Spring管理的就不是普通的bean,而是工厂Bean。调用getBean()方法,Sprin
2014-04-03 19:37:05
24438
1
原创 一致性哈希算法 理解及实际应用中 优化
一 雪崩现象 一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。 因此,引入了一
2014-04-02 18:14:37
1993
原创 基于Jedis实现Redis分片的理解
一 理解前提 分片是为了把鸡蛋放到几个篮子里,而Dynamo型的分片加复制备份可以再把数据复制几份,每一份copy放到不同的节点上。 Redis在数据容灾处理方面可以通过服务器端配置Master-Slave模式来实现,而在分布式集群方面目前只能通过客户端工具来实现一致性哈希分布存储,即key分片存储。Redis可能会在3.0版本支持服务器端的分布存储
2014-04-02 17:39:03
4257
原创 nginx-maven-配置文件关键点
一 关于nginx操作启动:双击nginx-0.8.52/nginx.exe文件。在命令行环境下进入naginx目录,输入nginx命令操作nginx启动,停止启动:start nginx停止:nginx -s stop (快速退出nginx)退出:nginx -s quit (彻底退出nginx)重启 nginx -s reload(修改了配置重启)
2014-03-31 12:08:26
3788
转载 Ant 快速上手
1 Ant初识 [html] view plaincopyprint?xml version="1.0" encoding="UTF-8"?> project name="AntDemoProject" default="dist" basedir="."> property name="src" loca
2014-03-20 16:36:42
1059
原创 Maven快速上手
1 首先看一下Maven3的基本知识[java] view plaincopyprint?/** * @see =============================================================================================================
2014-03-20 16:27:03
1283
原创 Jackson--protobuf序列化积累
最近使用了jackson json来格式化数据输出,但是反序列化生成对象的时候碰到点麻烦,jackson把数据默认解析成了Map对象,经查询文档,问题解决,在ObjectMapper的readvalue方法中按Object所使用的类型声明即可,代码如下:Map srcMap = new LinkedHashMap();Map destMap;String jso
2014-03-19 18:08:09
4057
1
原创 Eclipse 插件大全 在线安装
Since Eclipse 3.7 (Indigo), m2e is now hosted at eclipse.org. To install it, you just need to use the default Eclipse update site:http://download.eclipse.org/releases/keplerhttp://download.ecl
2014-02-27 10:35:53
1674
原创 分布式系统中数据一致性问题
分布式环境下(数据分布)要任何时刻保证数据一致性是不可能的,只能采取妥协的方案来保证数据最终一致性。这个也就是著名的CAP定理。CAP定理是2000年,由 Eric Brewer 提出来的Brewer认为在分布式的环境下设计和部署系统时,有3个核心的需求,以一种特殊的关系存在。这里的分布式系统说的是在物理上分布的系统,比如我们常见的web系统。这3个核心的需求是:Consi
2014-02-20 17:15:40
1404
转载 各种常用的JSON接口
这里为大家搜集了一些能够返回JSON格式的服务接口。部分需要用JSONP调用。其中一些接口提供用例参照:http://www.bejson.com/webInterface.php天气接口气象局接口:http://m.weather.com.cn/data/101010100.html 解析 用例音乐接口:虾米接口http://kuang.xiami.com/a
2014-02-08 22:19:46
1554
1
翻译 RIA Architecture
RIA ArchitectureRIA (Rich Internet Applications) are a special breed of web applications where the user interface has much richer functionality than what the first and second generation web appl
2014-01-12 14:02:01
1071
1
翻译 Software Architecture
Software ArchitectureNote: This tutorial is still work in progress. It will be updated bit by bit, until it reaches a more comprehensive and coherent state. However, you may still get someth
2014-01-12 13:51:39
1623
翻译 Caching Techniques
Caching TechniquesCaching is a technique to speed up data lookups (data reading). Instead of reading the data directly from it source, which could be a database or another remote system, the
2014-01-12 00:15:54
1012
翻译 Load Balancing
Load BalancingLoad balancing is a method for distributing tasks onto multiple computers. For instance, distributing incoming HTTP requests (tasks) for a web application onto multiple web serve
2014-01-11 23:55:27
1609
翻译 Scalable Architectures
Scalable ArchitecturesA scalable architecture is an architecture that can scale up to meet increased work loads. In other words, if the work load all of a sudden exceeds the capacity of your exi
2014-01-11 22:30:32
1057
转载 C++内存管理详解
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式
2013-12-10 15:09:59
689
转载 推荐系统介绍
1.1 基于内容的推荐系统 基于内容推荐是推荐系统中比较常见的一种做法,这种方法对于每个item基于其自身属性,抽取一些特征用来表示这个item的内容,从而推荐那些和当前item含有相同或相近特征的一些item。 这种推荐系统多用于一些资讯类的应用上,针对文章本身抽取一些tag作为该文章的关键词,继而可以通过这些tag来评价两篇文章的相似度。抽取tag经常采用的方案是基
2013-12-07 22:37:03
1335
转载 FastDFS的搭建
一、何为分布式文件系统 “分布式文件系统,顾名思义,就是 分布式+文件系统 。它包含这两个方面的内涵,从文件系统的客户使用的角度来看,它就是一个标准的文件系统,提供了一系列API,由此进行文件或目录的创建、移动、删除,以及对文件的读写等操作。从内部实现来看,分布式的系统则不再和普通文件系统一样负责管理本地磁盘,它的文件内容和目录结构都不是存储在本地磁盘上,而是通过网络传输到远端系统上。并且,同
2013-12-05 17:11:08
970
转载 MVC与三层模型探讨
我认为mvc设计模式,关键在于构建model,model就是mvc模式的灵魂,他包含了三层架构里面的 “实体规范层”、“行为规则层”、“数据访问层”;控制器(Controller)用来收集view提供的用户数据,传递给model,同时返回model处理后的数据给view。model的设计可以参考三层架构的设计方法,将实体、行为规则(业务逻辑)和数据访问分开,在数据访问上可以应用orm框架。三层架构
2013-11-03 23:46:50
1421
1
转载 高并发高流量网站架构
Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求。 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在
2013-11-03 23:22:46
1412
转载 大型高并发高负载网站的系统架构
大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些
2013-11-03 21:57:16
1153
转载 大型高并发高负载web应用系统架构-数据库架构策略
在WEB网站的规模从小到大不断扩展的过程中,数据库的访问压力也不断的增加,数据库的架构也需要动态扩展,在数据库的扩展过程基本上包含如下几步,每一个扩展都可以比上一步骤的部署方式的性能得到数量级的提升。 1、WEB应用和数据库部署在同一台服务器上 一般的小规模的网站采用这种方式,用户量、数据量、并发访问量都比较小,否则单台服务器无法承受,并且在遇到性能瓶颈的时候升
2013-11-03 21:43:04
1138
转载 结合MongoDB开发LBS应用
简介随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理。我所在的项目也正从事相关系统的开发,我们使用的是Symfony2+Doctrine2 ODM+MongoDB的组合。我们将这些技术要点整理成文,希望能够通过本文的介绍和案例,详细解释如何使用MongoDB进行地理位置信息的查询和处理。在
2013-10-31 22:32:05
1101
转载 图解 MongoDB 地理位置索引的实现原理
地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一。我们知道,通常的数据库索引结构是B+ Tree,如何将地理位置转化为可建立B+Tree的形式,下文将为你描述。首先假设我们将需要索引的整个地图分成16×16的方格,如下图(左下角为坐标0,0 右上角为坐标16,16):单纯的[x,y]的数据是无
2013-10-31 22:26:21
1017
转载 地图开发概念
要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程。对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容。其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟:矢量模型:同
2013-10-31 22:22:25
3063
原创 Windows下Resin的配置与部署(可用版)
一 Resin简介Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHE SERVER。许多站点都是使用该WEB服务器构建的
2013-09-11 20:46:43
6261
转载 基于Java技术的大型网站架构方案
1、Web层主体架构可以基于 Struts 1.X/2.X,当然有很多更好的控制层框架供选择,以快速敏捷为准则吧。 抽象出核心库封装 控制器和中间层的操作。 在大规模集群环境下,session复制会引起严重的性能问题。考虑用 集群缓存 + cookie验证 代替session实现权限控制吧。 2、Cache层配置 Memcache 组成集群缓存 对 Memcache 客户端
2013-09-07 20:19:16
897
转载 nginx整合tomcat实现负载均衡/集群(可用版)
相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:Html代码 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服
2013-08-31 16:36:25
1330
3
原创 缓存算法及LRU的实现(Java)
没有人能说清哪种缓存算法是源于其他的缓存算法。Least Frequently Used(LFU):大家好,我是 LFU,我会计算为每个缓存对象计算他们被使用的频率。我会把最不常用的缓存对象踢走。Least Recently User(LRU):我是LRU缓存算法,我把最近最少使用的缓存对象给踢走。我总是需要去了解在什么时候,用了哪个缓存对象。如果有人想要了
2013-08-20 21:34:39
1020
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人