DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

Huffman

  • 有权的二叉树
  • 自底向上的堆
  • 不会存在某个编码是另个编码的前缀
  • 用于压缩部分效果尤佳

Huffman

延迟队列

订单类系统,用户创建后一段时间没有付款,需要讲该订单关闭掉,同时把库存还原回去

mongodb做队列,由于mongodb有一个叫做findAndModify的操作。操作为原子性,即,你可以修改一条记录的同时把老的记录返回。

同时可以考虑java的延迟队列的实现

java.util.concurrent.DelayQueue

同时:

一些总结:能不用锁的地方一定不要用锁,锁会把你的性能耗尽。能不用分布式锁的地方一定不要用,如果你的系统需要使用分布式锁,可以想想有没有其他的简单粗暴的方案,也许会有更好的搜获。分布式系统的一个特点是高并发,如果架上了分布式锁,很可能让你的系统变成了串行处理的系统了,这样就违背分布式系统的初衷了。

activeMq

activeMq消费消息时网络流程异常大

主要的矛盾点在于:mq的prefetch机制,以及jmsTemplate的每次new consumer的机制的冲突

解决方案:

  • 禁用prefetch

带来的后果,每次jmsTemplate的receive创建,造成资源浪费

  • 不使用jmsTemplate

自己单独创建cosumer,并单线程反复来使用进行receive。要避免,多线程使用一个consumer造成的消息混乱。这块,自身可以采用延迟队列的方式来进行?

今天跟李辉,聊到一个很沉重的话题,30岁的自己会成为什么样子,30岁的自己会在哪。

30岁,2-3年后,自己会是什么样子的一个状态,现在能够想象自己那时候的情况吗?说实话,很难想象。时间变化的很快,转眼间,3年过去了,距离自己5年成为行业中的专家的路子才开个了头,何去何从?

对30岁的自己定一些目标,不让自己在30岁那个时候去叹息,去哀怨:

  • 多去尝试新的技术,但不要忘记自己的技术栈
  • 多去尝试新的人生,但不要忘记自己的初心
  • 多去尝试新的菜品,但不要让自己变得更胖
  • 多去尝试新的交际,但不要忘记自己的原则

其实,就是不断地去尝试,去体验不同的世界,去尝试改变一些环境,既然改变不了世界,就改变自己。

自己的初心,终老这个行业,努力地去编码,努力地找到自己喜欢的,然后努力地去达成

学习是一种信仰,人生是一种体悟

gor

Gor is a simple http traffic replication tool written in Go. Its main goal is to replay traffic from production servers to staging and dev environments.

项目地址

主要的使用命令:

  • 使用1个Gor Instance来进行listen和replay(有延迟)
1
sudo gor --input-raw :80 --output-http "http://staging.com"

这部分的功能好像有延迟的问题,需要考虑

  • 离线进行replay(推荐)
1
2
3
4
5
# write to file
gor --input-raw :80 --output-file requests.gor

# read from file
gor --input-file requests.gor --output-http "http://staging.com"
  • 采用单独的replay server来进行转存(未通过)
1
2
3
4
5
6
# Replay server (replay.local).
gor --input-tcp replay.local:28020 --output-http http://staging.com

# Run on servers where you want to catch traffic. You can run it on each `web` machine.
sudo gor --input-raw :80 --output-tcp replay.local:28020

当然,这块还有更多的扩展

jquery.each

We can break the $.each() loop at a particular iteration by making the callback function return false. Returning non-false is the same as a continue statement in a for loop; it will skip immediately to the next iteration.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(function(){
// 結束循環(即break)
jQuery.each(aOptionList, function(index, option){
if (option.innerHTML === "stop") {
return false; // 返回false即break掉each循環
}
// magic
});

// 繼續下一個循環(即continue)
jQuery.each(aOptionList, function(index, option){
if (option.innerHTML === "stop") {
return true; // 返回任意非false值
}
// magic
});
}());

ajax过程

  1. 创建XMLHttpRequest对象,也就是创建一个异步调用对象.
  1. 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.
  1. 设置响应HTTP请求状态变化的函数.
  1. 发送HTTP请求.
  1. 获取异步调用返回的数据.
  1. 使用JavaScript和DOM实现局部刷新.

浏览器并发

6个并发

js闭包

  • 函数嵌套函数
  • 函数内部可以引用外部的参数和变量
  • 参数和变量不会被垃圾回收机制回收

好处部分:

  • 希望一个变量长期驻扎在内存中
  • 避免全局变量的污染
  • 私有成员的存在
1
2
3
4
5
6
7
8
9
10
11
12
<script>
function outer(){
var x=10;
return function(){ //函数嵌套函数
x++;
alert(x);
}
}
var y = outer(); //外部函数赋给变量y;
y(); //y函数调用一次,结果为11,相当于outer()();
y(); //y函数调用第二次,结果为12,实现了累加
</script>

转眼间,三年过去了,最终还是又回到了西三旗。同样的人,陌生的环境,感觉自己与这个环境已经相差地太远了。那么自己到底是为什么要回来,这样是更好或更坏?

越临近自己离职的日子,越发觉得自己的决定是不是有点欠妥当,尤其,当自己回来的时候,发现自己的要求跟其他人已经有些区别了,自己沉默地想想,不知道会不会哭出来。自己的这个说走就走的决定,是不是会让自己万劫不复。

开始体会华仔和方局住在客厅的感觉,但物是人非,大家都变了,变得只会在空调房里去欣赏自己,我也变得,对生活品质有了要求,但总感觉跟他人有些区别,生活现在变成了各种AA,谈论各种股票,各种o2o,各种跳槽,说实话,有些失望,有些苦闷。

在炎炎夏日的夜晚,吐槽着自己觉得不爽的想法,吐槽这熟悉的人,陌生的环境,吐槽着生活品质的下降,感慨着,自己未来的生活是不是也会像这样一样,放弃优越的环境,放弃优越的注目,只能过着苦行僧般的生活,自己的这个决定,是不是会失败?

一切还未知,作为自己第一个反思的结果,自己决定放弃稳定的环境,良好的生活品质,去赌一条自己都觉得不了解的路,来一场说走就走的辞职,这一切,是不是自己想要的?

但,第二个词,坚持。既然反思了自己以前的那段颓废的日子,反思了自己安逸的环境,既然赌博了这样一条道路,自己是不是已经有了坚持的目的?

  • 坚持每天20-30个仰卧起坐
  • 坚持每天10-20页的书
  • 坚持每天30分钟的kindle
  • 坚持每个星期的blog总结
  • 坚持。。

这样一种苦行僧般的生活,何尝不是一种赌博,何尝不是一种坚持?冷眼看他人的放纵以及颓废,坚定自己的想法,坚定自己的信念,何尝不是一种坚持?

祝坚持到底!

^_^