当前位置:  互联网>综合
本页文章导读:
    ▪SAE php 研究(2)      1.在SAE新建项目打印出phpinfo <?php  print phpinfo(); ?> 2. 可见:PHP Version 5.3.8 【使用的是php5.3.8编译的】 3. 可见: System SAE LINUX ENVIRONMENT Build Date May 19 2013  【说明是一台共享的虚拟机,创.........
    ▪Mina 粘包、拆包的实现-网上常见的代码有bug。。      mina的粘包拆包其实是蛮简单的,只是一开始没搞清楚原理。 我们要约定数据包的格式,我这里的是(4个字节长度+json的string字符串) 1:写一个 ProtocolCodecFactory类,用来拦截数据包处理.........
    ▪[Hadoop] 实际应用场景之 - 百度      百度在2008年就开始使用Hadoop作为其离线数据分析平台,从Hadoop v0.18/0.19开始,300台机器,2个集群,现在的规模为2W台节点以上,最大集群接近4,000节点,每日处理数据20PB+,每日作业数120,000.........

[1]SAE php 研究(2)
    来源: 互联网  发布时间: 2013-10-25
1.在SAE新建项目打印出phpinfo
<?php 
print phpinfo();
?>
2.
可见:PHP Version 5.3.8
【使用的是php5.3.8编译的】
3.
可见:
System SAE LINUX ENVIRONMENT
Build Date May 19 2013 
【说明是一台共享的虚拟机,创建于2013.05.19】
4.
可见:Thread Safetydisabled
【可能使用的是fastcig模式】
5.
可见:
Zend Memory Managerenabled
Zend Multibyte Supportdisabled
IPv6 Support disabled
Registered PHP Streamscompress.zlib, php, file, glob, data, zip, http, https, saemc, saestor, saekv
Registered Stream Socket Transportstcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filterszlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.*
6.
可见:
apache2handler
【说明使用了--with-apxs2[=FILE]   参数】
7.
可见:
Max Requests Per Child: 256 - Keep Alive: off - Max Per Connection: 100

该apache限制为每个子进程可以处理256次请求,每个线程最大连接数为100
进程数的最大值由MaxClients控制,在Apache1.3中最大只能设置为256,但在Apache2.0中,可以通过在配置开头增加ServerLimit项目来突破256的限制,此时必须MaxClients ≤ ServerLimit ≤ 20000
MaxRequestsPerChild用来控制每个进程在处理了多少次请求之后自动销毁
Keep Alive: off

8.
可见:
Timeouts Connection: 20 - Keep-Alive: 5

MaxVhostClients  100 
Keep-Alive: 5 这个应该没意义,因为Keep Alive: off

