Archive: 2016

nginx中map模块的使用及性能测试

背景最近我操刀了leetcode的论坛迁移,整个过程持续了几周的时间,总算暂时告了一个段落。常使用leetcode论坛的用户应该已经发现论坛已经大变样了吧~期间遇到了不少坑坑洼洼,将来也还会有好多问题等待去一一解决。关于这个迁移过程中的收货,这篇文章中就不细说了,有时间再另开一篇博文。这篇文章主要关注在url-mapping以及它的性能问题。 问:url-mapping的问题从何而来呢?旧的论坛和新的论坛是两个不同的discuss框架。前者是phpbb,现在是nodebb。两者的 url routing 完全不一样,比如说同一个topic,在原来的url是:http://hostname/discuss/<topic_id>/<topic_name>在新的论坛中是:http://hostname/topic/<topic_id>/<topic_slug>(这里就不讨论两者甚至连topic_id都不一样的问题了)。而在广袤的互联网海洋中,旧论坛的url可能到处都存在。我们不希望在论坛迁移后,用户点那些链接就失效了。我们希望的是用户访问旧的url可以被重定向到新论坛的某个地址。所以就产生了url-mapping的问题。

在linode服务器上安装kubernetes集群

前言这篇文章其实主要是记录我在安装kubernetes集群时遇到的坑,然后是如何解决的。关于kubernetes的概念,以及安装kubernetes的详细流程将不在本文涉及。 问题背景我已经在Digital Ocean成功部署了一个小型的kubernetes集群,包含一个master和一个slave。部署的方式是使用ansible,这里有一个项目可以参考contrib,按照里面的配置配一下,就可以一键部署集群了。 由于linode机器比DO的机器性价比高一点($40/month这一档前者是4核的CPU,后者只有2核),所以想把集群迁移到linode上。然而在使用脚本部署的过程中总是报错,查了一下发现kubernetes的flannel网络层插件始终起不来,查看了systemctl的日志,发现flannel无法初始化vxlan的网络,具体症状可以参考这样一个issue。

算法训练——GCJ-2008-R1A-B-Milkshakes

题目链接: https://code.google.com/codejam/contest/32016/dashboard#s=p1 分析:注意到每个customer最多只能有一种奶昔是”malted”的,这点是解决这题的关键。可以推出以下结论: 如果所有用户至少有两种喜欢的奶昔,那么必然有一种是”unmalted”,那只要保证所有奶昔种类都是”malted”就解决了。 如果有部分用户只喜欢一种奶昔,如果该奶昔是”unmalted”的,那么可以不用管它。 如果有用户喜欢一种奶昔,且”malted”,那么需要处理

Go语言学习笔记

背景这两年go语言比较火,尤其是在服务器并发方面表现很好。一直想学一下,但是拖到现在。最近正好有这个机会,把go语言算是入了个门吧。

浅析tornado协程运行原理

前言去年有一段时间一直在研究各种python协程框架,包括gevent, asyncio, tornado。阅读tornado的源码还是两个多月前的事了,一直想写一篇文章出来整理整理,但不知道从何处开始下笔。如果贴上一段段源码,然后通过语言来描述各种流程,这种类型的文章网上也有不少,况且这样子的讲解对于读者来说可能会比较乏味。

celery初探

背景及介绍最近接触一个项目,用到了celery, 故对其作一个学习和了解。celery是一个基于Python开发的并行分布式框架,在github上可以找到。