Couchbase权威指南(一)

节点和集群

Couchbase服务器可以单独运行,也可以作为集群运行。在Couchbase集群里,运行一个或多个Couchbase实例。集群里所有节点是相等的,提供相同的功能和信息,没有层次结构或者拓扑的概念,也没有主节点、从节点之分。整个集群共享每个独立节点的信息,每个节点负责对数据的一部分进行响应。

集群是水平扩展的。要增加集群的容量,你只需加多一个节点。节点间没有父子关系或者层次结构。这意味着Couchbase在存储容量和性能方面,都可以做到线性扩容。

集群管理

集群里的每个节点包含了集群管理器组件。集群管理器负责下述行为:

  • 集群管理
  • 节点管理
  • 节点监控
  • 可管理的REST API
  • 统计报表
  • 实时日志
  • Multitenancy
  • 访问安全
发表在 Common | 标签为 | Couchbase权威指南(一)已关闭评论

DigitalOcean的DNS管理问题

近来最火的云主机提供商应该是DigitalOcean,一家后起之秀,传说有来自私募的大把基金支持,推出的云主机性价比很高,挖了不少Linode的高端客户。

跟其他主机商一样,他们家也提供免费的DNS托管服务,后台是BIND。测试了下,这个服务还很不完善。最基本的一点,他们对提交数据不做验证,例如空主机名允许添加CNAME记录,结果提交到后台无法生效,把BIND的报错在web端返回了:

do_dns_err

不对提交数据的有效性进行校验当然非常不好。如果服务器重启,配置文件里有大量的错误,将导致BIND无法起来或启动异常。

 

发表在 Common | 标签为 | DigitalOcean的DNS管理问题已关闭评论

建立DDoS防御的DNS服务器

看了Secure64公司的一份DNS服务器安全文档,有点启发。它在四个层次建立对DNS服务器的保护:协议分析、SYN flood保护、DNS包分析、UDP/TCP flood保护,重点解决DNS容易被攻击的几个方面:

  • Protocol exploit
  • TCP SYN floods
  • Illegal DNS packet floods
  • UDP floods
  • TCP floods

不过我感觉他们的技术也有几个问题:

  • SYN flood保护,应该就是借鉴了Linux的syn cookies技术
  • 对DNS反弹攻击,他们就是丢弃53端口的DNS响应包,正常来说这样也对,但问题是反弹攻击往往流量巨大,把1G端口跑满了,就没机会去丢弃
  • UDP flood攻击基本都是spooled IP,他们的防护技术是针对non-spooled IP的,用途大打折扣

当然或许是我见解不对,欢迎指出。原始文档上传如下。

Surviving DNS DDoS Attacks

发表在 Common | 标签为 | 建立DDoS防御的DNS服务器已关闭评论

外星人访谈

周末看了一本小书,外星人访谈。内容是1947年罗斯威尔事件后,坠毁飞碟里的一个幸存外星人艾罗,跟美军的一名空军护士,进行长达数天沟通的记录,沟通方式是心灵感应。这本书我看了两遍,头天晚上看了一遍,内心非常震撼,第二天早起又看了一遍。它讲述的内容包括:

  • 在很早以前,太阳系由星际势力旧帝国控制。
  • 旧帝国把地球当做星际监狱,所有的犯人、贱民,被押往地球,消除记忆,囚禁在人类的肉体里。
  • 宇宙间的基本智能生命单元叫“现在-成为者”,它不是物质,不会被创造,也不会消灭,永恒存在宇宙间,被囚禁到人体后,也就是我们通常所说的灵魂。
  • 同领地是与旧帝国对立的星际势力,可能代表正义的一面,他们的科技都已发展数万亿年。
  • 地球以及其他类地星球上的一切生物,都由这些星际势力创造,不是上帝造人,也与进化论无关。
  • 同领地的高级军官,包括这名幸存的外星人,不以肉体为寄存体,而是由特殊材料制成的身体,非生物、非机械。
  • 在8000年前,同领地的3000个军官来到地球喜马拉雅山建立基地,不幸也被旧帝国的电网捕获,消除记忆,囚禁到人类的肉体上,这些人不断的轮回,已经历了数千年,但是同领地已基本定位到他们的存在。
  • 同领地与旧帝国在太阳系持续数千年的战争,最终在公元1200多年,同领地将旧帝国驱逐出太阳系,但是仍然无法破解旧帝国部署在地球上的灵魂捕获电网。
  • 同领地并不关心地球人类,他们只关心人类中的那3000名同类。
  • 在8000年前,同领地的军官将吠陀经传递给印度人民,解释了宇宙和生命的本质,吠陀经口口相传,直到1000多年前,才由文字记录下来,但是文字记录却充满教条主义,而忽视了真理的本质。
  • 基督教是旧帝国用来迷惑人心、加强统治的欺骗主义哲学。
  • 人的肉体是有限的,在星际生命里,它毫无价值,而人的精神,也就是“现在-成为者”的本质是无限、无所不能的。
  • 同领地暂时没有能力、也没有兴趣解救地球上被囚禁的灵魂,让他们回到原来的高度文明的母星球。
  • 记忆是无法被永远消除的,旧帝国设计了人类的短暂生命,在生命消亡后,灵魂再次被强制消除记忆,如此反复。
  • 中国的老子恢复了部分记忆,最后成功脱离地球牢狱,回归宇宙。
  • 尼古拉-特斯拉是同领地的星际指挥官在地球上工作的替身。
  • 人类的解脱只能靠人类自己,认清生命的本质、追求精神的能力,才能恢复自我、回归宇宙。

