作者:李艳鹏

索引查询和排序的SQL

问题SQL: select * from table_name where TIME <= ? order by ID FETCH FIRST 100 ROWS ONLY TIME有索引,ID是主键,DB性能有严重的压力。 通常认为TIME和ID都有索引,而且限制条数,应该不会有压力,仔细分析,查询使用TIME, 排序使用ID,根据B+树索引,查询出来的所有记录都需要再按照ID进行排序,即使ID有索引,……

秒杀关键点

两级检查:一级队列检查控制少买、二级检查库存控制超卖; 三阶段分解事务:分离秒杀、秒中、获取结果三阶段操作,实现控制流和数据流分离,解决系统性能线性扩充问题 我们刚才只说了高并发下怎么减库存不超卖,没有说前期怎么拦截大量的请求,这些请求不管流到哪里都是抢不上的,那越早处理越好,浏览器处理掉一批都是可……

innodb: 聚簇索引,记录在主索引中,辅助索引保存主键ID myisam: 非聚簇索引,主索引和辅助索引都保存记录的地址 参考:http://www.cnblogs.com/zlcxbb/p/5757245.html

大小括号导致的脚本攻击

html页面里面,onerror等事件处理器不用双引号也能执行,因此只要有大小括号都可以执行函数。 1234567891011121314151617181920212223<?php $merchantaccount  = "aabbcc onerror= alert(1)"; //$merchantaccount  = "aabbcc.jpeg onerror= alert&#x28;222&#x29;"; ?> &……

为什么注释掉的代码要删除?

案例:合并代码的时候把注释掉的代码不小心给打开了 解决方案:增加代码检查点“注释掉的代码上线前需要删除” 问题:重要的代码注释掉,去掉了是个大损失? 这是个伪命题,代码版本跟踪可以通过版本化的工具,例如:svn、git,来跟踪的,

一个同事深挖的客户端端口占满的问题

参考:http://www.jianshu.com/p/51a953b789a4 1.背景 最近一个项目中,出现了java.net.ConnectException:Cannotassignrequestedaddress的异常。通过查找资料、分析后,认为是由于程序对外建立新连接,结果本地端口已经用完导致的异常。 2.问题原因 为什么会出现这种情况呢?就要从linux的TCP/IP协议栈说起了。 ……

App端与服务器之间的安全策略

1. https保证通道安全 2. 下发token保证无登录的用户不能随意调用服务 3. token有过期时间,保证服务不被长期木马攻击 4. 对于支付等安全功能,需要另外增加支付密码校验和短信验证 5. 应用层内做自己的安全协议(对称、非对称、打包证书等等) 最近,项目给移动端提供API接口,移动app通过post请求调用服务器的api接口,……

HTTPS的配置

HTTPS单向认证 只有服务器端配置keystore,客户端需要校验服务器端的证书 连接握手的时候,先通过服务器端的公钥加密传递对称秘钥,然后通信使用的是对称加密,数据是保密的 需要生成服务器端keystore,客户端需要导入服务器端的证书 HTTPS双向认证 与单向认证一样,可以保证安全,但是可以验证客户单的证书 客户端需要配……

RabbitMQ的工作机制

producer -> exchange -> binding scheme(routing) -> queue -> consumer exchange是用来接收消息的,绑定策略是用来把消息从exchange路由到queue的 http://blog.csdn.net/samxx8/article/details/47417133 queue: direct、fallout、topic direct, 某一个绑定key路由到某一个queue fallout, exchange中的一个消息发送给……

Mac上安装RabbitMQ

1. 下载后解压既可以使用。 http://www.rabbitmq.com/install-standalone-mac.html 2.启动 sbin/rabbitmq-server rabbitmqctl status 3. 安装管理工具后并重启。 sudo rabbitmq-plugins enable rabbitmq_management 参考: http://www.open-open.com/lib/view/open1432468144338.html 官方api: http://www.rabbitmq.com/……

Mac上安装nginx和连接到tomcat

1. 安装pcre sudo brew install pcre 2. 配置 ./configure –prefix=/usr/local –with-http_ssl_module 如果出现问题: Undefined symbols for architecture x86_64: 重新配置: ./configure –with-ld-opt=”-L /usr/local/lib” 3. 安装 make sudo make install 4. 安装后配置 /usr/local/ng……

Mac上安装Zookeeper

1. 下载稳定版本zookeeper。 http://zookeeper.apache.org/releases.html#download 2. 启动和测试zookeeper。 http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html 3. 文档主页。 http://zookeeper.apache.org/doc/r3.4.9/

Oracle VM对网络的几个配置方法

NAT:完全使用主机的网络,没有自己的IP Bridged Adaptor:完全虚拟一个网卡和一个IP,在外部网络中是有独立IP的 Internal Network:只在虚拟机之间建立了一个网络,与主机之间是无法通信的 Host Adaptor:最复杂,前面的效果通过配置都能实现

Centos上安装Oracle

安装步骤: http://www.tecmint.com/setting-up-prerequisites-for-oracle-12c-installation/ http://www.tecmint.com/oracle-12c-installation-in-centos-6/ 新的centos关闭防火墙: centos 7: systemctl stop firewalld.service #停止 systemctl disable firewalld.service #禁用 之前的版本: service iptables stop ……

Mac上安装memcache

Mac上安装memcache确实费了好大的劲,因为memached依赖libevent,libevent依赖openssl。 1. 安装 1https://github.com/memcached/memcached/wiki/Install 2. 安装memcache的时候,需要libevent,使用brew安装libevent的时候,libevent的包下载不了,手工下载后安装。 3. 如果出现openssl找不到, 1fatal errorfatal error……