昨天在sourceforge.net上申请了一个开源项目,Xcesium-Viwow。
Xcesium是徐昊创建的一个开源项目的小组名,Viwow是项目名。
这个项目是为了编写一个JAVA下的高效率高可配置性的服务器基础框架而创建的。类似的项目有Cindy和Netty2,以及早我一天(天!就一天)在SourceForge上创建的RaindDrop。Netty2已经被作者给废弃掉了,不过规模已经颇为可观了。Cindy是国内一位大牛写的,代码质量不错的,不过使用的模型和最终的目标和我的不一样,他瞄准的是简单易用,我瞄准的是高效通用。
具体使用了NIO做输入输出。然后用SEDA的架构,用Stage来组织整个服务器的网络处理。对于Stage的管理,我的目标是通过OSGI和JMX能够动态插拔。而Stage的具体编写,只是实现一个基本的异步Socket,对NIO进行一些封装。具体的上层应用可以写一些简单的sample,不过不作大型的应用,因为只是写一个基础框架。
NIO的主要好处就是能够多路复用,不用一个线程对应一个客户端。
SEDA的主要好处是并发模式灵活,当某个Stage特别忙碌的时候,可以把它的线程池扩大。而且SEDA把你的应用明确的分解为STAGE了,特别适合网络应用的特性。
OSGI的主要好处是提供了JAVA的类加载层次,给JAVA提供了类似.NET的Assembly层面的功能。是一个轻量级的微内核容器。如果使用一些增强的bundle还能提供依赖配置管理。
JMX是标准的管理API,最终的动态管理应该需要依赖这个来实现。
整体的目标有三个:
1、SEDA抽象模型的实现
2、基于SEDA模型的异步SOCKET包装库
3、STAGE动态配置管理框架
Xcesium是徐昊创建的一个开源项目的小组名,Viwow是项目名。
这个项目是为了编写一个JAVA下的高效率高可配置性的服务器基础框架而创建的。类似的项目有Cindy和Netty2,以及早我一天(天!就一天)在SourceForge上创建的RaindDrop。Netty2已经被作者给废弃掉了,不过规模已经颇为可观了。Cindy是国内一位大牛写的,代码质量不错的,不过使用的模型和最终的目标和我的不一样,他瞄准的是简单易用,我瞄准的是高效通用。
具体使用了NIO做输入输出。然后用SEDA的架构,用Stage来组织整个服务器的网络处理。对于Stage的管理,我的目标是通过OSGI和JMX能够动态插拔。而Stage的具体编写,只是实现一个基本的异步Socket,对NIO进行一些封装。具体的上层应用可以写一些简单的sample,不过不作大型的应用,因为只是写一个基础框架。
NIO的主要好处就是能够多路复用,不用一个线程对应一个客户端。
SEDA的主要好处是并发模式灵活,当某个Stage特别忙碌的时候,可以把它的线程池扩大。而且SEDA把你的应用明确的分解为STAGE了,特别适合网络应用的特性。
OSGI的主要好处是提供了JAVA的类加载层次,给JAVA提供了类似.NET的Assembly层面的功能。是一个轻量级的微内核容器。如果使用一些增强的bundle还能提供依赖配置管理。
JMX是标准的管理API,最终的动态管理应该需要依赖这个来实现。
整体的目标有三个:
1、SEDA抽象模型的实现
2、基于SEDA模型的异步SOCKET包装库
3、STAGE动态配置管理框架
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架