greenev —— Python 异步网络服务框架

greenev是一个基于greenlet协程,事件驱动,非阻塞socket模型的Python网络服务框架,它使得可以编写同步的代码,却得到异步执行的优点。

本项目受到gevent, openresty, alilua, skynet, clowwindy/ssloop的启发,在此表示感谢。

  • reactor模式采用基于epoll, kqueue, poll, select的IO复用机制
  • 基于底层的reactor完成上层greenlet协程的调度
  • 在CentOS6.5, Ubuntu12.04, FreeBSD10.1, Windows7上测试通过
  • 只需调用g.parent.switch挂起当前的协程,而无需管理其中的细节

测试前请修改如下系统参数(CentOS):

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
fs.file-max=65535
net.ipv4.tcp_max_tw_buckets = 20000
net.nf_conntrack_max = 65000
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
时间: 2024-09-16 15:14:20

greenev —— Python 异步网络服务框架的相关文章

Android最基本的异步网络请求框架

本篇文章我们来一起写一个最基本的Android异步网络请求框架,借此来了解下Android中网络请求的相关知识.由于个人水平有限,文中难免存在疏忽和谬误,希望大家可以指出,谢谢大家. 1. 同步网络请求 以HTTP的GET请求为例,我们来介绍一下Android中一个基本的同步请求框架的实现.直接贴代码: public class HttpUtils { public static byte[] get(String urlString) { HttpURLConnection urlConnec

uvloop —— 超级快的 Python 异步网络框架

简短介绍 asyncio是遵循Python标准库的一个异步 I/O框架.在这篇文章里,我将介绍 uvloop: 可以完整替代asyncio事件循环.uvloop是用Cython写的,基于 libuv. uvloop 使得 asyncio 更快. 实际上,比nodejs,gevent,以及其他任何Python异步框架至少快两倍 .uvloop asyncio 基于性能的测试接近于Go程序. asyncio 和 uvloop asyncio 模块, 是在 PEP 3156引入的, 是一个集合,包含网

.NET框架与网络服务

.net框架|网络 网络服务(Web Service)是基于网络的分布式应用程序的基本构造模块,而这些程序是以平台.对象模板和多语言方式构建的. 网络服务是建立在象HTTP和XML之类的开放的Internet 标准之上的,并且由此形成了可编程网络理念的基础. 图1 网络服务应用模型 这篇文章详细讲述网络服务以及为其提供支持的技术,这些技术能确保服务被集成到应用程序里去.同时本文将讲述新的Microsoft.NET框架及其对生成和使用网络服务的支持. 现在开发中最紧迫的问题是应用程序的集成化:运行

.NET框架与网络服务(下)

网络 .NET框架与网络服务(下)(作者:MSDN 2001年02月06日 10:47) ■数据访问服务 几乎所有的网络服务都需要查询和更新永久性数据,不论是以简单文件,还是以相关数据库,或是以其它的存储类型存在.为了提供对数据的访问,服务框架包括ActiveX Data Objects+ (ADO+)类库.如同名字所暗示的那样,ADO+由ADO发展而来.ADO+为基于网络的应用程序和服务提供数据访问服务.图1阐明了ADO+的体系结构,表明任何数据,不论这些数据实际上如何存储的,都以XML或相关

Python基于smtplib实现异步发送邮件服务

  这篇文章主要介绍了Python基于smtplib实现异步发送邮件服务,需要的朋友可以参考下 基于smtplib包制作而成,但在实践中发现一个不知道算不算是smtplib留的一个坑,在网络断开的情况下发送邮件时会抛出一个socket.gaierror的异常,但是smtplib中并没有捕获这个异常,导致程序会因这个异常终止,因此代码中针对这部分的异常进行处理,确保不会异常终止. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

.NET框架与网络服务(上)

网络 .NET框架与网络服务(上)(作者:MSDN 2001年02月06日 10:47) 网络服务(Web Service)是基于网络的分布式应用程序的基本构造模块,而这些程序是以平台.对象模板和多语言方式构建的. 网络服务是建立在象HTTP和XML之类的开放的Internet 标准之上的,并且由此形成了可编程网络理念的基础. 图1 网络服务应用模型 这篇文章详细讲述网络服务以及为其提供支持的技术,这些技术能确保服务被集成到应用程序里去.同时本文将讲述新的Microsoft.NET框架及其对生成

在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分

编程|网络|异步 ///////////////////////////////////////////////////////////////////////////////////////////* 标题:在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分 当看到.NET中TcpListener和TcpClient的时候,我非常高兴,那就是我想要的通讯模式但是使用之后发现它们的力量太单薄了,我们需要一个更好的类库来替代它们. 下面提供了一些类,可以

Java AIO初探(异步网络IO)

按照<Unix网络编程>的划分,IO模型可以分为:阻塞IO.非阻塞IO.IO复用.信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO.如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO.非阻塞IO.IO服用.信号驱动IO都是同步IO,如果不阻塞,而是操作系统帮你做完IO操作再将结果返回给你,那么就是异步IO.阻塞IO和非阻塞IO

分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?

Dubbo启动维护后,阿里中间件(Aliware)组建了由专职人员和RPC技术专家组成的虚拟维护团队.通过这篇文章,Dubbo的虚拟维护团队将和大家分享一些Dubbo启动维护的历程.取得的成绩以及后续的规划,具体包括Dubbo社区的建设情况.当前的版本维护主线.近期roadmap及后续计划等. Dubbo是阿里巴巴于2012年开源的分布式服务治理框架,目前已是国内影响力最大.使用最广泛的开源服务框架之一,在Github上的fork.start数均已破万. 在过去几年,Dubbo开源社区虽然一直有