1. 程式人生 > >Eurasia3 支援百萬級使用者的伺服器和框架

Eurasia3 支援百萬級使用者的伺服器和框架

專案名稱: Eurasia3
發起時間: 2004年
程式碼託管:http://code.google.com/p/eurasia

專案介紹:
Eurasia3 是一種能夠支援百萬級同時線上長連線使用者數量的 HTTP 伺服器, 或者每秒處理上萬次 CGI 請求的常規應用伺服器。
Eurasia3 同時也泛指以 Eurasia3 應用伺服器為核心的一系列元件形成的應用程式框架, 主要是一個嵌入式物件資料庫 MissileDB, 和一個 JavaScript 框架 NJF。
Eurasia3 基於 Stackless Python。

產品資訊:
執行平臺: 支援 Stackless Python 2.5 的系統, 包括各種嵌入式平臺
開發語言: Stackless Python
開源協議: BSD License

專案成員:

沈崴, 高階架構師, 上海,專案發起人。
賴勇浩, 某公司技術負責人,廣州。
王健, 某公司技術負責人, 經理, 廣州。
魏中華, 專案經理, 廣州。
莊上林, 專案經理, 廣州。


是什麼促使你們發起/開始這個專案?
Eurasia 最初源於某個大型人工智慧專案, 是為了解決大量邏輯資料的儲存和管理的問題而形成的一個 Web 管理系統, 並發展成一套 AJAX 框架。
而 Eurasia3 專案則是源於一系列關於 Web Game 的嘗試。我們試圖在瀏覽器上在不使用任何外掛和 Flash 的情況下, 就能實現即時類遊戲的效果並維持幾十乃至上百萬人同時線上, 這最終導致了 Eurasia3 框架的產生。


該專案面向哪些使用群體?

黑客, Web Game 和 Web IM 從業人員, 對前沿技術感興趣的人以及 Comet 愛好者。

舉個例子說明下使用者使用您的軟體能做什麼?
基於瀏覽器的 MMORPG, 玩家在地圖上漫遊時所看到的一切都是即時的。
基於瀏覽器的 Web IM, 伺服器能負載傳統 IM 伺服器那樣多的線上人數, 訊息傳送是即時的, 瀏覽器使用者不需要外掛就可以互傳檔案。
Comet 應用, 伺服器程式可以在任何時候使用原生 Python 程式碼遠端呼叫客戶瀏覽器上的 JavaScript 函式。
在一兩百塊錢 200-300 MHz 主頻的嵌入式系統 (諸如路由器, Stackless Python 官方發行版中已經帶有我們貢獻的補丁可以使 Stackless Python 執行在這類系統上) 上執行以 Eurasia3 為基礎的網站可以接近或達到和常規伺服器一樣的效能。

您認為有多少人使用這個軟體/專案/服務?

至少有四家以上的公司正在使用基於 Eurasia 的軟體。

有什麼跡象表明您的專案很成功?
儘管 Eurasia3 專案主要是面向黑客的, 並且我們相當低調 ──── 你知道我們主要還是以自己使用為主, 也回饋一下社群, 這並不會帶來實際的利益。但是還是吸引了相當多的關注。
儘管 Eurasia3 目前仍然在 alpha4 階段, 但是從 alpha2 開始我們就已經許多專案在實際使用 Eurasia3 了, 這些產品還是頗令我們滿意的。

您覺得最大的驚喜是什麼
儘管 Python 的框架已經很多, 我們也不期望 Eurasia3 在將來某一天像 Django 那樣流行, 但是對 Eurasia3 感興趣的人還是相當多, 有些人甚至表示在將來 Eurasia3 正式釋出時用它來替代 Django (甚至 Nginx), 這比較意外。

您在該專案中遇到的最大挑戰是什麼?
最大的挑戰是時刻保持領先。儘管目前 Eurasia3 是業內比較尖端的技術, 但是我們知道遲早會有超越 Eurasia3 的技術出現, 在此之前我們會努力保持領先。

您在該專案中認為獲得成功的要素有哪些?
黑客的關注和參與。
持續地在正式專案中進行檢驗。
保證劣質的程式碼和程式設計思想不進入專案, 保證程式碼不膨脹不失控。

您對該專案有哪些期望?
一個使用 Eurasia3 編寫的 Web Game, 事實上我們正在著手這件事情, 這在明年或許就會實現。然後就是大家在啟動一個很酷的專案或者一個奇怪的想法時會自然而然地想到 Eurasia3。或許這些都不會真的出現, 但對我們也沒有損失。

如果您能對專案進行修改,您會改善哪些地方?
文件, 當然了。從 alpha2 開始介面一直在緩慢變化, 到下一個凍結特性的 alpha5 版本或許會有更劇烈的變動, 而文件一直是滯後的。這也導致了許多使用者的不滿, 當然也包括我自己在內, 因為連我們自己都有許多產品都是基於老版本的。

你們如何來協調專案?
SVN、Gtalk

你們把所有精力都投入在這個軟體上,還是有其他的什麼工作?
我們大部分人都有自己的公司, 並且正帶著自己的團隊在做一些看上去很有前途的東西。

那你們一般花多長時間在這個專案上?
每週20小時, 10 小時, 或者 0小時。你知道在沒有靈感時與其放一些垃圾程式碼進去, 還不如不寫,

你們用的開發環境是什麼
作業系統: Linux (主要是 Ubuntu)
編輯器: vim, gedit

專案里程碑
1999 年 NJF 框架開始設計, 這是 Eurasia 最早的組成部分。
2004 年 Eurasia 專案開始。
2006 年 9 月 Eurasia 2.0.2 版以 BSD License 開源, 年底 Eurasia3 專案開始。
2007 年 12 月 Eurasia 3.0.0 alpha 釋出。
2008 年 Eurasia 3.0.0 alpha4 釋出。

其他人如何給你們提供建議?
Eurasia3 使用者組 http://groups.google.com/group/eurasia-users

對ITEye的印象
感謝 ITEye 對指令碼語言推廣所做的貢獻, 祝 ITEye 越辦越好。