基于MQ的微信问答程序.doc
《基于MQ的微信问答程序.doc》由会员分享,可在线阅读,更多相关《基于MQ的微信问答程序.doc(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、摘 要随着社会的发展,科技不断的进步,计算机、互联网等技术深入民心,无处不在。小程序无疑成为了一个新的科技方向。由于小程序的广泛应用,免于下载就能在微信上呈现出且具备更多的功能,能够形成线上线下的联系。本项目是以基于RabbitMQ算法来进行微信问答程序。RabbitMQ算法提供一个具有工业标准、安全、可靠的消息传输系统,它是控制和管理一个集成由多个分支模块之间通过传递消息完成的工作流程,其资源是消息与队列。在本项目中能够在不使用数据库的情况下传送消息。当前科技发展迅速,随着人与人之间的交流逐渐减少,而人自身遇到的困难以无从得到释放与解决。本项目能提供一个人与人之间通过问题交流从而在本质上解决
2、的平台。第一章首先介绍关于本项目的背景与目的,紧接着介绍研究现状,最后介绍要去实现的具体内容;第二章主要介绍本项目用到前端以及后端的相关技术;第三章是本项目设计与分析,具有功能化的细节呈现以及详细的图。第四章主要介绍本项目的系统测试情况;第五章介绍对本项目的总结以及与展望。 关键词:小程序;问答平台;MySQL;RabbitMQAbstractWith the development of society and the continuous advancement of science and technology, computers, the Internet and other tec
3、hnologies have become popular and are everywhere. Applets have undoubtedly become a new technological direction. Due to the wide application of mini programs, they can be displayed on WeChat without downloading and have more functions, which can form online and offline connections.This project is a
4、WeChat Q & A program based on RabbitMQ algorithm. The RabbitMQ algorithm provides an industry standard, secure, and reliable message transmission system. It controls and manages an integrated workflow that is completed by passing messages between multiple branch modules. Its resources are messages a
5、nd queues. In this project, messages can be transferred without using a database.The current rapid development of science and technology, with the gradual decrease of communication between people, the difficulties encountered by people themselves cannot be released and resolved. This project can pro
6、vide a platform for people to solve in essence through problem communication.The first chapter first introduces the background and purpose of the project, followed by the current research status, and finally introduces the specific content to be achieved; the second chapter mainly introduces the fro
7、nt-end and back-end related technologies used in the project; the third chapter is the project Design and analysis, with functionalized details and detailed drawings. The fourth chapter mainly introduces the system test situation of this project; the fifth chapter introduces the summary and prospect
8、 of this project.Keywords: applet; Q & A platform; MySQL; RabbitMQ目 录第一章 绪论11.1 课题背景和意义11.2 研究现状11.3 研究内容2第二章 系统开发技术32.1 MQ算法32.1.1 RabbitMQ算法介绍32.1.2 RabbitMQ算法应用32.2 开发工具IDEA42.2.1 IEDA的介绍42.2.1 框架SSM42.3 MySQL数据库52.4 微信小程序5第三章 系统分析与设计63.1 系统分析63.1.1 可行性63.1.2 功能需求分析63.1.3 性能需求分析73.2 系统设计73.2.1 系统
9、概述73.2.2 用户登录注册83.2.3 发表问题103.2.4 RabbitMQ流程123.2.5 首页与MQ圈页133.2.6 消息页面163.2.7 数据库设计17第四章 系统测试204.1 系统测试目的204.2 系统测试204.3 测试总结21第五章 总结与展望215.1 项目总结215.2 展望22参 考 文 献23致 谢2424第一章 绪论1.1 课题背景和意义每一天时代都在不断地进步,随着我们的蒸蒸日上的处理技术和信息技术逐渐成熟,身边的每一个细节都与科技有着密切的联系。小程序也无时无刻的伴随在我们周围。首先小程序是由微信呈现出来,紧接着到了支付宝、百度网盘等等的软件都能看见
10、它的身影。小程序无疑是一个新的科技方向,由于小程序的广泛应用,免于下载就能在其他软件上呈现出并具备更多的功能,能够形成线上线下联系。小程序对于用户来说,能够程序简化,优化用户体验;对于程序员来说,容易创新容易操控。此时此刻如果你有疑问,打开小程序进行在线提问,可以说方便至极。它的价值在于,减少下载软件的麻烦,能在第三方软件里不占储存空间的存在,能发表随心所欲的问题,能与别人产生交流互动。最终在线提问与在线回答的小程序的想法顺利诞生了。这个小程序不仅搭建了互联网的用户与用户直接交流的桥梁,而且成为了用户解决知识难题的重要途径之一。近年来,这种互动问答型的平台在软件里的始终保持着高速发展。显然,中
11、国具有上下五千年的历史,具备着蕴含博大精深的文化,如果我们把所有经历过的事情、发现的问题、吐槽大大小小类型的事都呈现在一个平台上出来,与此同时,能在其他用户感同身受的经验下解决你所困惑的问题,显然你所经历的困惑的一切逐渐轻松起,同时能让自己的情感逐渐释放。1.2 研究现状近年来,由于百度知道、微博、论坛等传统的在线问答网站的各式各样,因此得到的是,社会化问答平台显然具备谨慎、专业、理性的文化氛围。以国外来举例,国外较为成熟的社会化问答平台有美国的QUORA、AardVark、Google,我国代表有知乎网、百度知道等等。这些平台不仅各有特色,而且在不同程度上均体现出模式社会化、话题专业化、答案
12、原创化等等的特征。社会网络和意见领袖在用户间具备的特征有一定的相似性。相反,不太好的情况好比如,国外大量研究只关注于交互问答服务的产生,反之缺乏研究有关用户使用平台的态度和想法。像国外来说,类似于Google问答平台有很多。例如GoogleAnswer,它不单单是一个服务系统,还是一个专门为群众进行解答的专家。虽然在过往的四年里,GoogleAnswer几乎为用户提供了所有问题的答案,并指出相对于其他服务问答给予的答案更加准确。但结果往往出乎意料,雅虎问答服务相对于谷歌的问答服务,获得了更多用户的欢迎。问题来了,为什么答案正确但受欢迎程度远远不及其他?是因为用户比较喜欢雅虎提供的问答服务环境吗
13、?有国外学者研究了对各类型问答服务的出现以及对网络用户的影响。研究结果表明,用户想通过搜索得到知识,如果返回的只是列表结果,用户对此并不满意。我们国内具有代表性有知乎,知乎是网络问答社区,而且成为连接不同用户群体的桥梁。换言之,用户间分享着知识与经验,不断地提供多样化信息。同时用户还能对感兴趣话题、用户以及问题进行关注,另外有趣的地方在于发表提问的同时,能够选择指定的用户浏览,给予了一个隐私空间。知乎,对于一个小城市的老百姓来说,有了它的存在才能见识到智慧的光芒与世界的浩大。1.3 研究内容本项目专门为有困惑以及有不好的经历但难以说出,同时能有传播正确知识的人群开设的一个舒适的平台。显然,目的
14、很简单,拉近人与人之间的距离,过程中从中不断的释放出自己的烦恼,也可以得到更加准确的知识、甚至交到不同的朋友。本项目采用RabbitMQ算法作为后台的高级消息队列,提供一个具有安全且可靠的消息传输系统后台。本项目采用小程序作为平台,IDEA以SSM为框架,以MySQL作为数据库,结合多种技术开发问答小程序。通过RabbitMQ算法,把用户的指定内容传输给指定用户,成为一个消息传输系统。设计上,会在发表问题页面下方具备一个功能,可选择指定用户浏览问题,换言之只有指定的用户能看到,达到一个隐私的效果。运用IDEA与MySQL的技术,实现用户注册登录,简单浏览,对问题文章进行评论、收藏、私聊、点赞,
15、等等功能。在RabbitMQ算法的支持下发布问题可限制用户观看。第二章 系统开发技术2.1 MQ算法2.1.1 RabbitMQ算法介绍MQ算法其实是由一个消息传输系统和一个应用程序接口组成,换而言之就是消息与队列。消息就是一个信息单元,这个信息单元可以是报文、请求,而程序之间的通信是通过传递消息而不是直接调用程序;队列具备安全性,且能按顺序存储消息。但是本项目用的是RabbitMQ算法,其实本质上与MQ算法大致相同,但比MQ算法高级。RabbitMQ在原有高级消息队列协议的基础下,另外具备有异步确认消息接收的方法。RabbitMQ主要分为消费者与生产者。消费者负责订阅生产者的消息,生产者负责
16、生产消息,两者中间具备着一个消息代理,相当于经纪人,充当我们要集成的应用程序的消息协调器,能提供一个发送与接收消息的平台。当消费者收到消息后,会对消息进行确认发送确认消息,代理在接收确认消息之后,才会从队列中完全删除该消息。在特殊情况下,无法识别消息时,消息会返回给生产者,甚至消息被丢弃,或者将消息放入无用的队列中。使用RabbitMQ的主要好处是它是一个跨平台系统。它可以在包括Windows,Linux和Unix系统上运行Rabbit服务器。而且还具有支持许多不同编程环境的客户端库,例如Java,Python,C+等。RabbitMQ的这种跨平台性质意味着我们可以让不同编程语言编写的客户端轻
17、松地从受任何支持的环境中托管的RabbitMQ服务器发送和接收消息。2.1.2 RabbitMQ算法应用RabbitMQ算法的应用也相当于后台,通俗的比如:我发布一条提问之后,时间、问题以及问题的描述都是要写入数据库的,但是用户想提醒谁看,想要谁回答,是不需要写进数据库的,问题是该怎么去通知他们呢,这个时候就会用到RabbitMQ算法。首先安装Rabbit MQ服务器,紧接着登录RabbitMQ服务页面,最后直接使用。另外,RabbitMQ还能用于管理和监视用户WebUIRabbitMQ的。为了与RabbitMQ通信,需要去下载所需的编程语言的客户端库应用程序。RabbitMQ其中的好处与具体
18、的应用有以下几点。可靠性:因为消息代理已经建立在坚固、高性能、可靠的基础之上。不仅可以在重新启动服务器的情况下将消息保留在磁盘上,防止丢失消息,而且可以将消息传递确认发送给发件人,以便他们可以确保已接收并存储消息。路由方案:生产者发送消息给消费者时,传输途中将消息存储在队列中,具备多种交换类型可以执行路由,但也可以通过将交换绑定在一起来处理更复杂的路由方案。集群性:为了提高RabbitMQ的可靠性和可用性,它可以在本地网络上将多个服务器集群在一起,从而形成一个逻辑消息代理。如果服务器出现故障时,不会出现丢失任何消息的情况。2.2 开发工具IDEA2.2.1 IEDA的介绍IntelliJ ID
19、EA简称IDEA,是java编程语言开发的开发工具。本项目用到IEDA作为开发及后台是因为它能提供一个比较的智能且快速的好处。一般编辑器都有提示代码但由于速度过于怠慢,导致编写者等待时间较长。但IDEA不仅能提供快速可用的提示给编写者,且在编写中参数甚多,易混淆的过程中,IDEA能提醒你哪一个部分使用怎么样的参数。IEDA还有很多没发掘出来的优点,例如快速生成方法,写代码过程时会自动补充方法或类,会自动检查代码,强大的搜索功能等等。事实证明IDEA是一个方便的开发工具。没有什么是完美的,IEDA也不例外。开始写的时候会遇到一个问题,当打开一个新项目的时候,IDEA会自动建立索引。这时候,对大型
20、项目特别不友好,很大可能会出现卡顿现象。本项目出现过有点卡的情况并没有卡顿过于厉害。因优点甚多,依旧选择作为本项目的强大后台。2.2.1 框架SSM本项目使用IDEA中的SSM框架,Spring+SpringMVC+mybatis。大多数开发都使用SSM的框架,简化平时的编写对于创新的项目来说这个框架无疑是最保守也是最方便的。Spring能从配置文件中,指定特定的参数去调用实体类的构造方法来实例化对象,使用类时不用初始化,简化了很多步骤。另外,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。SpringMVC在项目中拦截用户请求并返回结果,相当于SSH框架中支柱。S
21、pring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。Mybatis相当于对jdbc的封装,具有数据库底层操作变透明的特点,是一个基于Java的持久层框架,并且能够自由控制以及管理sql。换言之,MyBatis是帮你管理数据且增删改查。2.3 MySQL数据库本项目用到的是MySQL数据库,它是一种关系型数据库管理系统并且能够增加数据的安全,以及能快速存储,灵活的查询。MySQL数据库还具备多线程、多用户的关系型数据库的优点。能够在表里处理多项增删改查,在数据库中不仅能优化查询算法,而且提高查询速度。在这基础上其他方面,例如安全也是比较完美的,
22、在权限上设置机制;在连接方面能够与TCP/IP、JDBC等多种途径进行数据库连接;在管理方面,MySQL提供多种工具可进行管理;占存方面当然也是极其小,能够不占用更多的资源。许多中小型网站为了节省成本,选择MySQL作为网站数据库。本项目也是看重MySQL的众多优点特意选取作为数据库。2.4 微信小程序微信小程序相当于一个Ajax响应式Web。在小程序中会使用WXML标签与WXSS样式,形成效果图;再利用一门语言,例如C#、PHP、Java等去开发后端接口。接着去使用JS,对语言开发的接口进行调用。最后调试与测试。在语言上,最主要用到的是WXML,微信标记语言最大的特点是以视图的方式串联界面元
23、素,并通过程序逻辑,将信息更新实时传递至视图层。而模板与引用方面用到WXSS微信样式表,支持使用模板与引用减少代码体积,可将多个模板写入至同一文件,还能在其他文件中进行引用。小程序中的JS是主体,它与前端开发使用的JS几乎没区别。区别在于小程序的JS新增了微信的API接口,并去除了不必要的功能。功能上除了点击,还有按住、开始触摸、松手等。当WXML中绑定一个事件后,在主体JS中能使用。微信小程序在开发过程中微信小程序仍需要HTML5大量的技术来辅助开发。同时在运行方面,微信小程序也需要在原有HYML5标准浏览器的基础上通过相关辅助设施的添加,来实现其运行。第三章 系统分析与设计3.1 系统分析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MQ 问答 程序
限制150内