阅读更多
项目名称: 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

对JavaEye的印象
感谢 JavaEye 对脚本语言推广所做的贡献, 祝 JavaEye 越办越好。
18
0
评论 共 34 条 请登录后发表评论
34 楼 dhgdmw 2009-01-22 16:52
哦,好东东
33 楼 wills 2008-10-11 09:38
我非常同意meng9999的看法,如果是应用于WebIM或是WebGame,还不如用Socket.这不仅是因为我所从事的是Flash 相关的WebGame这一行,当然我自己也在研究Socket服务器.
另外,eishn,也说得对,HTTP本质上是一个TCP跟TCP的Socket在底层通讯上没什么不同. 我只是稍看了一下 Eurasia3 的一些Demo,发现是在多以文本通讯.如果从Ajax的结合度上说,没有效率问题,但是如果使用Flash开发的WebIM或是WebGame,就差很远了.因为Flash可以使用AMF3经过压缩的纯二进制格式,它的效率远比文本要高. 另外,我也看了一下Eurasia3的测试数据,我不知道发送数据的内容是什么,但是我自己开发的基于Apache mina2的Socket,在我自己的机器上测试,处理10000req/s很轻松[CPU 12%].发送的内容是AMF3 400Bytes的聊天消息.
32 楼 hongliang 2008-09-18 11:08
这是JavaEye有新闻以来最有价值的一条

感谢eishn的努力!

推荐各位去看看这里:

http://code.google.com/p/eurasia/wiki/Eurasia3Book

写的非常YD....
31 楼 aaron2007 2008-09-17 20:14
呵呵支持支持
30 楼 meng9999 2008-09-17 18:39
Eurasia3 的结构设计还是比较好的, js + python 网络框架;


29 楼 meng9999 2008-09-17 18:38
webgame 现在主要是流行flash (as3)  + c/c++ (on linux)开发;
其实网络框架倒还是比较好做,最终还是用户体验上,flash端的动画和创意上;
一个朋友公司开发的flash游戏, 5台服务器支持1-2W个用户并发,已经比较困难;
还在优化;


28 楼 hideto 2008-09-17 17:46
Web Game关注度越来越大了,僧多粥少啊。。。
27 楼 eishn 2008-09-17 14:21
没错, 以后会改成 Comet, 邮件列表里面有说到
26 楼 coolmenu 2008-09-17 14:09
svn 里面的 Pushlet 应该为Comet 吧, demo 里面的程序都不能运行
25 楼 ray_linn 2008-09-17 13:52
Stackless python并不是什么先进技术,不过是重复重复再重复的事情,我特别想看看更贴近实际的一次性能测试。
24 楼 ray_linn 2008-09-17 13:51
有一分ting写的MicroThread的论文可以看看,不过最好的方法还是去探索源代码了。
23 楼 eishn 2008-09-17 13:43
hi meng9999, Flash + Socket + Python (Twisted?) 这个方案也不错的
至于 select, 现在我们一般用 poll (epoll) 来代替, 并发多的话会更好一些。

fxsjy, Eurasia3 和 PHP 不大好比较, 他们关注的领域不一样。
22 楼 fxsjy 2008-09-17 13:05
请问与apache + php 比起来,如何?
21 楼 meng9999 2008-09-17 13:03
我原来开发软交换服务器,一个纯C写的基于UDP的SIP协议的服务器,
就使用c的selcet进行网络IO的处理,大概一般的PC服务器上,同时
处理1W个注册请求,就已经不错了;



20 楼 meng9999 2008-09-17 12:56
呵呵 , comet 我关注了很长时间; 原来使用glassfish应用服务器,它在新的版本里头支持了comet。 后来测试的时候,发现长连接这些服务费并不在行; 主要是
web服务器本来就是使用HTTP协议进行设计的;所以现在我的WEBIM实现方法还是
js<------->servlet
这样很传统,但很多案例说明这样是最稳定的;
最近我发现flash也不错,大部分浏览器都安装了FLASH;
于是有了了比较'激进'的想法:
js<-------flash-------socket--->python
这样做应该还是比较好的,根据这样的架构,我想一个服务器支持几万个连接总可以的;
但沈崴的架构还更加'激进':
js<------http长连接-------->python的网络架构
这种方式的应用,特别是http长连接,现在的应用还比较少;号称百万级别,有待测试;