9.
可见:
Loaded Modulescore prefork http_core mod_so mod_mime mod_dir mod_log_config mod_setenvif mod_headers mod_filter mod_deflate mod_rewrite mod_php5 mod_extract_forwarded mod_usertrack mod_saestat mod_saeenv mod_auth_basicx mod_authz_hostx mod_authn_memory mod_authz_user mod_appconfig mod_applimit mod_execlimit mod_appsense
【该apache2支持上面这些模块】
10.Configuration中开启的模块
APC Support enabled
BCMath supportenabled
ctype functionsenabled
cURL support enabled
date/time supportenabled
DOM/XML enabled
Regex Library Bundled library enabled
EXIF Support enabled
Input Validation and Filteringenabled
GD Support enabled
gmp support enabled
hash support enabled
iconv support enabled
json support enabled
kvclient supportenabled
libXML supportactive
Multibyte Supportenabled
Multibyte (japanese) regex supportenabled
mcrypt supportenabled
memcache supportenabled
MySQL Support enabled
MysqlI Supportenabled
OpenSSL supportenabled
PCRE (Perl Compatible Regular Expressions) Supportenabled
PDO support enabled
PDO Driver for MySQLenabled
Reflection enabled
saecounter supportenabled 【SAE自己开发的php组件】
Session Supportenabled
Simplexml supportenabled
SPL support enabled
Dynamic Library Supportenabled
Tokenizer Supportenabled
XML Support active
yaf support enabled
Zip enabled
ZLib Support enabled
11.支持的php 环境变量
Variable Value
_SERVER["MEF_PROXY_ADDR"]
_SERVER["has_apphash"]
_SERVER["ApplimitOutOfCon"]
_SERVER["ApplimitOutOfMem"]
_SERVER["SCRIPT_URL"]
_SERVER["SCRIPT_URI"]
_SERVER["HTTP_X_FORWARDED_FOR"]
_SERVER["HTTP_HOST"]
_SERVER["HTTP_APPNAME"]
_SERVER["HTTP_APPVERSION"]
_SERVER["HTTP_ACCESSKEY"]
_SERVER["HTTP_APPHASH"]
_SERVER["HTTP_MYSQLPORT"]
_SERVER["HTTP_APPCOOKIE"]
_SERVER["HTTP_APPSRVC"]
_SERVER["HTTP_CONNECTION"]
_SERVER["HTTP_ACCEPT"]
_SERVER["HTTP_USER_AGENT"]
_SERVER["HTTP_ACCEPT_ENCODING"]
_SERVER["HTTP_ACCEPT_LANGUAGE"]
_SERVER["HTTP_ACCEPT_CHARSET"]
_SERVER["PATH"]
_SERVER["SERVER_SIGNATURE"]
_SERVER["SERVER_SOFTWARE"]
_SERVER["SERVER_NAME"]
_SERVER["SERVER_ADDR"]
_SERVER["SER
    
[2]Mina 粘包、拆包的实现-网上常见的代码有bug。。
    来源: 互联网  发布时间: 2013-10-25

mina的粘包拆包其实是蛮简单的,只是一开始没搞清楚原理。

我们要约定数据包的格式,我这里的是(4个字节长度+json的string字符串)

1:写一个

ProtocolCodecFactory类,用来拦截数据包处理

内容如下

public class MessageCodecFactory implements ProtocolCodecFactory {

    private final DataEncoderEx encoder;

    private final DataDecoderEx decoder;

    

    public MessageCodecFactory() {

        encoder = new DataEncoderEx();

        decoder = new DataDecoderEx();

    }


    /* (non-Javadoc)

     * @see org.apache.mina.filter.codec.ProtocolCodecFactory#getDecoder(org.apache.mina.core.session.IoSession)

     */

    @Override

    public ProtocolDecoder getDecoder(IoSession session) throws Exception {

        return decoder;

    }


    /* (non-Javadoc)

     * @see org.apache.mina.filter.codec.ProtocolCodecFactory#getEncoder(org.apache.mina.core.session.IoSession)

     */

    @Override

    public ProtocolEncoder getEncoder(IoSession session) throws Exception {

        return encoder;

    }

}


2:在chain里面注册解码器

chain.addLast("codec", new ProtocolCodecFilter(new MessageCodecFactory()));

注意放在多线程上面,否则会导致解码混乱的情况

3:实现decode和encoder

CumulativeProtocolDecoder 这个类的作用很好,我贴一个网上的总结

A. 你的doDecode()方法返回true 时,CumulativeProtocolDecoder 的decode()方法会首
先判断你是否在doDecode()方法中从内部的IoBuffer 缓冲区读取了数据,如果没有,

则会抛出非法的状态异常,也就是你的doDecode()方法返回true 就表示你已经消费了
本次数据(相当于聊天室中一个完整的消息已经读取完毕),进一步说,也就是此时你
必须已经消费过内部的IoBuffer 缓冲区的数据(哪怕是消费了一个字节的数据)。如果
验证过通过,那么CumulativeProtocolDecoder 会检查缓冲区内是否还有数据未读取,
如果有就继续调用doDecode()方法,没有就停止对doDecode()方法的调用,直到有新
的数据被缓冲。
B. 当你的doDecode()方法返回false 时,CumulativeProtocolDecoder 会停止对doDecode()
方法的调用,但此时如果本次数据还有未读取完的,就将含有剩余数据的IoBuffer 缓
冲区保存到IoSession 中,以便下一次数据到来时可以从IoSession 中提取合并。如果
发现本次数据全都读取完毕,则清空IoBuffer 缓冲区。
简而言之,当你认为读取到的数据已经够解码了,那么就返回true,否则就返回false。这
个CumulativeProtocolDecoder 其实最重要的工作就是帮你完成了数据的累积,因为这个工
作是很烦琐的。


也就是说返回true,那么CumulativeProtocolDecoder会再次调用decoder,并把剩余的数据发下来

返回false就不处理剩余的,当有新数据包来的时候把剩余的和新的拼接在一起然后再调用decoder


public class DataDecoderEx extends CumulativeProtocolDecoder {


@Override


    
[3][Hadoop] 实际应用场景之 - 百度
    来源: 互联网  发布时间: 2013-10-25

百度在2008年就开始使用Hadoop作为其离线数据分析平台,从Hadoop v0.18/0.19开始,300台机器,2个集群,现在的规模为2W台节点以上,最大集群接近4,000节点,每日处理数据20PB+,每日作业数120,000+

Hadoop在百度主要用于如下场景:

  • 日志的存储和统计;
  • 网页数据的分析和挖掘;
  • 商业分析,如用户的行为和广告关注度等;
  • 在线数据的反馈,及时得到在线广告的点击情况;
  • 用户网页的聚类,分析用户的推荐度及用户之间的关联度。


百度和其它公司对Hadoop的应用最大的不同是对源代码做了大量的修改,当Hadoop 2.0官方版本还没有出来时,百度就已经在开发自己的Hadoop 2.0,如下图所示:


HDFS 1.0面临的问题有:
  • 集群规模大,Namenode响应变慢
  • Namenode单点,切换时间太长
  • 没有数据压缩
  • Namespace过于耗用资源
百度自己开发的HDFS 2.0改进了如下功能:
  • Namenade热备切换
  • 分钟级别切换
  • 最坏情况,可能丢失1分钟数据
  • 透明数据压缩(利用CPU低谷时压缩、长时间未使用的块才压缩等)
MapReduce 1.0面临的问题有:
  • JobTracker单点问题
  • 资源粒度过粗(slot)
  • 资源利用率不高
百度自己开发的MapReduce 2.0改进了如下功能:
  • 可扩展性强(支持万台节点以上)
  • 架构松耦合,支持多种计算框架
  • 可支持热升级
  • 更精细的资源控制
  • MR优化:Shuffle独立/Task同质调度

作者:u010415792 发表于2013-6-22 18:59:07 原文链接
阅读:307 评论:0 查看评论

    
最新技术文章:
▪用户及权限基础 2---- Linux权限    ▪用户及权限基础 3---- Linux扩展权限    ▪git 简明教程(1) --创建及提交
▪背包 代码    ▪json对象的封装与解析    ▪01背包,完全背包,多重背包 ,模板代码
▪apache安装详解    ▪HDU 4668 Finding string (解析字符串 + KMP)    ▪《TCP-IP详解 卷1:协议》学习笔记(二)
▪《TCP-IP详解 卷1:协议》学习笔记(持续更新...    ▪windows下使用swig    ▪gensim试用
▪Linux Shell脚本编程--nc命令使用详解    ▪solr对跨服务器表联合查询的配置    ▪递归和非递归实现链表反转
▪Linux磁盘及文件系统管理 1---- 磁盘基本概念    ▪Cholesky Decomposition    ▪HTTP协议学习
▪用C语言写CGI入门教程    ▪用hdfs存储海量的视频数据的设计思路    ▪java多线程下载的实现示例
▪【原创】eAccelerator 一个锁bug问题跟踪    ▪hadoop学习之ZooKeeper    ▪使用cuzysdk web API 实现购物导航类网站
▪二维数组中的最长递减子序列    ▪内嵌W5100的网络模块WIZ812MJ--数据手册    ▪xss 跨站脚本攻击
▪RobotFramework+Selenium2环境搭建与入门实例    ▪什么是API    ▪用PersonalRank实现基于图的推荐算法
▪Logtype    ▪关于端口号你知道多少!    ▪Linux基本操作 1-----命令行BASH的基本操作
▪CI8.7--硬币组合问题    ▪Ruby on Rails 学习(五)    ▪如何使用W5300实现ADSL连接(二)
▪不允许启动新事务,因为有其他线程正在该会...    ▪getting start with storm 翻译 第六章 part-3    ▪递归求排列和组合(无重复和有重复)
▪工具类之二:RegexpUtils    ▪Coding Interview 8.2    ▪Coding Interview 8.5
▪素因子分解 Prime factorization    ▪C# DllImport的用法    ▪图的相关算法
▪Softmax算法:逻辑回归的扩展    ▪最小生成树---Kruskal算法---挑战程序设计竞赛...    ▪J2EE struts2 登录验证
▪任意两点间的最短路径---floyd_warshall算法    ▪Sqoop实现关系型数据库到hive的数据传输    ▪FFMPEG采集摄像头数据并切片为iPhone的HTTP Stream...
▪Ubuntu 13.04 – Install Jetty 9    ▪TCP/IP笔记之多播与广播    ▪keytool+tomcat配置HTTPS双向证书认证
▪安装phantomjs    ▪Page Redirect Speed Test    ▪windows media player 中播放pls的方法
▪sre_constants.error: unbalanced parenthesis    ▪http headers    ▪Google MapReduce中文版
▪The TCP three-way handshake (connect)/four wave (closed)    ▪网站反爬虫    ▪Log4j实现对Java日志的配置全攻略
▪Bit Map解析    ▪Notepad 快捷键 大全    ▪Eclipse 快捷键技巧 + 重构
▪win7 打开防火墙端口    ▪Linux Shell脚本入门--awk命令详解    ▪Linux Shell脚本入门--Uniq命令
▪Linux(Android NDK)如何避免僵死进程    ▪http Content-Type一览表    ▪Redis实战之征服 Redis + Jedis + Spring (二)
▪Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源...    ▪利用SQOOP将ORACLE到HDFS    ▪django输出 hello world
▪python re    ▪unity3D与网页的交互    ▪内存共享基本演示
▪python join    ▪不再为无限级树结构烦恼,且看此篇    ▪python实现变参
▪打开文件数限制功能不断地制造问题    ▪Arduino Due, Maple and Teensy3.0 的 W5200性能测试    ▪Selenium实例----12306网站测试
▪基于协同过滤的推荐引擎    ▪C4.5决策树    ▪C#HTTP代理的实现之注册表实现
▪nosql和关系型数据库比较?    ▪如何快速比较这两个字符串是否相等?    ▪hdoj 1863 畅通工程 最小生成树---prime算法
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3