2019独角兽企业重金招聘Python工程师标准>>>

FourInOne也可以当成简单的mq来使用,该demo演示了队列和主题订阅两种模式的实现

一、队列
将domain视为mq队列,每个node为一个队列消息,检查domain的变化来获取队列消息。
Sender:是一个队列发送者,他发送消息的实现是在queue上创建一个匿名节点来存放消息
pl.create(queue, (Serializable)obj);

Receiver:是一个队列接收者,他轮循queue上有没有最新消息,有就取出,并删除该节点,注意他是每次获取第一个消息,这样保证消息读取的顺序。

运行步骤:
1、启动ParkServerDemo(它的IP端口已经在配置文件指定)
2、运行Sender
3、运行Receiver

二、主题订阅
可以将domain视为订阅主题,将每个订阅者注册到domain的node上,发布者将消息逐一更新每个node,订阅者监控每个属于自己的node的变化事件获取订阅消息,收到后清空内容等待下一个消息,多个消息用一个arraylist存放

Publisher:是一个主题发布者,他通过pl.get(topic)获取topic主题的所有订阅者节点,并将消息更新到每个节点上,如果有多个追加到arraylist存放

Subscriber:是一个消息订阅者,他通过subscrib(String topic, String subscribeName, LastestListener lister)实现消息订阅,其中3个参数分别是主题名、订阅者名称、事件处理实现。Subscriber实现了LastestListener事件处理接口happenLastest(LastestEvent le),这个接口会传入更新的节点内容对象,然后Subscriber用一个空的arraylist清空内容,等待下一次接收消息。happenLastest有个boolean返回值,如果返回false,它会一直监控变化,继续有新的变化时还会进行事件调用;如果返回true,它完成本次事件调用后就终止。

运行步骤:
1、启动ParkServerDemo(它的IP端口已经在配置文件指定)
2、运行Subscriber,因为Subscriber可以有多个,传入不同的subscribeName参数代表不同的Subscriber
3、运行Publisher

FourInOne不实现JMS的规范,不提供JMS的消息确认和消息过滤等特殊功能,不过开发者可以基于FourInOne自己去扩充这些功能,包括mq集群。如果需要事务处理可以将多个消息封装在一个集合内进行发送,上面的队列接收者收到消息后删除实际上是一种消息确认方式,也可以将业务逻辑处理完后再进行删除。如果需要持久保存消息可以在封装一层消息发送者,发送前后根据需要进行数据库或者文件持久保存。利用一个独立的domain/node建立队列或者主题的key隐射,再仿照上面分布式缓存的智能根据key定位服务器的做法实现集群管理。

邮箱:fourinone@yeah.net
qq群:1313859

本demo源码可以在开发包中下载

下载地址:
http://www.skycn.com/soft/68321.html

转载于:https://my.oschina.net/fourinone/blog/30509

七基于Fourinone实现MQ demo相关推荐

  1. 基于golang的爬虫demo,爬取微博用户的粉丝和关注者信息

    基于golang的爬虫demo,爬取微博用户的粉丝和关注者信息 注意:仅供学习交流,任何非法使用与作者无关! 目录 基于golang的爬虫demo,爬取微博用户的粉丝和关注者信息 一.背景与取材 二. ...

  2. java爬虫之基于httpclient的简单Demo(二)

    转载自 java爬虫之基于httpclient的简单Demo(二) 延续demo1的 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一),demo2出炉啦,大家想学爬虫都可以从这 ...

  3. 频域串联滞后校正matlab,自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc...

    自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc 实验七 基于MATLAB控制系统频域法串联校正设计 一.实验目的 (1)对给定系统设计满足频域或时域指标的串联校正装置: (2)掌 ...

  4. 双鱼林php学生信息管理系统,双鱼林基于ThinkPHP5图书管理系统demo v1.0

    别看双鱼林基于ThinkPHP5只是一个简单的图书管理系统,麻雀虽小,五张俱全,实现了常见字段比如字符串,整型,浮点型,日期型,图片型和文件型的添删改查,查询条件采用多条件组合模糊查询,查询结果都采用 ...

  5. 基于Tomcat的MQ学习月记

    基于Tomcat的MQ学习月记 JAVA实现简单MQ队列服务 主要角色 流程顺序 项目构建流程 具体使用流程 代码演示 客户端执行生产消费信息包(AppClient) 消息中心服务(CenterSer ...

  6. 【javaCV基于虹软人脸识别demo添加电脑摄像头人脸识别(图片保存,视频保存,摄像头显示等 )(附源码)】

    javaCV基于虹软人脸识别demo添加电脑摄像头人脸识别(图片保存,视频保存,摄像头显示等 )(附源码) 文章目录 javaCV基于虹软人脸识别demo添加电脑摄像头人脸识别(图片保存,视频保存,摄 ...

  7. 一基于Fourinone实现分布式计算上手demo

    2019独角兽企业重金招聘Python工程师标准>>> 本demo用最简洁的代码示范fourinone如何进行分布式计算,fourinone采用一种工头链式结合工人并行的计算结构简化 ...

  8. 基于Redis的MQ中间件实现-目录

    众所周知,Redis提供了发布订阅功能以及利用List数据结构可以实现消息队列的功能,本来这些也没什么技术难度,但是每次写这些程序时候,生产者和消费者都要写一些重复代码(管理Redis)和一些容易混乱 ...

  9. webRTC服务器搭建(基于Janus)与Demo运行

    原文网址:https://blog.csdn.net/newchenxf/article/details/110451532 转载请注明出处^^ 前言 2020年,直播带货不要太火,直播的方案基于啥? ...

最新文章

  1. Dockerfile的ONBUILD指令
  2. go thrift demo
  3. 22. Kotlin学习笔记 (一) 约定
  4. Java 9中的无限集
  5. (49)VHDL实现8位奇偶校验电路(while loop语句)
  6. Java 中的接口有什么作用?为什么不直接用类?
  7. java系列7:构造方法
  8. Spring Boot 第一个程序
  9. usb打印机命令_自己动手不求人 日常打印机故障全知晓
  10. php制作judge评测机,HelloJudge2-Judger
  11. 《软件设计师》复习总结
  12. 菜鸟+Sa+注入工具组合=肉鸡成群
  13. Automatic Metallic Surface Defect Detection and Recognition with Convolutional NeuralNetworks-论文阅读笔记
  14. wamp下localhost目录Your Projects下项目无法打开解决方案
  15. 芯驰任命程泰毅为CEO:张强和仇雨菁分别担任CMO和COO
  16. 软件工程之需求分析②(软件需求规则说明书、数据要求说明书、初步用户手册、软件开发实施计划)
  17. 网络七层协议具体是什么?
  18. Android8.1 开关VOLTE流程分析
  19. UnityShader---SurfaceShader(模板和各种效果实现:边缘自发光、火焰流动、燃烧、法线扭曲、简单模糊、消融、区域过度、雪效果等)---17
  20. Chrome 的哪些功能改变了我们浏览网页的方式?

热门文章

  1. java nextline_Java编程语言基础的9根支柱
  2. java jdbc 表存在_使用JDBC查询是否存在某表或视图,按月动态生成表
  3. Java项目:干活管理系统(java+SSM+Jsp+Mysql)
  4. 【matlab】第三章数组和数组的运算
  5. Vue API(directives) 自定义指令
  6. Elasticsearch的前后台运行与停止(rpm包方式)
  7. MacBook如何用Parallels Desktop安装windows7/8
  8. Redis主从复制配置
  9. 基于MMSeg算法的中文分词类库
  10. Node.js v0.10版本发布