宝贝鱼(CshBBrain) 是一个来自中国的简单的轻量级的高性能的WebSocket服务器。支持服务器集群,能满足大并发量高容量的分布式系统开发。如果你需要开发带有集群功能的WebSocket服务器,宝贝鱼(CshBBrain) 也许是非常适合你的选择。在宝贝鱼(CshBBrain)中你可以将某个服务器设置为纯粹的集群管理服务器,或纯粹的业务节点服务器和集群管理业务节点服务器3种类型。适合用于数据推送(股票行情),游戏,聊天/im等服务器程序的构建。
宝贝鱼(CshBBrain)有NIO版本和AIO版本2个版本,宝贝鱼(CshBBrain) 4.0.0之前的版本基于NIO,从4.0.0版起基于AIO。基于JAVA实现的,充分运用了java的多线程技术,线程池,NIO或AIO,缓冲区池等技术。项目从技术架构上采用了分层思想,分为网络传输层,协议解析层和业务层共3层。
网络传输层封装了网络连接的请求建立,数据读写监听,为协议解析层提供服务;协议解析层专门负责具体的协议解析,如果你有兴趣,你也可以在协议层编写自己的协议编码解码器来构建基于你自己协议的服务器;业务层在协议解析层之上做具体的业务处理,这部分的工作就是你要开发具体服务所要编写的业务代码了。
2012年11月5日国内首款基于AIO的开源WebSocket服务器 宝贝鱼 (CshBBrainAIO)正式发布。基于AIO的开源WebSocket服务器 宝贝鱼(CshBBrain) 依然采用分层的体系结构,协议层和业务层 与 基于NIO技术的 开源WebSocket服务器 宝贝鱼 (CshBBrain) 完全一样,采用基于AIO的的 宝贝鱼 进行服务器开发的方式 与 基于NIO 的宝贝鱼 开发方式完全一样。正是得益于彻底的分层架构,所有宝贝鱼在很短的时间内开发出基于AIO技术的新版本。
如果你的分层 也向 宝贝鱼 一样的话,甚至 你在基于NIO 的宝贝鱼上开发的服务器 完全不用修改任何代码 只需要替换成 基于 AIO的宝贝鱼的网络传输层 的代码 一切就OK了!对,你的服务器也就变成了基于AIO的服务器了。基于AIO的服务器拥有所有基于 NIO 的宝贝鱼服务器所拥有的全部功能,但你必须将JDK换成JDK7.简单吧,简单就是 宝贝鱼 服务器所追求的理念。
如果你觉得Mina,Netty太复杂,庞大,难于上手,CshBBrain也许是适合你的选择。
在介绍CshBBrain服务器架构前,我们先分析下业界流行NIO框架的架构,目前业界流行的NIO框架有Mina,Netty,Grizzly等。他们都采用了Reactor模式,下面上张Reactor模式的示意图: [img]http://dl.iteye.com/upload/attachment/0075/0538/e72a2630-c13a-3345-91e3-9c816e54f734.jpg[
创建MasterServer,监听端口,创建一个主线程,只负责接受客户端连接请求,当收到请求之后,由ReadWriteMonitor线程处理之后的read、write操作。主线程的选择器与ReadWriteMonitor不是同一个,否则会导致线程安全问题。其中使用了很多java.util.concurrent包下的类,比如AtomicInteger AtomicBoolean LinkedBloc
转自:http://www.oschina.net/p/cshbbrain 宝贝鱼(CshBBrain) 是一个来自中国的简单的轻量级的高性能的WebSocket服务器。支持服务器集群,能满足大并发量高容量的分布式系统开发。如果你需要开发带有集群功能的WebSocket服务器,宝贝鱼(CshBBrain) 也许是非常适合你的选择。在宝贝鱼(CshBBrain)中你可以将某个服务器设置为纯粹的集群管
开源WebSocket服务器项目宝贝鱼CshBBrain V4.0.1 和 V2.0.2发布 更新的功能列表如下: 1.解决开启广播消息开关时,不能同时接入2个客户端的重大缺陷。 2.对广播消息做了重大优化,从以前一个线程发送广播消息进化到使用工作线程池中的线程并行的发送广播消息。 3.发送给所有客户端的广播消息共享一个消息的内容,避免大量重复的消息编码缓存处理工作,有效的提升广播消息的效率。
开源WebSocket服务器CshBBrain V2.0.0版本发布。在V2.0.0版本中添加服务器集群功能,以满足大并发量高容量的分布式系统开发。如果你需要开发带有集群功能的 WebSocket服务器,CshBBrain V2.0.0也许是非常适合你的选择。在CshBBrain V2.0.0中你可以将某个服务器设置为纯粹的集群管理服务器,或纯粹的业务节点服务器和集群管理业务节点服务器3中类型。
一直想自己架一个Socket项目,这个CshBBrain是开源WebSocket服务器项目。下载地址是 https://github.com/CshBBrain/CshBBrain 基于Java实现的,充分运用了Java的多线程技术,线程池,NIO,缓冲区池等技术。项目从技术架构上 采用了分层思想,分为网络传输层,协议解析层和业务层共三层。 适用于数据推送(股票行情),游戏,聊天/im等服务器的构
国内首款基于AIO的开源WebSocket服务器 宝贝鱼 (CshBBrainAIO)正式发布。基于AIO的开源WebSocket服务器 宝贝鱼 依然采用分层的体系结构,协议层和业务层 与 基于NIO技术的 开源WebSocket服务器 宝贝鱼 (CshBBrain) 完全一样,采用基于AIO的的 宝贝鱼 进行服务器开发的方式 与 基于NIO 的宝贝鱼 开发方式完全一样。得益于彻底的分层架构,
CshBBrain V2.0.4 和 CshBBrainAIO V 4.0.3发布 http://www.oschina.net/news/39554/cssbbrain-2-0-4
开源WebSocket服务器项目宝贝鱼CshBBrain V4.0.1 和 V2.0.2发布 更新的功能列表如下: 1.解决开启广播消息开关时,不能同时接入2个客户端的重大缺陷。 2.对广播消息做了重大优化,从以前一个线程发送广播消息进化到使用工作线程池中的线程并行的发送广播消息。 3.发送给所有客户端的广播消息共享一个消息的内容,避免大量重复的消息编码缓存处理工作,有效的提升广播消息的效率。 4
如何包含Eureka服务器 要在项目中包含Eureka服务器,请使用组org.springframework.cloud和工件id spring-cloud-starter-eureka-server的启动器。有关 使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。 如何运行Eureka服务器 示例eureka服务器; @SpringBoot
hprose 为发布服务提供了多个方法,这些方法可以随意组合,通过这种组合,你所发布的服务将不会局限于某一个函数,某一个方法,某一个对象,而是可以将不同的函数和方法随意重新组合成一个服务。 AddFunction 方法 AddFunction(name string, function interface{}, option ...Options) Service 该方法的用于发布一个函数(命名函
Debug 字段 该设置默认值是 false,当发生错误时,只返回错误信息本身。 当该字段设置为 true 时,当发生 panic 时,会将整个 panic 的错误堆栈信息返回给客户端,在用户进行 hprose 服务开发时,该设置可以帮助你快速定位错误位置。 ErrorDelay 字段 该设置为整型值,默认值为 10 秒。 该字段表示在调用执行时,如果发生异常,将延时一段时间后再返回给客户端。 在
null null Tomcat服务器正在运行servlet,为mySQL数据库执行一些业务逻辑和hibernate框架。 现在我有点糊涂了。两台服务器都能接收HTTP请求吗?就像servlet从网页接收https请求和我的apache服务器一样? 并且两者都可以连接到数据库--使用php的apache服务器,正如我提到的,同时使用servlet的tomcat?
如何在生产环境中将hazelcast服务器作为linux服务运行? java-server-cp hazelcast。jar com。黑兹卡斯特。例子。StartServer StartServer运行带有输出到std终端的服务器,将其作为linux服务运行并将日志写入文件的最简单方法是什么 我必须将其设置为EC2实例中的服务并将其捆绑。当EC2自动缩放启动实例时,hazelcast服务器将启动并
创建 http 服务器 package main import ( "net/http" "github.com/hprose/hprose-golang/rpc" ) func hello(name string) string { return "Hello " + name + "!" } func main() { service := rp
我正在开发一个基于云的后端HTTP服务,该服务将公开用于与一些on-prem系统的集成。客户机系统是由外部供应商定制的,它们是带有自己数据库的后端系统。这些系统部署在我们客户的公司中,我们无法访问它们,也无法控制它们。我们向供应商提供我们的API规范,他们实现客户机代码。 我的服务与客户交换的数据格式基于XML,并遵循一定的标准。供应商用不同的编程语言实现他们的客户机系统,随着时间的推移,新的供应
问题 你想在网络上提供一个服务器。 解决方案 创建一个基本的 TCP 服务器。 在 Node.js 中 net = require 'net' domain = 'localhost' port = 9001 server = net.createServer (socket) -> console.log "Received connection from #{socket.remo