当前位置: 首页 > wzjs >正文

亦庄网站建设公司怎样申请网站注册

亦庄网站建设公司,怎样申请网站注册,市桥做网站的公司,枣庄手机网站建设电话目录 第一节:项目介绍 第二节:整体设计思路 2-1.服务器模块 2-1-1.连接管理模块 2-1-2.消费者管理模块 2-1-3.虚拟机模块 2-1-3-1.交换机管理模块 2-1-3-2.队列管理模块 2-1-3-3.绑定管理模块 2-1-3-4.队列消息管理模块 2-2.客户端模块 下期预告&…

目录

第一节:项目介绍

第二节:整体设计思路

        2-1.服务器模块

                2-1-1.连接管理模块

                2-1-2.消费者管理模块

                2-1-3.虚拟机模块

                        2-1-3-1.交换机管理模块

                        2-1-3-2.队列管理模块

                        2-1-3-3.绑定管理模块

                        2-1-3-4.队列消息管理模块

        2-2.客户端模块

下期预告:


第一节:项目介绍

        该项目是一个简化版的仿RabbitMQ消息队列,其内部实现了消息队列服务器以及客户端的搭建,并支持不同主机间消息的发布与订阅、消息推送功能。

        项目所用到的技术:

        (1)基于muduo库实现的底层网络通信服务和客户端的搭建

        (2)基于protobuf协议的应用层协议接口

        (3)基于轻量数据库sqlite的数据持久化管理功能

        (4)基于AMQP模型(高级消息队列协议)实现整个消息队列模块的整合

        (5)使用gtest框架进行模块单元测试

第二节:整体设计思路

        消息队列是一个比较复杂的项目,它涉及的模块很多,但是它的每个功能模块化程度高、解耦程度高。所以只要将每个模块完成,做好单元测试,最后再整合所有模块,实现它也不是难事。然后我就一一介绍所需模块和每个模块的功能。

        2-1.服务器模块

        服务器模块就是提供服务的模块,它的功能是对收到的请求调用不同业务函数进行处理,它的构造如下:

                                        

        服务器模块的功能主要体现在它的3个子模块上。

                2-1-1.连接管理模块

        连接管理模块的功能是管理和服务器连接成功的所有连接,对于服务器来说,一个连接就是一个客户端,但是在AMQP中又把一个连接分成了多个信道(channel)。

        对于用户来说,一个channel就是一个连接,连接实现的功能channel都能实现,这是因为channel的底层也是使用连接来实现的,多个信道可以共用一个信道,就像进程对CPU的占用一样。

        信道的使用有诸多好处:

        (1)充分利用连接资源

       使用多个信道可以提高性能,因为它们可以在同一连接上共享底层网络连接。相比于为每个操作创建新的物理连接,使用信道可以减少网络开销和连接建立的时间。这种性能优化对于需要高效处理大量消息的应用程序来说尤为重要。

        (2)资源独立

        每个信道都具有独立的状态和资源隔离。这意味着一个信道上的操作不会影响其他信道,信道之间可以相互独立工作,不会相互干扰。这种资源隔离的特性有助于增强系统的稳定性和可靠性,因为一个信道上的问题不会导致其他信道或整个连接的中断。

        (3)容错性高

        如果一个信道上的操作出现错误,它不会影响其他信道。这有助于提高系统的容错性,因为一个故障的信道不会导致整个连接或应用程序的失败。这种错误处理的机制使得应用程序能够更加稳健地运行,即使在面对错误或异常情况时也能够保持一定的可用性。

        

        所以连接管理模块又由信道管理模块组成,它提供管理信道的诸多操作(信道的增删查)。实际上服务器不会自动增加信道,只有客户端增加一个信道时,服务器也会增加一个对应的信道,服务器和客户端的通信就依靠这两个信道完成。

                2-1-2.消费者管理模块

        消息队列肯定有一个保存各种消息的结构,这种结构叫队列,每个队列会保存属于自己的各种类型的消息。

        比如"音乐新闻"队列,就保存音乐相关消息;"体育新闻"队列,就保存体育相关消息。然后才能把这些消息推送给它们的订阅者,这里面的订阅者对于服务器来说就是消费者

        所以当一个消费者订阅了一个队列之后,就需要消费者管理模块将队列--消费者的映射保存起来,当该队列的新消息到来时,服务器才能找到这个队列的消费者,并把消息推送给这些消费者。

        当消费者取消订阅时,还需要把它从消费者管理模块中删除。 

        所以消费者管理模块提供的功能就是消费者的增、删、查。

                2-1-3.虚拟机模块

        虚拟机模块是最复杂的一个模块,它由交换机管理模块、队列管理模块、绑定管理模块、消息管理模块组成。

                        2-1-3-1.交换机管理模块

        要理解该模块的作用,首先要明确消息队列中,队列获得消息的流程:

        (1)生产者客户端发布消息        

        首先要创建一个信道,这个信道调用发布消息的函数将一条消息发布到服务器的交换机,此时该信道就是一个生产者。

        (2)交换机发布消息

        这条消息到服务器后,并不是直接给队列,而是先给到交换机,然后由交换机审核消息后将消息发送给交换机绑定的队列。

        例如有一个"新闻"队列和一个"文章"队列,都绑定了同一个交换机,当消息到来时,交换机将审核消息和所有和它绑定的队列,然后选择审核通过的队列发送这条消息。

        所以该模块的作用就是提供交换机的管理操作,包括交换机的增、删、查。

                        2-1-3-2.队列管理模块

        队列是保存消息的结构,但是该模块并不保存消息只保存队列的信息,当某个队列被声明时,它就将该队列的信息保存起来;某个队列被移除时,它就把该队列的信息删除。

        它相当于一个"凭证",即使某个队列的消息是存在的,但是只要该模块没有这个队列的信息,这个队列就是无效的(正常不会出现这种情况)。

        所以它的功能是提供队列信息的增删查。

                        2-1-3-3.绑定管理模块

        绑定管理模块用来保存交换机和队列的绑定信息,这样当交换机获得消息时,就从这个模块获取它的绑定信息,给绑定的、符合条件的队列发布消息。

        所以提供绑定信息的增删查即可。

                        2-1-3-4.队列消息管理模块

        这个模块才是真正保存各种消息的模块,它将队列与队列保存的消息建立起映射,并且每个队列都有一个文件保存自己的信息。

        它提供队列的增删查,还有指定队列消息的增删查。

        2-2.客户端模块

        客户端的实现就比服务器模块简单多了,只有一个信道管理模块。

        客户端只需要向服务器发送请求,只有收到订阅的消息后调用相应的函数就行了。

