大型网站高负载高并发架构探讨。
一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。

诸多优点
  Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。   Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

hadoop架构
  Hadoop 有许多元素构成。最底部是 Hadoop Distributed File Syst  Hadoop 集群的简化视图
em(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是 MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。
HDFS
  对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。   制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。
NameNode
  NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。注意,这里需要您了解集群架构。   实际的 I/O 事务并没有经过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode。当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应。这个 NameNode 还会通知其他将要接收该块的副本的 DataNode。   NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失。
DataNode
  DataNode 也是一个通常在 HDFS 实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。   DataNode 响应来自 HDFS 客户机的读写请求。它们还响应创建、删除和复制来自 NameNode 的块的命令。NameNode 依赖来自每个 DataNode 的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode 可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块。
文件操作
  可见,HDFS 并不是一个万能的文件系统。它的主要目的是支持以流的形式访问写入的大型文件。如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode 将以 DataNode 标识和目标块响应客户机。同时也通知将要保存文件块副本的 DataNode。当客户机开始将临时文件发送给第一个 DataNode 时,将立即通过管道方式将块内容转发给副本 DataNode。客户机也负责创建保存在相同 HDFS 名称空间中的校验和(checksum)文件。在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储(在 EditLog 和 FsImage 文件)。
Linux 集群
  Hadoop 框架可在单一的 Linux 平台上使用(开发和调试时),但是使用存放在机架上的商业服务器才能发挥它的力量。这些机架组成一个 Hadoop 集群。它通过集群拓扑知识决定如何在整个集群中分配作业和文件。Hadoop 假定节点可能失败,因此采用本机方法处理单个计算机甚至所有机架的失败。

扩展阅读:
1
http://hadoop.apache.org
2
http://bbs.hadoopor.com
Tags:


  一、      如何选择邮件系统
搭建起邮件服务器,你需要邮件系统的基本知识,SMTP协议规范,MIME编码规范,MX记录的基础知识请参考相应的RFC文档。

(一)IP地址选择

选择放置邮件服务器的IDC,更准确地说是所在的IP段,应选择处于完全静态CIP段之内,最好BIP段也是静态的。注意有时运营商分配的单个所谓静态IP,可能处于一段C类动态IP段(如ADSL)之内,这时候你的IP就很容易被认为是动态IP,要知道,动态IP在邮件运营商那里是不受欢迎的。另外要检查IP是否被列入国际黑名单(RBL),很多RBL经常将国内的整个B段列入黑名单的。

(二)邮件发送软件选择

使用一个权威的第三方发送软件,可以免去你很多烦恼。POSTFIXQMAILFOXMAILAIMCCOREMAIL等在编码规范、SMTP会话规范方面都有着可靠的经验,基本不会出现协议级的低等错误。如果你选择自主开发,那就要好好补习RFC文档了。
如果你的系统有提供给个人用户自定制内容发邮件的功能,如邀请信,贺卡等,你还需要安装一套基本的反垃圾软件,作为一个自律的发送方,这很有必要。

二、      需要建立哪些DNS记录

    为什么要为IPDNS记录?就是要告诉接收方,您使用的是静态的IP和域名,并非伪造,您对这些IP和域名有控制权。

    下面假设邮件服务器有两台:202.100.100.1    202.100.100.2, 邮箱域名是“@abc.com

    (一)A记录

主机名
记录类型
IP
server1.abc.com
A
202.100.100.1
server2.abc.com
A
202.100.100.2
其中server1.abc.com是在SMTP会话时,向对方服务器发送HELO命令后带的主机名参数。如“HELO server1.abc.com”。该A记录通常在提供abc.com域名的运营商处可以申请。
记录生效后,通过nslookup命令查询应该有如下结果,QQ邮箱为例

 

(二)PTR记录

IP
记录类型
主机名
202.100.100.1
PTR
server1.abc.com
202.100.100.2
PTR
server2.abc.com
如您所见,PTR记录其实是A记录的反向,A记录将域名解释为IPPTR记录将IP解释为域名。通常在分配IP地址的电信运营商处可以申请。

记录生效后,通过nslookup命令查询应该有如下结果,以QQ邮箱为例:


 

(三)TXT记录

域名
记录类型
IP
abc.com
TXT
202.100.100.1
abc.com
TXT
202.100.100.2
如果你用上了整个C段的IP,像下面这样做就省事多了。
域名
记录类型
IP
abc.com
TXT
202.100.100.0/24
TXT记录用于声明本邮箱域名的真正发信服务器IP,同样在提供abc.com域名的运营商处可以申请。

记录生效后,通过nslookup命令查询应该有如下结果,QQ邮箱为例:

   
A记录与PTR记录互相搭配,表明你的IP地址是静态的,邮件服务器是固定的。TXT记录能帮助接收方排除仿冒你的域名的来源邮件,从而使你发出的邮件更加可信。

三、如何规范地群发邮件

    完成上述工作后,总算可以开始群发邮件了,每天给什么人发?给多少人发?每人发多少?发些什么内容?如何规范地群发邮件?以下是你需要尽可能遵守的原则,

(一)控制发信速度

1.      邮件服务器都有对IP的发信频率限制,达到了每分钟/每小时等上限时,邮件往往就发不过去,这时候最好的方法是暂停发送,过若干分钟或小时后重试。

2.      为避免垃圾邮件泛滥,邮件服务器都有日发信量限制,达到每日上限时,当日就不能再发邮件了,只能暂停发送,留待明日继续发信。

3.      运营商设置的发信速度和发信量的限制,是适合绝大多数情况的,如你确实有需要超量发送,而邮件的信誉度和重要性也相当高,可以尝试联系运营商特别处理。

(二)规范邮件格式

1.      整齐简洁的排版,专业的语言。

2.      尽可能缩小邮件体积,夹大附件的邮件通常不太受欢迎。

3.      在显眼的地方标有退订入口,会为你的诚意增添几分。


        (三)规范邮件内容

1.      注册信、密保信等重要邮件请在主题标明关键字眼,一般都不会被过滤。 

   

2.      纯广告的邮件最好少发,这是最常受用户投诉的,大多数情况下,你的会员并不需要铺天盖地的广告,倘若真要发的,请放慢速度,主题别忘了加上“(AD)”

   


3.      订阅信息邮件也是一般不会被过滤的。但若是钻空子借订阅邮件大做广告,将引发更多的用户投诉。 

(四)规范发件人信息

1.      由系统群发的邮件请使用相同的发件人,service@abc.com就比较好辨认。同时该发件人地址应该能收信,避免退信时失败而造成接收方邮件队列堆积。同时应避免频繁变动发件人或发件域。
2.      如果是自动中转邮件,即使原文中发件人使用原始发信方,mike@163.com,SMTP会话中的mail from指令也应该使用本域发件人service@abc.com,否则容易被认为是冒用163.com的域名发送。
3.      注册信、密保信等重要邮件最好与纯广告、订阅信分开不同的IP发送,一但发生广告信发送IP被拒,也不会影响正常会员的注册功能。


(五)更新有效收件人地址
经常滚动更新你的会员列表,去掉已经注销的用户或已经退订的会员。做得更细致一点,通过在邮件中放置一些URL,把长期阅读点击率偏低的会员去掉。诚然,这可能会让你损失那么一点潜在用户,但换来好的口碑。何况,激活长期不阅读的沉睡会员的可能性微乎其微。(六)主动清理门户
有些功能可以提供会员向外发邮件,例如邀请信,贺卡等。别有用心的人可能利用这些功能群发垃圾邮件、欺诈信息、政治敏感信息等,这无异于养虎遗患。这类会员是坚决要清理掉的。

四、如何定位发送失败原因

(一) 定位问题

定位问题,最直接的方式是查看系统日志,捕捉SMTP会话中接收方返回的错误信息。不同的邮件软件有不同的返回信息,但基本相似。这里需要定位的是究竟是系统问题还是用户问题。我们以下面的例子说明:


系统问题:
Connection time out
Open relay denied
IP involved in rbl
Server refused mail service用户问题:
User not found
Mail size exceeded
No space in mail box

正像你看到的,系统问题一般是由网络、RBL、内容过滤,会话规范、频率限制一类的全局问题导致。而用户问题一般是由对方用户名、邮箱空间之类的个别问题导致的。
我们需要去解决的,通常仅仅是系统问题。 
(二) 沟通申诉
沟通申诉之前,你需要准备一些资料,以便提高排查速度和准确率。1.      本方发信IP地址
2.      返回错误信息的接受方IP地址
3.      错误日志,最好具备清晰易懂的日志输出,有完整的时间点,收发件人,错误信息等记录。
Tags:

sohu退信代码

2011/03/20 13:56 ArthurXF
若您的邮件无法送达搜狐各域邮箱,并收到退信。请根据退信里的关键字,在下面的表格中查询具体的退信原因。
退信代码  说明  解决方法  
450 4.1.8 发件人被拒 请检查发件人地址
554 5.7.1 发件人被拒 请检查发件人地址
504 5.5.2 发件人被拒 请检查发件人地址
550 5.1.1 接收人被拒 请检查收件人地址
554 5.7.1 接收人被拒 请检查收件人地址
450 4.1.8 发件人被拒 请查看DNS配置
552 5.3.4 邮件大小超限 请减小邮件的大小
503 5.5.0 连接被拒 遵守协议规则
553 5.7.0 IP地址被拒 停止发信,等待其解禁
553 5.7.1 发件人被拒 停止发信,等其解禁
553 5.7.2 收件人被拒 联系收件人修改邮箱配置
553 5.7.3 内容被拒 停止发信,等待其解禁
553 5.7.4 IP地址被拒 停止发信,等待其解禁
421 4.2.1 临时错误 重试
553 5.7.3  不支持附件发送 取消附件重试

如果上述信息仍不能解决你的问题,请联系abuse@sohu-inc.com 寻求帮助
Tags:
什么是SPF记录?如何设置SPF来防止我的邮件被拒收呢?
什么是SPF记录?
定义:
(Sender Policy Framework) 的缩写,一种以IP地址认证发信人身份的技术,
作用:
可以避免伪造地址的垃圾邮件,避免有其他人伪造我的域名来投递。提高发送外域邮箱的成功率。
原理:
spf规则规定了一个域名下的邮件必须通过哪些smtp服务器来发送。一个域名可以为自己创建一个txt解析记录,在这个解析记录里面是这个域名下所有的smtp服务器的ip地址。
接收邮件方会首先检查对方邮箱后缀域名的SPF记录,来确定发件人的smtp服务器的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。
 

查询txt记录的方法:

nslookup

> set q=txt

> net263.com

Server:  ns2.263isp.net

Address:  211.150.124.66

Non-authoritative answer:

net263.com      text =

        "v=spf1 include:spf.263xmail.com ~all"

查询txt记录下对应的ip的方法

查询 include 后面字段的域名即可

> set q=txt

> spf.263xmail.com

Server:  ns2.263isp.net

Address:  211.150.124.66

Non-authoritative answer:

spf.263xmail.com        text =

        "v=spf1 ip4:211.150.67.0/24 ip4:211.150.96.0/24 ip4:211.150.100.0/24 ip4

:211.157.128.0/24 ip4:211.150.64.0/24 ip4:211.150.122.0/24 ip4:74.86.11.0/28 ip4

:63.217.87.0/28 ip4:211.157.224.0/24 ~all"

 以上所有的IP都SMTP的服务器IP地址

~all和?all 代表不确定的,我们的mx服务器不会去拒收

-all 代表确定的,一旦发信人没有使用txt记录下规定的ip投递,我们的mx服务器就会拒收。

 
如何设置域名邮箱的SPF记录呢?
 
为了提升域名邮箱发送外域(@qq.com以外的邮箱)邮件的成功率,建议您给自己的域名设置一条TXT记录来避免这种情况。
 
TXT记录值为:v=spf1 include:spf.mail.qq.com ~all
附263企邮箱的TXT记录值为:v=spf1 include:spf.263xmail.com ~all
 
如图:万网的设置页面
1.从diy.hichina.com处登录域名管理系统;
 
2.在TXT(正文字串)处设置一条TXT记录,如下:
 
什么是SPF记录?如何设置SPF来防止我的邮件被拒收呢?
 
注:易名中国中资源目前不支持设置TXT记录 
--------------------------------------------------------------------------------------------------
如何增加SPF记录
非常简单,在DNS里面添加TXT记录即可。登陆http://www.openspf.org/在里面输入你的域名,点击Begin,然后会自动得到你域名的一些相关信息。
a 你域名的A记录,一般选择yes,因为他有可能发出邮件。
mx 一般也是yes,MX服务器会有退信等。
ptr 选择no,官方建议的。

a:有没有其他的二级域名?比如:mail.abc.com和www不在一台server上,则填入mail.abc.com。否则清空。
mx: 一般不会再有其他的mx记录了。
ip4: 你还有没有其他的ip发信?可能你的smtp服务器是独立出来的,那么就填入你的IP地址或者网段。
include: 如果有可能通过一个isp来发信,这个有自己的SPF记录,则填入这个isp的域名,比如:dgcgw.com
~all: 意思是除了上面的,其他的都不认可。当然是yes了。

好了,点击Continue…..
自动生成了一条SPF记录,比如abc.com的是
v=spf1 a mx ~all
并且在下面告诉你如何在你的bind里面添加一条
abc.com. IN TXT “v=spf1 a mx ~all”

加入你的bind,然后ndc reload即可。
检查一下:
dig -t txt extmail.org

如果您的域名是我们的dns服务器进行解析的,我们的网页上没有设置TXT记录的地方,但是如果你的DNS主server是在在我们这里的,我们可以代帮忙设置。设置完毕后您即可以通过使用spf策略进行垃圾邮件验证了。

Tags:
对于正常邮件被投递到不明文件夹,可以指导用户按采用如下几种方法进行处理:

     1、通过WEBMAIL登录邮箱,打开收到不明文件夹中的邮件,点击发件方人右侧的“这不是垃圾邮件”按钮,这样会系统会自动把邮件由不明文件夹移收到收件箱中,并自动把发件方地址添加到地址本,以后所有来自该地址给您发送的邮件均会投递到收件箱中。

     2、登录到超级域管理员,使用“域过滤及黑白名单管理”中“邮件地址白名单”或“邮件域名白名单”功能将发件方地址或发件方域添加到白名单中,以后发件方地址或发件域给贵公司所有企业邮箱发送的邮件均会投递到收件箱中。

      3、将收到不明文件夹的正常邮件做为附件转发以“邮件误判”为主题发送至管理员的信箱,公司管理员的反垃圾部门会对邮件特征重新进行分析,使邮件系统慢慢将此类邮件识别为正常邮件,以减小误判率。
分页: 1/5 第一页 1 2 3 4 5 下页 最后页 [ 显示模式: 摘要 | 列表 ]