M-Spring

世界上最快乐的事,莫过于为理想而奋斗。

大型网站应用中 MySQL 的架构演变史

没有什么东西是一成不变的,包含我们的理想和生活!MySQL作为一个免费的开源的关系型数据库,深受大家喜爱,从最初的无人问津到当下的去IOE,都体现出了MySQL举足轻重的作用。今天我们就从淘宝的发展来阐述MySQL在大型网站下的架构演变史! MySQL的可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍一下,常用的扩展手段有以下两种 Scale-up : 纵向扩展,通过替换为更好的机器和资源来实现伸缩,提升服务能力 Scale-out : 横向扩展,  通过加节点(机器)来实现伸缩,提升服务能力 对于互联网的高并发应用来说,无疑Scale out才是出路,通过纵向的买更高端的机器一直是我们所避讳的问题,也不是长久之计,在s...

使用genymotion和charles网络调试设置代理方法

In your Genymotion Android emulator… Settings -> Wifi -> Press and hold your active network Select “Modify Network” Select “Show Advanced Options” Select “Proxy Settings -> Manual” Set your Proxy to: 10.0.3.2 (Genymotion’s special code for the local workstation) Set your Port to: 8888 Press Save 原文链接:http://rexstjohn.com/using-genymotion-charles-pr...

看看这段代码应该输出什么

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * @author Gao Youbo * @since 2016-06-02 10:32 */ public class Test { private static ExecutorService es = Executors.newFixedThreadPool(10); private static Action action = new Action(); public static void main(String[] args) { ...

mysql进程信息查询

mysql查看进程信息之前直接使用: show processlist; 但是该命令一下子只能查看所有的process,无法进行删选等操作。可以通过以下方式去查询,直接写sql语句。 select * from information_schema.processlist where db = 'databasename' and command = 'Query' order by ROWS_READ desc limit 10000

nginx-clojure安装使用

安装配置 环境要求 jdk1.6+ nginx1.4+ 安装 下载nginx和nginx-clojure源码,分别去他们的官网下载就可以,然后将他们解压、编译、安装。编译安装nginx时,加上nginx-clojure模块,具体安装脚本如下: ./configure --prefix=/usr/local/nginx --add-module=nginx-clojure模块解压路径 make sudo make install 配置 ### 建议这里查看官方文档,比较详细 ### 官方文档地址:http://nginx-clojure.github.io/configuration.html#21-jvm-path--class-path--other-jvm-options jvm...

使用nginx-clojure配置nginx负载均衡

使用背景 最近遇到一个很困扰的问题,系统请求量变大了一台服务器已经扛不住了。于是我基于mq升级了我的服务,让我的服务能够支持横向扩展,通过mq服务完成各节点之间的通信。于是我们将服务部署到两个节点上,然后通过nginx随机将请求平均分发到两个节点。那么问题来了,在随机分发到两个节点之后服务器的CPU占用有所下降,但是内存占用却没有降下来。于是我们分析了一下原因,因为是随机分发,那么同一条数据请求两台服务器都会随机到,那么在这两台服务器上就会有相同的数据缓存,那么这样就会造成内存的浪费。于是我们就想办法根据请求的参数进行分发,保证同一条数据请求只会到同一台服务器。 开始时我们用到了consistent_hash,但是我们客户端请求不规范有有些参数是放在POST请求中的,consistent_h...

博客第一篇markdown文章

第一篇markdown文章 今天刚完成的功能,博客开始支持markdown了。特此纪念一下。 二级标题 三级标题 四级标题 table功能 表头1 表头2 表头3 a b c 插入代码 { success: true } 插入一张美女图片:

Sublime Text3注册码

—– BEGIN LICENSE —– Ryan Clark Single User License EA7E-812479 2158A7DE B690A7A3 8EC04710 006A5EEB 34E77CA3 9C82C81F 0DB6371B 79704E6F 93F36655 B031503A 03257CCC 01B20F60 D304FA8D B1B4F0AF 8A76C7BA 0FA94D55 56D46BCE 5237A341 CD837F30 4D60772D 349B1179 A996F826 90CDB73C 24D41245 FD032C30 AD5E7241 4EAA66ED 167D91FB 55896B16 EA125C81 F550AF...

Java中的阻塞队列

1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 阻塞队列提供了四种处理方法: 方法\处理方式 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add(e) offer(e) put(e) offer(e,time,unit) 移除方法 remove() poll() take() poll(time,unit) 检查方法 element() peek() 不可用 不可用 抛出异...

Java xml解析器BUG

今日发现一个BUG,之前调用很好的webservice借口,突然无法调用了并且报错,错入日志如下: com.sun.xml.internal.ws.streaming.XMLReaderException: Unable to create StAX reader or writer at com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory$Default.doCreate(XMLStreamReaderFactory.java:359) ~[na:1.7.0_45] at com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory.create(XML...

2015年终总结

2015上半年挺平淡,普通的工作生活。 6月份收房,有了自己的新房子。 9月份小方来转战武汉,为我们打前站。 十一来武汉装修新房子,为转战武汉做准备。 11月13号呆着老段和高烦烦出发转战武汉14号到达,离开了奋斗很多年的北京。现在想想还甚是怀念。 11月末老段查出了患有冠脉肌桥,从此她就告别体力劳动了,只能看看孩子烧烧饭,人开始健健康康最重要。 2015年可以还清买房时所欠的外债了,从此不欠钱了,无债一身轻。 2016计划: 努力工作、好好奋斗;减肥;买一辆车。

一台丢失的iphone 续

上篇内容:一台丢失的iphone 继昨天被我识破icloud密码骗取的钓鱼网站之后,骗子又来新招了。他往我的icloud对应的邮箱发来了一封邮件,开始时我是在手机上看到的邮件,差点就输入密码了,但是为了安全起见我还是打开电脑确认了下,也幸亏我确认了一下。邮件内容如下: 打开页面之后,就立马发现域名不对。 同样的,我也监控了下表单提交的请求,发现他的请求和上篇文章中讲的一样,302到http://www.id1111.pw

一台丢失的iphone

败家娘们来武汉之后已经被偷了6000块钱了,不得不吐槽一下武汉的贼真他妈的多! 第一次大概是一个多月之前,被偷了两千块现金。 第二次是下雨我出去接她,手机就放在她口袋中,而且我们在通一把伞下,转眼的功夫手机就没了。为了不让爸妈知道了后心疼,当天晚上回去就又在网上买了部一样的iphone6土豪金,花了老子4000大洋,肾疼!!! 手机丢了之后我就使用“查找iphone”功能将手机设置为丢失模式了,也不知道管不管用,也从来没用过,苹果手机号称安全,应该是管用的吧。 今天中午我收到了一条这样的短信,短信内容如下: 于是我就按照短信提示,打开了短信中的网址:http://www.icloud-ier.com。打开之后首先让我感到不对的地方是该页面的字体, 虽然这个登录页面和icloud的登录页面相识...

Java多线程下载

package cn.mucang.chat.common.download; import com.google.common.collect.Lists; import org.apache.commons.lang3.math.NumberUtils; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpHead; import org.apache.http.impl.client.HttpClientBuilder;...

侧栏导航