# javaMQ **Repository Path**: meich/javaMQ ## Basic Information - **Project Name**: javaMQ - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 87 - **Created**: 2019-05-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 赛题介绍 题目: <实现进程内消息队列> 开发语言:JAVA 相关知识点: JAVA编程, 多线程, IO 测评环境: 8核机器 16G内存 以正确性, 运行效率为排名标准 # 评测网站: 网址 http://39.96.10.88/lanmao/index 比赛题目:10 Java消息中间件大项目比赛 # 代码提交方式 通过git提交, 我们在https://gitee.com 托管代码 代码框架: 你需要: 1 注册一个账号, fork这个项目, 作为你的git地址 2 在管理界面-项目成员管理-开发者-添加项目成员-邀请用户-直接添加, 添加一个开发者:meichuhe,个性域名为meich那个 3 在管理-项目设置-基本设置, 是否开源设置为私有的 4 然后在评测网站上设置git地址,然后点"提交评测"来提交 # 时间安排 5.9-5.29(12周周四-15周周三) 比赛阶段 14、15周答辩汇报,16周期末复习 14周 5月22日周三晚上18:00,第一阶段截止排名,排名后50%的组在23号周四的汇报 15周 5月29日周三晚上18:00,第二阶段截止排名,前50%在30号周四进行汇报 # 汇报内容 每组10分钟左右,不用介绍赛题背景,以碰到的问题,解决的思路等为主,尽可能详细,可以讨论商量,杜绝抄袭。 # 阶段任务 13周 5月16日22:00前,熟悉git和码云网站,阅读demo代码,个人至少有一次提交记录(成功失败都算),否则会被扣分。 14周 5月23日22:00前,个人至少有一次成功提交的记录,否则会被扣分。(当天已有一半同学结束汇报) # 评分标准: 个人成绩按最终排名成绩计算(基准) 每个阶段必须执行完对应任务,否则会有相应扣分 成绩都会较高,即使排名靠后的,在汇报展示出工作量和收获,会比发现抄袭的好很多 最终得分标准=小组最好成绩+PPT汇报+答辩问答情况+阶段任务完成情况 # 编程目标 你的coding目标是实现以下接口: Producer的createBytesMessageToTopic(topic, body) 创建一个消息, 指定Topic Producer的send(message) 发送消息 Producer的flush(), 发送结束时会调用一次 Consumer的attachQueue(queue, topics) 为Queue绑定Topics Consumer的poll() 拉消息 # 评测逻辑: 1 git clone下载代码 2 push阶段: 四个线程同时push消息 3 kill程序,清理页面缓存 4 pull阶段: 四个线程同时pull消息 5 以push和pull的总时间作为排名依据 push和pull都有10分钟时间限制 # 代码结构 ## pku包下面是你要用到的的类: 核心包括: Producer Consumer ByteMessage 我们的评测程序只需要这3个类就能工作 DefaultMessage是默认的message实现, 你完全可以自己自己的版本 ## 此版本是一个内存实现的消息队列 为了方便大家理解题目, 为大家实现了一个内存存储的消息队列 DemoMessageStore: 消息队列的内存存储实现 DemoTester: 一个测评程序, 里面会开启多个线程进行push与pull, 通过这个类你可以了解到测评程序的运行逻辑