外星人引述了老子的话:

注视它的人,将无法看到它;
收听它的人,将无法听到它;
盲目摸索它的人,将无法领会它。
虚无、静止的运动本源、无限的精神本质,是生命之源。
精神是自我。

最后,提供本书的下载如下。

外星人访谈

发表在 Common | 标签为 | 外星人访谈已关闭评论

Dancer的JSON报错

试了下Perl Dancer,一个类Sinatra框架。感觉太刻意去模仿Ruby,反而失去了Perl自己的东西。上手很简单,几分钟就可以写好一个module,用来写webservice非常不错。用到了JSON模块的to_json函数,发现编译时会触发告警:

Prototype mismatch: sub DNSValidate::from_json: none vs ($@) at DNSValidate.pm line 4
Prototype mismatch: sub DNSValidate::to_json: none vs ($@) at DNSValidate.pm line 4

Google了一番,还是AnyEvent的作者,超级大牛Marc Lehmann给出了答案:

You are probably importing multiple from_json/to_json functions, either
because you use multiple json-like modules, or you define those functions
yourself.

try:  use JSON::XS ();

also with other modules (the “()”) – this will kepe these form exporting
anything.

原因是多处import了这个函数。解决方法是注释掉自己模块里的use JSON,或者改成use JSON (),后面加多一对括号,禁止从JSON里import函数,因为Dancer的其他模块里已经import了。

发表在 Common | 标签为 , | Dancer的JSON报错已关闭评论

Couchbase的Smartclient有何作用

在Couchbase的集群架构中,没有中心节点、也没有统一Router的概念,因为Smartclient就做了这个事,客户端的library直接与集群中的独立服务器通信,不必经过其他router或proxy。之前我对这个问题也不是很确认,因此在邮件列表里提问如下:

Given I have three nodes as a cluster:
192.168.1.10
192.168.1.11
192.168.1.12

My client IP is 192.168.1.9
In the program I connect to a node IP, say 192.168.1.10

For the data transfer latter, I am not sure what way they take.
#1 all the data are sending to 192.168.1.10, and this node then does a distribution among all three nodes.
#2 the client has the chance to talk directly with other two nodes, and send the data directly to them.

得到社区里Trond Norbye的回答如下:
The Couchbase clients will distribute the data across all nodes in your cluster.

继续阅读

发表在 Common | 标签为 | Couchbase的Smartclient有何作用已关闭评论

NewStatPress插件与最新WP不兼容

前2天升级Wordpress到最新版本:

wp
然后发现网站各种慢,几乎打不开。

我以为是主机或者带宽问题,发Ticket跟IDC纠结了半天,还是未解决。机房说是我自己的程序问题,他们不负责。然后写了个简单PHP程序放上去,发现运行很快,但是WP打开就是慢。怀疑是插件不兼容问题,进入到后台看到唯一的插件NewStatPress 0.6.5版本,用于访问统计的:

nesstat
关掉这个插件,再检查,恢复正常。

看来WP版本升级,由于插件不兼容问题,会存在一定风险,当做教训了。

发表在 Common | 标签为 , | NewStatPress插件与最新WP不兼容已关闭评论

关于发送邮件的身份

在使用SMTP发送邮件时,有几个地方涉及到发件人身份。有些同学对这些地方感到困惑,我简单解释下。

比如你用[email protected]这个邮箱,使用SMTP客户端发送一份邮件,那么在AUTH阶段,需要输入用户名和密码进行认证(普通的MTA外发都需要验证,除非是内部自己配置的信任MTA)。这个用户名是不是一定是foo呢?答案是否。可以使用任何用户名,只要能通过MTA的身份鉴定。这是第一个涉及到身份的地方。

通过身份认证后,使用mail from命令,这里需要输入你的sender邮箱,是不是必须是mail from:<[email protected]>呢?答案是否。理论上可以是任何邮箱,比如[email protected]。这是第二个涉及到身份的地方。

继续阅读

发表在 Common | 标签为 , | 关于发送邮件的身份已关闭评论

MQ队列堆积太长,消费不过来怎么办

我们现有的业务就面临此问题,消息生产太快,消费不过来,导致队列堆积很长,把服务器内存耗尽,这时RabbitMQ的处理能力很低下。

我在RabbitMQ社区发邮件问了下:

继续阅读

发表在 Common | 标签为 | MQ队列堆积太长,消费不过来怎么办已关闭评论

生查子

看到两首熟悉的词,词牌都是生查子,摘录如下。

其一:

去年元夜时,花市灯如昼。
月上柳梢头,人约黄昏后。
今年元夜时,月与灯依旧。
不见去年人,泪满春衫袖。

作者欧阳修,北宋文坛泰斗。

继续阅读

发表在 Common | 标签为 | 生查子已关闭评论