19 楼 eishn 2008-09-17 12:22
yaws 看上去很强大, 可惜我不是很熟悉, 看上去目前 yaws 作的测试和我的侧重点还不一样, 以后有空我会对比一下。Erlang 和 Stackless Python 线程在级别上是差不多的, 现在他们的比较还不是很多, 所以我也比较期待。
18 楼 coolmenu 2008-09-17 12:18
mochi_web 也是应用服务器, 现在是等于比较 erlang vs stackless python..
17 楼 pi1ot 2008-09-17 12:00
比较关心是否和yaws做过同条件下的对比测试
16 楼 eishn 2008-09-17 11:56
hi pi1ot, Eurasia3 是应用服务器, 在动态页面上有优势, 并在同类别的应用服务器中遥遥领先, 但在静态页面的性能上则不如 Apache 这些服务器。所以 Eurasia3 和 Apache 不是竞争的, 也没有超越这些服务器的打算

gqf2008, Eurasia3 对于简单应用诸如 Web IM、股票行情 性能相对要好一点, 但是随着运算的复杂, 传输量的增大, Eurasia3 的性能会很快下降。作 Game, 性能不一定会超过征途。Eurasia3 只是提供了一个不存在瓶颈的平台, 性能还是和具体应用和程序质量相关。不过 "不存在瓶颈" 并不是扯蛋的说法, 因为目前绝大多数应用服务器的架构本身都存在性能瓶颈和上限。我们本身有 WebGame 的计划, 基于这点, 我们自己不会选择 Eurasia3 之外的框架。
15 楼 pi1ot 2008-09-17 11:31
看eishn的帖子,长短连接性能全面领先,颇有超越apache或者其他流行web server的意图?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 用.net发送 Email 帮助类 EmailHelper

    上一篇转人家的, 虽然复制粘贴简单, 但找参数都要找半天的…… 发送邮件不就是知道人家的地址,再输入主题和内容就可以了嘛! 1. 配置文件 App.config 2. EmailHelper 类 using System; using System.Collections.Gener

  • 轻量级邮件发送组件:基于 Socket/SMTP 协议的浅层封装

    Java 发送邮件组件,大家第一时间想到的就是 JavaMail。JavaMail 本身也不大,才 500kb 的 jar 包,足够轻量级。而今天为大家介绍的,可以说“羽量级”,核心一个类就可以发送邮件了,除了依赖 JDK 无须依赖什么。如果我们了解 SMTP 协议以及 Socket 的简单使用,就知道其中过程并不复杂——实质都是基于文本的协议交互。

  • SMTP协议发送附件 MIME扩充协议

    SMTP协议发送附件 MIME扩充协议

  • SMTP协议介绍

    1、SMTP介绍 基本概念 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件 的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件 时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程 只要几分钟。SMTP服务器则

  • php使用smtp封装类发送邮件

    <?php date_default_timezone_set('Asia/Shanghai'); // 'Asia/Chongqing' or 'PRC' require_once ('mail.class.php'); $smtpserver = "smtp.163.com";//SMTP服务器 $smtpserverport =25;//SMTP服务器端口 $smtpusermai

  • SMTP实现发送邮箱2(封装版)

    SMTP.h #ifndef __SMTP_H__ //避免重复包含 #define __SMTP_H__ #include &lt;iostream&gt; #include &lt;list&gt; #include &lt;WinSock2.h&gt; using namespace std; const int MAXLEN = 1024; const int ...

  • 简单邮件传输协议(SMTP)

    简单邮件传输协议(SMTP)介绍SMTP模型SMTP过程SMTP说明TCP传输服务NCP传输服务NITSX.25传输服务应答码构成方法一些例子1. 介绍简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。附录A,B,C和D描述了不同

  • 简单邮件传输协议SMTP

    1. SMTP协议概述SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是由源地址到目的地址传送邮件的一组规则,用来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它使每台计算机在发送或中转信件时能找到下一个目的地。通过使用指定的服务器,把Email寄到收信人的服务器上。SMTP服务器是遵循SMTP协议的邮件服务器,用来发送或中转电子邮件。首先,客户端...

  • SMTP协议详解及工作过程

    1、SMTP协议简介 SMTP称为

  • php 利用smtp封装类发送邮件

    1. smtp封装类,二开注意名称不要与已有冲突还要注意位置放正确, 比如我这里重命名为smtp_email.php,放在classes文件夹下     &amp;lt;?php class smtp_email { /* Public Variables */ public $smtp_port; public $time_out; public $host_n...

  • SMTP协议详解

    SMTP发送邮件之前需要将二进制多媒体编码为ASCII码,并且在使用SMTP传输后要求将相应的ASCII码邮件解码还原为多媒体数据,我们知道的是HTTP传输前不需要将多媒体数据编码为ASCII码。,我们几天主要来说一下在应用层中的SMTP协议,它使用TCP可靠数据传输服务,像大多数应用层协议一样,SMTP也有俩个部分:运行在发送方邮件服务器的客户端和运行在接收方邮件服务器的服务器端,http更像一个拉协议,服务商在Web上装载信息,用户使用HTTP从该服务器拉取这些信息,......

  • 简单邮件传输协议 SMTP

    简单邮件传输协议(SMTP) 1. 介绍   简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。附录A,B,C和D描述了不同传送服务下SMTP的使用。在名词表中还定义了本文档中使用的术语。   SMTP的一个重要特点是它能够在传送中接力传送邮件,传送...

  • 简单邮件传送协议SMTP

    简单邮件传送协议,简称SMTP(Simple Mail Transfer Protocol)。 一个电子邮件系统应具有三个主要组成构件,用户代理、邮件服务器、SMTP和POP3(注:POP3是邮局协议(Post Office Protocol)的版本3),如下图:   说明: 1、用户代理UA(User Agent)就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户PC机中的一个

  • 邮件传输协议SMTP

    邮件传输协议 邮件传输过程 SMTP简单邮件传输协议 SMTP 使用客户/服务器方式,负责发送邮件的 SMTP 进程是 SMTP 客户,而负责接收邮件的 SMTP进程是 SMTP 服务器,当两个进程建立了TCP连接后,电子邮件就能通过该标准准确无误地传输; SMTP协议是基于文本的协议,通过SMTP发送的电子邮件都是普通文本格式的,不支持声音、图像等非文本信息,但可以通过MIME标准将此类信息进...

  • SMTP协议

    一、SMTP组成部分 SMTP协议是互联网上最古老的应用之一,是电子邮件所采用的协议,是电子邮件发送电子邮件时的协议。 它包括3个组要组成部分。 (1)用户代理 (2)邮件服务器 (3)邮件协议 二、用户代理 用户代理:运行在客户端的软件。 作用: (1)它允许用户阅读,回复,转发,保存,编辑邮件消息。 (2)发送/接收邮件消息到/从服务器。 (3)运行邮件协议。 三、邮件服务器 邮件服务器:也就是我们常说的邮箱存放的位置。 作用: (1)用邮箱存放用户接收的邮件消息。事实上现在绝大部分邮件服务器也同时存放

  • SMTP说明(与HTTP的对比)

    SMTP简单说明 下去是因特网电子邮件系统的总体情况: 从该图中我们可以看到它有3个主要组成部分:用户代理(user agent)、邮件服务器(mail server)和简单邮件传输协议( Simple Mail Transfer Protocol ,SMTP)。用户代理允许用户阅读、回复、转发、保存和撰写报文。微软的Outlook和 Apple Mail 是电子邮件用户代理的例子。完成邮件撰写时,邮件代理向其邮件服务器发送邮件,此时邮件放在邮件服务器的报文队列中。邮件服务器形成了电子邮件体系结构的核心。

Global site tag (gtag.js) - Google Analytics