`
文章列表
摘要:马如悦,百度大数据部主任架构师。大会召开前夕,笔者有幸采访到了马如悦,请他分享Palo在百度内部的应用实践。在他看来,不写代码的架构师都不是好的架构师,没有主导实际项目的架构师也不是好的架构师。 马 ...
redis客户端 jedis 常用的 操作 key value hash list set zset
使用大数据量的collection. 在MongoDB存储信息用多个collection来替代一个collection。这样做每个重复的数据不必存在每个对象中, 并且也不必再这个键上创建索引了。更重要的是性能,可以通过指定组来分布数据。   举个例子,假使我们要存储日志。并且有N种类型,如dev,debug,ops等。我们用一个collection来存储。 {log : 'dev', ts : ..., info : ...} 我们现在把这个collection按照类型进行拆分。  'logs.dev' collection, a 'logs.debu ...
最近系统上线频繁,每次系统上线,当用maven打成war的时候,由于war包中都包括了lib,所以每次war挺大,往生产上上传的时候挺慢,后来把这些lib包都移到tomcat的上层,新建了个tomcat/locallib,把所有webapp/lib下得war都移动这个目录。以后只要打war的时候不包括lib包即可,这样war就大大减小。要做到用maven中打war包得时候不包括lib包可以进行如下配置:<plugin>    <groupId>org.apache.maven.plugins</groupId>
IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样: 1 <plugin> 2 <groupId>org.codehaus.mojo</groupId> 3

高性能MYSQ

结构和历史   隔离级别有四种:READ UNCOMMITTED(未提交读),同事务中某个语句的修改,即使没有提交,对其他事务也是可见的。这个也叫脏读。READ COMMITTED(提交读),另一个事务只能读到该事务已经提交的修改,是大多数据库默认的隔离级别。但是有下列问题,一个事务中两次读取同一个数据,由于这个数据可能被另一个事务提交了两次,所以会出现两次不同的结果,所以这个级别又叫做不可重复读。这里的不一样的数据包括虚读(两次结果不同)和幻读(出现新的或者缺少了某数据)。REPEATABLE READ(可重复读),这个级别不允许脏读和不可重复读,比如MYSQL中通过MVCC来 ...
当测试环境需要一些数据时,除了仿造一些数据外,更方便和更好的做法是,将来自正式环境的用户请求copy一份到测试环境。 依赖模块:lua-nginx-module,ngx_devel_kit, headers-more-nginx-module 以上模块在github上均可以找到,作者是国内nginx的著名开发者agentzh。 使用模块需要重新编译nginx,加上编译选项:–add-module=/path/to/your/module 。 下面是nginx配置: 复制代码代码如下:
假设我们要上线一个两年内不会宕机的先进架构。在上线前,免不了单元测试,功能测试,还有使用ab,webbench等等进行压力测试。 但这些步骤非生产环境下正式用户的行为。或许你会想到灰度上线,但毕竟可能会影响到部分用 ...
tomcat默认使用java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli.jar包到./bin/目录下; 2.拷贝log4j.jar,lo4j.properties到./lib目录下; 3.删除./conf/logging.properties 4.重启 log4j配置样本   Xhtml代码  log4j.rootLogger=INFO,CATALINA   log4j.logger.com.danga.MemCached.M ...
在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。   在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。   使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但 ...
调试移动设备上的问题,看不到发送的请求和得到的响应是比较难过的,fiddler可以实现样的功能。 原理: 在PC上启动fiddler,将手持设备的网络代理改成fiddler。这样所有的请求和响应都经过fiddler,自然也就能捕获到了。 1、启动fiddler查看其代理监听端口,如下图 下图可以看到fiddler端口是8888
Wireshark图解教程(简介、抓包、过滤器)  (2009-06-05 16:06:55) 转载▼ 标签:
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。为了安全考虑,wireshark只能查看封包,而不能修改封包的 ...

http抓包工具

http抓包工具推荐WSockExpert/httpwatch/HttpAnalyzer/DebugBar 平常有事没事可以把玩下这几个抓包软件,蛮有意思! 抓包分析源地址和目标url一般有下面几个软件:第一个是国产的WSockExpert。以前大家上网漏洞的时候很多时候都用到他。易上网,功能一般。但自身dll文件容易被认为木马删除。适用于特定程序提交的分析。 第二个是HttpWatch。一种内嵌于IE内的抓包程序。可以清楚看到post头和返回值。比较合适WEB整站数据的分析。 第三个是HttpAnalyzerStdV2,也是我现在最喜欢的一个抓包工具。分两种形式,有一种模式类似于Ht ...
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, Sql 代码 : select id from t where num is null; 可以在 num 上设置默认值 0,确保表中 num 列没有 null 值,然后这样查询: Sql 代码 : select id from t where num=0; 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 ...
Global site tag (gtag.js) - Google Analytics