摘要:
Alex Rodriguez, 软件工程师, WSO2 Inc简介:代表性状态传输(Representational State Transfer,REST)在 Web 领域已经得到了广泛的接受,是基于 SOAP 和 Web 服务描述语言(Web Services Description Language,WSDL)的 Web 服务的更为简单的替代方法。 接口设计方面这一转变的关键证据是主流 Web 2.0 服务提供者(包括 Yahoo、Google 和 Facebook)对 REST 的采用,这些提供者弃用或放弃了基于 SOAP 和 WSDL 的接口,而采用了更易于使用、面向资源的模型来公开 阅读全文
摘要:
1、语句和语法#号表示之后为python的注释。换行(\n)是标准的行分隔符(通常一个语句一行)。反斜线(\)继续上一行,在使用闭合操作符(小括号,中括号,大括号,三引号)时,单一语句可以跨多行。分号(;)将2个句子连载一行,可以用于同一行书写多个语句。冒号(:)将代码块的头和体分开,像if,while,def,class这样的复合语句,首行以关键字开始,以冒号(:)结束,该行之后的一行或多行代码构成代码组。语句(代码块)采用缩进块的方式体现。Python文件以模块的形式组织,模块里的代码可以是一段直接执行的脚本,也可以是一堆类似库函数的代码,从而可以被别的模块导入(import)调用。2、变 阅读全文
摘要:
1. 线程基础1.1. 线程状态线程有5种状态,状态转换的过程如下图所示:1.2. 线程同步(锁)多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时,可能存在数据不同步的问题。考虑这样一种情况:一个列表里所有元素都是0,线程"set"从后向前把所有元素改成1,而线程"print"负责从前往后读取列表并打印。那么,可能线程"set"开始改的时候,线程"print"便来打印列表了,输出就成了一半0一半1,这就是数据的不同步。为了避免这种情况,引入了锁的概念。锁有两种状态——锁定和未锁定 阅读全文
摘要:
1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。下图展示了使用正则表达式进行匹配的流程:正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹 阅读全文
摘要:
python pdb调试python -m pdb myscript.py #注意这会重启myscript.py可以在程序中这么设置断点:import pdb; pdb.set_trace()可以修改变量的值,但是要注意,前面加上!比如要修改final的值,应该这样!final="newvalue"支持的命令: p 打印变量 n next step 细点运行 c continue l list a args 打印当前函数的参数 condition bpnumber [condition] clear/disable/enable 清除/禁用/使能断点 q quitpytho 阅读全文
摘要:
Python基本安装:* http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站;* http://www.activestate.com/集成多个有用插件的强大非官方版本,特别是针对Windows环境有不少改进;Python文档:* http://www.python.org/doc/current/lib/lib.html Python库参考手册。* http://www.byteofpython.info/ 可以代替Tutorial使用,有中文译版的入门书籍。* http://diveintopython.org/ 一本比较全面 阅读全文
摘要:
“文件存储要选用B+树这样的数据结构”——没记错的话,这是严蔚敏那本数据结构书上的一句结论。不知道是我没细看还是她没细讲,反正当时纯粹应试地记了这么个结论。不求甚解终究不是一个好的学习态度,一直以来我都没有细想过这个事情,直到看到了这篇博文http://blog.csdn.net/v_JULY_v/article/details/6530142。此文信息量很大,值得mark下来慢慢精读。今天就暂记一下关于磁盘文件存储选用B+ tree这一点以前没深究过的问题。毕竟,好记性不如烂笔头,虽然这篇里面ctrl-v担当了比较多的任务……另一个比较有趣的收获是终于知道没有B减树这个东西了。以前老看到B- 阅读全文
摘要:
以下内容是从网上各处简单整理而来,因为前段时间自己一直在研究Thrift,把研究的一点资料分享给需要的同行中人!第一节RPC技术及实现简介首先思考一下分布式系统中的RPC (Remote Procedure Call)问题,一个完整的RPC模块需要可以分为三个层次· 服务层(service):RPC接口定义与实现· 协议层(protocol):RPC报文格式和数据编码格式· 传输层(transport):实现底层的通信(如socket)以及系统相关的功能(如事件循环、多线程)在实际的大型分布式系统中,不同的服务往往会使用不同的语言来实现,所以一般的RPC系统会提供 阅读全文
摘要:
以下是我在公司内部分享的关于分布式日志收集系统的PPT内容,现在与大家分享,希望对于需要使用的人能够起到基本的入门作用或是了解!1.分布式日志收集系统:背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1) 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;(2) 支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统;(3) 具有高可扩展性。即:当数据量增加时,可以通过增加节点进行水平扩展。2.分布式日志收集系统:Facebook Scribe主要内容(1)Scribe简 阅读全文
摘要:
ZeroMQ的想法和初衷是好的,让你用串行的思路写异步的消息处理程序。并且在此基础之上提炼出了常见的消息模式,让你写起程序来更加省心。库替你完成了异步消息发送、故障恢复、甚至连磁盘的buffer都提供了。不可谓不全面。同时提供的接口非常简洁。但是,用很少的接口封装复杂的逻辑通常的结果就是:当你的业务场景跟库的设计者设想的业务场景一样时,你回很爽。但当业务有差别,或者对细节有要求时,你会很惨。用trick能解决已经算是较好的情况了。欺骗性质的封装。当你zmq_connect返回成功的时候,不要高兴,这并不意味着你真的创建好链接了,因为即使你连一个根本没人监听的地址也会成功,为什么呢,因为Zero 阅读全文