write down,forget
  • adidaseqt
  • eqtturbored
  • eqtsupport9317
  • eqtsupport
  • 9317adidas
  • adidaseqtboost9317
  • eqtsupport93
  • 9317eqt
  • eqt support 9317 adv
  • support 9317 adv
  • eqtadv
  • eqt9317
  • eqtadv9317
  • support93
  • originalseqt
  • adidas eqt
  • eqt support 9317
  • eqt support
  • eqt adv
  • eqt 9317
  • 存档 Archives : August, 2011

    Diving Into ElasticSearch (5) 分布式架构

    <Category: Diving Into ElasticSearch> 3 条评论

    今天介绍下ElasticSearch的分布式架构,如果你熟悉cassandra、hadoop、mongodb,你会发现ElasticSearch里面有很多他们的影子,没错,ElasticSearch吸收了目前主流的分布式系统的很多特性,下面简单介绍一把。

    之前翻译过一篇[译]搜索引擎与时间机器,里面介绍了下作者在设计ElasticSearch的一些想法,现在看起来还是记忆犹新,因为他的这种思路实在是非常新颖,比如ES里面的将数据分为工作数据和持久化数据两种:

    工作数据就是正常的提供查询和索引的数据,这部分数据假定是瞬时的,并且是不可靠的,随时可能丢失的数据,而持久化数据则是可靠的,一致的数据,工作数据可以都放在内存中,这样可以保证非常好的性能,而持久化数据则专心保证数据的一致性就ok了,我们自动的分布式系统有CAP原则,通过对数据分离方式,我们很好的解决了C和A的问题,你可能会问,你内存中的数据如果不对了怎么办?不就会影响数据的一致性吗?一方面数据可以从持久化数据进行加载,另外ES节点间的数据会定时刷新和同步,最终确保数据的一致,就算万一机器都歇了,没关系,从持久化目录里面重新加载数据即可。

    单前面说的那个还不算什么,如果不能很好的解决动态扩容的问题,那就不算是ElasticSearch了,在ElasticSearch里面,索引目录有如下两个概念:shard(碎片)、replica(副本)

    碎片(shard)的意思很好理解,db可以有sharding,索引也可以做嘛,单个索引目录太大,GB级别的索引文件,你再继续往里塞数据,文件合并,优化,有过这种经验的人应该会明白这种痛苦,怎么办?拆呗(china?拆那?),一般的做法是按数据拆,自己按租户,按时间拆等等,很是麻烦,并且拆完了之后的事情也不少,跨目录查询怎么办?更新怎么办?接口要怎么变?这些在ElasticSearch里面都帮你想到了,对你而言,全是透明的,你操作的就是一个索引,你在创建索引的时候,根据索引的规模指定碎片的大小,其他的你就不用管了,至于它里面怎么实现数据的平均分配,其实很简单,就用了一个取模的算法,随机分配到各个碎片中,至于一致性哈希之类的,目前来说完全没有必要。

    碎片可以解决单个索引太大的问题,但是凡任何事有利必有弊,索引碎片在实现上其实就分成了很多个索引目录,索引目录越多,对建索引的速度会有提示,尤其是多线程环境,因为我们建索引的时候单个索引目录肯定加锁,一旦涉及锁,势必要减慢速度,不过我多几个目录,不就可以并发执行了吗?是的,ES就是这么做的,但是前面说了,有利就有弊,索引搞得到处都是,ES查询起来就很费劲了,一般情况下,我们在没有使用Routing的情况下(后面再介绍routing),ES会同时多个线程去读取各个碎片的索引数据,然后再合并查询结果,另外在ES的分布式环境下,碎片如果分布在多台服务器上就要加上网络的开销,势必会影响查询速度了,在海量数据的前提下,这些其实都还好,并且ES支持多种查询方式(reflink:search type):

    Query And Fetch:

    Query Then Fetch:

    Dfs, Query And Fetch:

    Dfs, Query Then Fetch:

    Count:

    Scan:

    根据不同的查询需求,选择合适的查询类型,会收到意想不到的效果。

    先整体看看单ES节点的模块结构吧:

     

    再看看一次索引操作

    再看看一次查询请求

    本文来自: Diving Into ElasticSearch (5) 分布式架构

    Hadoop and MapReduce: Big Data Analytics [gartner]

    <Category: Hadoop> Comments Off on Hadoop and MapReduce: Big Data Analytics [gartner]

    收藏,下载地址:http://dl.medcl.com/get.php?id=29&path=books%2Fgartner%2CHadoop+and+MapReduce+Big+Data+Analytics.7z

    阅读这篇文章的其余部分 »

    本文来自: Hadoop and MapReduce: Big Data Analytics [gartner]

    Chapter 1. Asterisk ,The Architecture of Open Source Applications

    <Category: 读书> Comments Off on Chapter 1. Asterisk ,The Architecture of Open Source Applications

    titlebar

    chapter 1.Asterisk by Russell Bryant http://www.aosabook.org/en/asterisk.html

    这章主要介绍了“电话交换机”asterisk的设计,虽然这个项目的历史悠久,Mark Spencer于1999,因为自己开的公司(Linux Support Services)刚好有这个需求–一个电话系统,但是有没有钱买,于是就自己弄了一个,后面发现该系统很受欢迎,他的公司便专心负责asterisk上来,并改名为Digium。

     

    Asterisk的英文意思是指字符“*",Mark想通配所有的电话技术,包括模拟信号啦,数字信号啦,神马PSTN啦(public switched telephone network),voip啦,统统都可以接入到asterisk中。

     

    一旦电话是通过asterisk系统进行拨打或者接听的,那么在这里就可以做很多事情了,比如电话录音,回放,10086里面烦人的语言系统,电话录音,语言邮件,语言识别,甚至实时翻译(老毛子打过来,听不懂怎么办,业务还得继续做啊)

     

    系统架构比较简单清晰,有几个概念:

    channel,每一个呼叫相当于是一个connection,一个连接,呼叫方是一个channel,接听方是一个channel,asterisk在中间负责调度(channel bridging)。

    twoChannels

    frame,通讯的数据以”帧"来传递,帧有不同的数据类型,Voice、Video、Modem、Control等等,

    channel driver,很显然asterisk支持如此多的通讯协议,那就需要相对应的驱动来支持,扩展驱动只需用asterisk定义的抽象接口即可。

    channelLayers

    Dialplan Applications,主要是负责处理channel的,这里面就可以做很多事情,可以灵活组合多个应用来对一个channel进行处理。

    后面还介绍了语音邮件是怎么收取的,网络监控,多线程处理,电话桥接等内容,

    感兴趣的自己去看看吧,地址:http://www.aosabook.org/en/asterisk.html

    本文来自: Chapter 1. Asterisk ,The Architecture of Open Source Applications

    Diving Into ElasticSearch (4) 安装配置

    <Category: Diving Into ElasticSearch> Comments Off on Diving Into ElasticSearch (4) 安装配置

    系列文章拖了几天思路全无,哎,先来个基础的吧。。。【安装配置】

    其实ElasticSearch安装没啥好说的,因为ElasticSearch完全是零配置和“拆箱即用”,这对第一次上手ElasticSearch人来说绝对是福音,对于熟悉了ElasticSearch的人来说也可以省却很多多余的操作,总之一个字:帅。

    首先,当然是下载,地址如下:http://www.elasticsearch.org/download/
    打开网页你可以看到长长的发布的版本号(我应该是从Version 0.5开始我的ES之旅的),ES的版本更新很频繁,作者kimchy根据社区的反馈会不断添加新的feature,bugfix也是神速,在irc里面提出之后,基本上马上就会有修复,实在是给力啊。BTW,现在最新版本又到了0.17.4,前几天又发布了几个版本,修复了一些bug。
    阅读这篇文章的其余部分 »

    本文来自: Diving Into ElasticSearch (4) 安装配置

    php mysql bit类型处理

    <Category: Mysql, PHP> Comments Off on php mysql bit类型处理

    http://codeigniter.com/forums/viewthread/157028/#758143
    http://www.dotcoo.com/post-101.html

    php读取mysql列bit(1)列时获得的是一个二进制的数据,不是布尔值不是字符串也不是数字,所以不能正常使用也不能正常显示,可以使用ord函数把二进制数据转换为数字。

    ord函数的作用就是将ASCII的字符转换为他们的字面值,对于二进制数字也有效。

    ord函数能转换出来的最大的值是255,也就是一个字节,对于bit(8)以上的列不能正常转换。

    本文来自: php mysql bit类型处理

    安装NginxHttpAccessKeyModule

    <Category: VPS维护日志, Web> Comments Off on 安装NginxHttpAccessKeyModule

    下载:http://wiki.nginx.org/NginxHttpAccessKeyModule#accesskey

    vi nginx下面站点配置

    重启nginx
    站点下放置php文件测试一下是否正常工作。

    本文来自: 安装NginxHttpAccessKeyModule

    nginx server status monitor

    <Category: 小道消息> 2 条评论


    弄了个小东西来监控站点nginx status信息,没有找到现成的(轻量级的),需要的点击这里下载:NginxStatusMonitor
    有简单的配置文件,两个参数:status地址,刷新时间。

    至于nginx怎么开启status,看这里:
    http://wiki.nginx.org/HttpStubStatusModule

    状态信息简单说明:

    active connections — number of all open connections including connections to backends

    server accepts handled requests — nginx accepted 16630948 connections, handled 16630948 connections (no one was closed just it was accepted), and handles 31070465 requests (1.8 requests per connection)

    reading — nginx reads request header

    writing — nginx reads request body, processes request, or writes response to a client

    waiting — keep-alive connections, actually it is active - (reading + writing)

    本文来自: nginx server status monitor

    log4net udpappender 广播设置

    <Category: .NET> Comments Off on log4net udpappender 广播设置

    配置文件里面添加:

    如果要广播到局域网,你的ip段是192.168.1.X,则设置
    文档说明在这里:http://logging.apache.org/log4net/release/sdk/log4net.Appender.UdpAppender.RemoteAddress.html

    另外在windows7下,还因为ipv6的关系,如果使用localhost,可能得到的ip不是127.0.0.1而是::1,并且log4net目前貌似不支持ipv6的神址,所以必须host里面去掉ipv6的映射。

    本文来自: log4net udpappender 广播设置

    eqt support adidas eqt support 93 primeknit og colorway ba7506 adidas eqt running 93 updated with primeknit construction adidas eqt boost 93 17 white turbo red adidas eqt support 9317 white turbo red adidas eqt support 93 17 adidas eqt support 9317 adidas eqt support 9317 turbo red releases tomorrow adidas originals adidas eqt tactile green pack adidas eqt tactile green pack adidas eqt light green pack womens adidas eqt light green pack coming soon adidas eqt milled leather pack release date adidas originals eqt milled leather pack adidas eqt support ultra boost turbo red white adidas adv support burnt orange grey where to buy the adidas eqt support 9317 turbo red adidas eqt boost 91 16 turbo red adidas eqt support 93 turbo red adidas eqt support 9317 white turbo red available now