mogilefs多集群初步发挥威力

先bs下不靠谱的 mogilefs 的API!那帮哥们儿就压根没想到世界上还会有人在windows下用他们的api!

对《梦断代码》的书评:除了中间的跑题外,基本上靠谱。

这本书很靠谱的说出了一个事实:软件开发是件不靠谱的事。
  不管是大教堂还是集市,不管是开源还是自由,都不能改变这个根本属性。
  这么说,软件工程的爱好者们以及管理者们肯定要向我扔鸡蛋了。 不过,我心目中的软件开发,大抵就是这么回事。
  为什么?因为,真正创新性的软件开发总是带有一点艺术与作坊的意味。

应用加特林原理解决mogilefs 写入速度问题


之前采用一个mogilefs集群来存储系统的海量文件,无奈文件增加太快,而mogilefs的写入速度貌似到了一个极限,已经不能满足每天新增文件的需求了。这个极限,实测大概在50万个文件左右每天。
为了解决写入速度问题,只好再增加几套mogilefs集群,组成一个二级的集群,然后大家一起传。

开发过程比较简单,在现有的 mogilefs.py 的基础上,增加上传下载的策略。

Django中集成RabbitMQ消息中间件,实现消息异步处理

目的: web访问中的事件直接传递到其他系统中,异步处理。
传统做法:将消息写入数据库 或文件中,另一个程序后台轮询读取处理。或者通过IPC, socket,发给对方处理程序。
缺点:耦合。两个系统需要共享一个存储空间,数据库或文件,或者直接发送到对方程序中。不论怎样,都需要知道处理程序的存在的具体位置。

利用MQ解决: 直接在django中发送给MQ一个消息,由订阅此消息的外围程序异步处理。

基于Erlang的RabbitMQ 消息中间件的安装与基本使用及python,ruby api

(标题写全面点有利于搜索 m-_-m)

简介
看这个 slide: http://www.slideshare.net/somic/introduction-to-amqp-messaging-with-rabb...

RabbitMQ 是基于Erlang开发的消息中间件,后面省略企业级套话252字,简单的说它可以用来在不同应用间传递消息和数据。我喜欢Rabbit。

下载:
http://www.rabbitmq.com/server.html 这个页面上有,各找各妈。(macosx的童鞋请选择 Packaged for generic Unix systems)。

安装:

原来RAID0+1也是不保险的

之前的 slave 数据库死掉了,临下班时安排进行新的slave库重建。
停掉主mysql 后,把文件复制到从库主机上,然后就重启了主数据库服务器。重启中,因为已经超过220天没有fsck了,所以进行了自动扫描。
启动后,进入mysql,发现了一件令人惊愕的事情!我们的主运营数据库中一个表都没有了!查到原因发现,磁盘上mysql的目录中,那个主库的所有文件都消失了!我们的磁盘可是RAID0+1配置的啊,难道是 fsck的时候给搞丢了?

SeaSide/Magritte 与 Zope/CMF 的比较

除了 Continuation这一点区别外, SeaSide 和 Zope 很像。
而 Magritte 相对于Seaside的关系就有点类似 CMF 与Zope的关系。

Seaside与Zope的相似点:

1. 两者都是web应用服务器,都可以独立运行,且自带对象持久层
Zope使用 Zodb对象数据库,而seaside则把对象直接就可以smalltalk虚拟机的镜像中, 同时也可以像Zope那样用对象型数据库 GOODS (Generic Object Oriented Database System)

2. 两者都可以在页面上进行配置管理

SeaSide挽救了我对于OOP以及Web开发的信心

我真的不喜欢web开发,事实上,我一直对各种各样的连接,POST来的数据检查,页面的跳转,乱七八糟的状态等等心存怨念。同样的,对于OOP我的感觉也不好,为什么呢?因为人们用OOP来处理web的尝试创建了大量的框架,可是她们不好用,至少不自然,没有别的,就是觉得很不自然。
这是OOP的错还是Web的错?

windows上MogileFS 的python api兼容问题

mogilefs 的python接口文件是第三方提供的,在windows下执行会无法连接Backend,跟踪了下代码,修改了两处, diff 如下:

176c176,179
<                 sock.sendall(req, self.FLAG_NOSIGNAL)
---
>                 if os.name =='nt': # by LEE
>                     sock.sendall(req)
>                 else:
>                     sock.sendall(req, self.FLAG_NOSIGNAL)
189c192,195
<                 sock.sendall(req, self.FLAG_NOSIGNAL)
---
>                 if os.name == 'nt': # by LEE
>                     sock.sendall(req)
  

悄悄的进来,打枪的不要

虽然在国外技术群体和大学中Haskell挺热闹,但在国内Haskell的声音还是很微弱,这很正常 很正常啊。与5,6年前Python在国内的境遇一样。Haskell在国外的渐渐升温也就这三年来的事,找了下 tiobe 的历史记录可以发现:

2004年11月: 前50名里根本不见Haskell得影,(erlang49, Java2)

2007年5月: Haskell 39 , Tcltk 26
2007年10月:Haskell 34
2008年1月: Haskell 36, 接近TclTk(35), erlang 49 。 8个月涨了3位。

Syndicate content