`
zuroc
  • 浏览: 1309958 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

自己实现 message queue 的思路

阅读更多
先写一个思路 有空来写着玩

基于ICE和Mysql的message queue

基本流程:

== 服务器端 ==
class Task:
    table_id
    id
----------------------
1.写数据到数据库
2.Mq.add(task)
    写入任务表
    检查是否有idle client
        有
            开一个线程
                try:
                    update 任务表的任务 为对应的client
                    try:
                        idle_client.process(task)
                    except:
                        取消任务表的任务认领状态
                    else:
                        任务表.delete(i)
                        if not buffer:
                            从数据库中取没有人认领数据填入
                        if buffer:
                            idle_client.process(task)
                        else:
                            idle_client_list.add(idle_client)
                            结束线程
        无  加入buffer

   

== 客户端 ==

接受到服务器端发来的任务:
    do(i)

== 表结构 ==

任务表结构 id table_id id client

以下3个表需要做进程内缓存:

task类别的表 id table_name
client表结构 id client地址
表 <-> 处理函数的表 id 函数名

1
0
分享到:
评论
2 楼 zuroc 2008-10-17  
可惜不能持久化
1 楼 heipn 2008-10-17  
ICE有自己的消息队列机制

相关推荐

    PHP中利用redis实现消息队列处理高并发请求思路详解.rar

    Redis作为一款高性能的键值数据库,常被用于构建消息队列,因为它提供了丰富的数据结构(如列表、集合、通道等)和原子操作,非常适合于实现消息的发布与订阅、入队与出队等操作。 在PHP中,我们可以使用Predis或...

    rocketmq4.9.4源码包文件

    - **顺序消息**:RocketMQ支持顺序消息,通过分配特定的Message Queue来实现。 - **定时与延时消息**:消息可以设置延迟时间,到达指定时间后才会被消费。 - **分布式事务消息**:RocketMQ提供了分布式事务消息的...

    深入理解Android II样章

    - **MessageQueue**:MessageQueue是Android消息传递机制的核心组成部分之一,负责存储和管理消息队列。本章将详细讨论MessageQueue的数据结构、消息的插入与获取算法、Looper循环机制等关键内容。 2. **...

    Go-用500行Golang代码实现高性能的消息回调中间件

    在本文中,我们将深入探讨...当然,实际的代码实现会更复杂,需要考虑到更多的边界条件和优化点,但上述内容为初学者提供了一个大致的实现思路。通过学习和实践,你可以进一步完善这个中间件,满足更复杂的业务需求。

    rocketMQ-master.zip

    5. Message Queue:消息队列是RocketMQ中的基本概念,每个Topic可以包含多个Message Queue,消息会被均匀分配到不同的Message Queue中。 6. Topic:主题是消息的分类,Producer发送的消息需要指定一个Topic,...

    java jms 源码都在其中

    - **Message Queue(队列)**:FIFO(先进先出)结构,保证消息顺序,每个消息仅被一个消费者接收。 - **Topic(主题)**:发布/订阅模式,多个消费者可以订阅同一主题,发布的消息会被所有订阅者接收。 - **...

    PETSHOP架构分析

    【PETSHOP架构分析】 ...它的设计思路和实现方法对于.NET开发者来说具有很高的参考价值,有助于提升开发效率和软件质量。无论是对于新手还是经验丰富的开发者,PETSHOP都是一个极好的学习和研究案例。

    基于java的聊天系统的设计于实现软件源码+论文文档说明资料.zip

    6. **消息队列**:为了处理并发请求和异步通信,系统可能采用了消息队列(Message Queue)机制,如ActiveMQ或RabbitMQ,这有助于提高系统的可扩展性和可靠性。 7. **数据库存储**:聊天记录可能需要持久化存储,...

    从现实生活中理解android_线程消息机制

    ##### 3.1 实现思路 - **线程分离**:使用一个独立的线程来处理歌词的同步,避免阻塞UI线程。 - **消息传递**:通过Handler将歌词的更新消息从歌词处理线程发送到UI线程,由UI线程负责更新界面。 - **时间同步**:...

    Labview win8界面设计 面向对象

    3. **消息队列(Message Queue)**:每个演员都有自己的消息队列,用于接收和处理消息。 4. **并发(Concurrency)**:演员可以并发运行,提高了系统的并行处理能力。 通过使用Actor Framework,开发者可以更好地...

    用VC实现特定编辑框上对回车键响应

    每个应用程序都有一个消息队列(message queue),用于存放各种消息。消息队列中消息的结构包含了窗口句柄、消息标识号、消息参数等信息。应用程序通过消息循环(message loop)从消息队列中取出消息并传递给相应的窗口...

    15-消息中间件MQ面试题.docx

    消息中间件(Message Queue,简称MQ)是一种消息传递机制,允许不同的应用程序或系统之间进行数据交换。MQ具有解耦、异步、削峰等优点,可以减少系统耦合度,提高系统的可扩展性和可靠性。 为什么使用MQ? MQ的优点...

    聊天小程序

    【聊天小程序】是一款基于MQ(Message Queue,消息队列)技术构建的轻量级聊天应用程序,主要用于在Linux操作系统环境下提供通信功能。这个程序的设计理念是为了让开发者能够学习和借鉴其核心技术,以便在自己的项目...

    基于Java的Porter数据同步中间件设计源码

    中间件的设计原理主要基于消息队列(Message Queue)模式,这种设计允许Porter接收来自不同数据源的请求,然后将任务分发到后台处理,避免了前端的阻塞。这一机制在处理大规模并发请求时尤为有效,保证了系统的响应...

    操作系统(OS)进程通信相关文献

    在操作系统设计中,进程通信机制有多种类型,包括管道(Pipe)、消息队列(Message Queue)、信号量(Semaphore)、共享内存(Shared Memory)、套接字(Socket)以及信号(Signal)等。 1. **管道**:管道是一种...

    毕业设计java一个简单的即时通讯工具的设计与开发(源代码+论文).zip

    5. **消息队列**:在高并发场景下,消息队列(Message Queue, MQ)可以缓解服务器压力,保证消息的有序性,如RabbitMQ或Kafka。 6. **UI设计**:用户界面(UI)的构建,通常使用JavaFX或Swing库,需考虑用户体验和...

    java一个简单的即时通讯工具的设计与开发(源代码+论文).zip

    7. **消息队列**:对于大规模并发,可以采用消息队列(Message Queue)如RabbitMQ或ActiveMQ,来缓存和分发消息,提高系统的可扩展性和稳定性。 8. **GUI设计**:如果即时通讯工具包含图形用户界面,那么就需要使用...

    提供http接口的消息队列

    在当今的分布式系统中,消息队列(Message Queue,MQ)作为一种重要的中间件,被广泛应用于解耦系统组件、处理异步任务以及平滑系统负载等方面。本文将探讨如何利用libevent库创建一个基于HTTP接口的消息队列,同时...

Global site tag (gtag.js) - Google Analytics