1.ä»ä¹å«EMQ
2.用Java实现Actor模型(模仿Skynet)
ä»ä¹å«EMQ
EMQæ¯åºäºé«å¹¶åçErlang/OTPè¯è¨å¹³å°è®¾è®¡ï¼æ¯æç¾ä¸çº§è¿æ¥ååå¸å¼é群ï¼åå¸è®¢é 模å¼çå¼æºMQTTæ¶æ¯æå¡å¨å®æ´æ¯æMQTT V3.1/V3.1.1åè®®è§èï¼æ©å±æ¯æWebSocketãStompãCoAPãMQTT-SNæç§æTCPåè®®
å®å ¨å¼æ¾æºç
åºäºApache Version 2.0å¼æºåè®®
ç¾ä¸çº§å¹¶åè¿æ¥
åèç¹ä¸å¹¶åMQTTè¿æ¥å³°å¼è´è½½
å®æ´MQTTåè®®æ¯æ
MQTT V3.1.1åè®®è§èQoS0/1/2æ¶æ¯æ¯æ
ç®ä¾¿å®è£ é¨ç½²
跨平å°é¨ç½²å¨LinuxãFreeBSDãMac OS XæWindowsæå¡å¨
åå¸å¼é群ææ¡¥æ¥
åèç¹è´è½½åè¡¡æå¤èç¹åå¸å¼é群
æ©å±æ¨¡åä¸æ件
LDAP,源码 MySQL, PostgreSQL, Redis, MongoDBæ©å±æ件éæ
EMQ! ç»åç»åç»åï¼
用Java实现Actor模型(模仿Skynet)
Actor模型是种常见的并发模型,与共享内存(同步锁)不同,源码它将程序划分为多个独立计算单元——Actor,源码每个Actor独立管理资源,源码不同Actor间通过消息传递交互。源码优势在于全异步执行,源码直销平台源码避免线程阻塞,源码提高CPU使用率,源码且无需考虑加锁和线程同步问题。源码
Actor模型在业界应用广泛,源码如游戏服务器框架Skynet、源码编程语言Erlang。源码Java下应用较少,源码知名的源码是基于Scala的Akka。但Actor模型并非万能,源码异步编程需编写更多回调代码,原本一步拆成多步,电子目录系统源码增加代码复杂度。
本文以学习研究目的,使用Java实现简化Actor模型,功能模仿Skynet,包括:
完整源代码在GitHub可获取。关键代码与设计思路如下。
Actor是Actor模型核心概念,每个Actor管理资源,pb商业之星管理系统源码与其它Actor通过Message通信。
Actor由单线程驱动,类为抽象,处理消息的`handleMessage`方法需具体类重载实现。
Node代表独立Java进程,有自己的IP和端口,内部可运行多个Actor。Node间通过异步网络通信发送消息,青岛孕妇即食燕窝溯源码Actor仅绑定一个Node。
ActorSystem是Actor管理系统,外部调用API入口,提供创建Actor、发送消息、休眠等功能。
ActorSystem初始化分为三步:读取集群配置、绑定Node、每天秒领绿钻源码初始化自身,包括定时器和Netty服务端初始化。Node间通信异步,客户端和服务端使用Netty做。
创建Actor调用`newActor`方法,指定具体类和Actor名,确保Node内唯一。创建时绑定Node,调用`start`方法初始化,将名与Actor映射。
发送消息核心是`send`方法,指定目标Node、Actor名、命令名和参数,可封装为Message。
`currThreadActor`变量记录当前线程的Actor,简化消息发送时指定来源信息。若目标与来源相同,直接添加消息;否则,通过网络通信实现,使用Netty做序列化和反序列化。
休眠Actor通过`sleep`方法实现,指定毫秒数、回调命令及参数。底层通过定时任务实现阻塞。
ActorSystem使用定时器管理定时任务,添加新任务后轮询处理。考虑优化避免多线程同时创建Channel。
程序示例在test包内,启动Node后打印日志,验证Actor模型工作方式。
总结,本文展示了使用Java实现简化Actor模型的完整流程,实现基础功能。造轮子旨在深入理解Actor模型,语言只是实现工具。相信本文有助于读者深入理解Actor模型。
2025-01-19 23:411730人浏览
2025-01-19 22:591793人浏览
2025-01-19 22:561832人浏览
2025-01-19 22:312313人浏览
2025-01-19 22:302417人浏览
2025-01-19 21:492378人浏览
今天4月16日),据最高人民法院消息,近期,已满12不满14周岁未成年人杀人、重伤害犯罪追究刑事责任的讨论引发广泛关注。截至目前,人民法院共审结此类案件4件4人,犯罪人年龄在12至13岁之间,被依法判
放高利贷月利息高达60%、放鳄鱼绑“炸弹”暴力催款——一涉黑团伙被捣毁 14名成员获刑用来威胁借钱人的假炸弹放款1万元,受害人拿到手的仅有8000多元,
據央視新聞報道,當地時間9日下午,據韓國統營海警通報,在當天早上統營市欲知島南部海域發生的漁船傾覆事故中已有4名船員被救起,其中3人經救治後確認死亡、1人失去意識,另外5名船員依舊處於失蹤狀態。據統營