下期预告:

        介绍完消息队列后,需要一些类来辅助完成各种模块,这些辅助类包括:

        (1)日志宏函数:打印信息,帮助错误定位、信息提示

        (2)文件操作类:用于文件操作

        (3)sqlite数据库操作类:用于操作sqlite数据库

        (4)随机id生成类:用于给交换机、队列、消息等生成一个唯一的标识码

        (5)字符串切割类:将字符串安装某个字符切成多段,与交换机的消息审核有关

        (6)工作线程池

        然后还要使用protobuf定义一些属性。

http://www.dtcms.com/wzjs/462300.html

相关文章:

  • 手机免费建设网站推动高质量发展
  • 在国外做购物网站seo顾问多少钱
  • 电商网站建设基础教案关键词抓取工具都有哪些
  • react做网站青岛seo计费
  • 网站报价文档如何提高自己的营销能力
  • 武汉可信网站建设公司长尾词在线挖掘
  • 成都中小企业网站建设专业网络推广软件
  • 哪里做网站排名快手seo软件下载
  • 青浦网站建设申请百度收录网址
  • 在哪里做卖车网站成人职业技能培训班
  • 微网站开发第三方平台北京seo培训
  • 京东商城网站怎么做北京百度网讯人工客服电话
  • 建设一个跟京东一样的网站郑州专业seo推荐
  • 一个公司可以备案几个网站口碑营销什么意思
  • 凡科网站怎样做网站制作的基本流程
  • 中小型教育网站的开发与建设bt磁力链好用的引擎
  • 展厅的设计风格和理念seo站内优化
  • 网站建设网站推广服务公司搜外网友情链接
  • 面包屑导航 wordpress百度seo排名优
  • 动漫美女做爰视频网站seo资讯网
  • 汕头网站网店建设青岛网站运营
  • 让别人做网站应注意什么百度关键词排名十大排名
  • 沅江网站开发获取排名
  • 网站商城怎么做百度引擎的搜索方式是什么
  • 做网站的流量怎么算钱2023免费网站推广大全
  • 做网站公司经营范围站长seo综合查询
  • 怎么做网页版调查问卷搜索引擎优化seo名词解释
  • 在ppt里面做网站链接优化营商环境条例心得体会
  • 企业crm销售管理系统搜索引擎优化seo专员
  • 想找各大新闻网站投稿怎么做域名收录查询工具