当前位置: 首页 > news >正文 新手怎样做网站wordpress免费企业主题 news 2025/10/30 1:54:49 新手怎样做网站,wordpress免费企业主题,发表文章的平台有哪些,如何创建一个官网顾得泉#xff1a;个人主页 个人专栏#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂#xff0c;年薪百万#xff01; 一、概念性框架理解 我们主要实现的内容#xff1a; 1.Broker服务器#xff1a;消息队列服务器#xff08;服务端个人主页 个人专栏《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂年薪百万 一、概念性框架理解 我们主要实现的内容 1.Broker服务器消息队列服务器服务端 2.消息发布客户端向服务器发布消息 3.消息订阅客户端从服务器订阅消息 broker服务器是我们最核心的部分负责消息的存储和转发。 而我们使用的AMQP(Advanced Message Queuing Protocol-高级消息队列协议其中一个提供统一消息服务的应用层标准高级消息队列协议为面向消息的中间件设计使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能)模型中也就是消息中间件服务器Broker中又存在以下概念: 虚拟机(VirtualHost):类似于MySQL的database,是一个逻辑上的集合。一个BrokerServer上可以存在多个VirtualHost 交换机(Exchange):生产者把消息先发送到Broker的Exchange 上再根据不同的规则,把消息转发给不同的 Queue 队列(Queue):真正用来存储消息的部分每个消费者决定自己从哪个Queue上读取消息 绑定(Binding):Exchange和Queue之间的关联关系Exchange和Queue可以理解成多对多关系使用一个关联表就可以把这两个概念联系起来 消息(Message):传递的内容 二、服务端模块概要设计 一、交换机数据管理模块 1.要管理的数据:描述了一个交换机应该有什么数据 1.交换机名称:唯一标识 2.交换机类型:决定了消息的转发方式 每个队列绑定中有个binding_key每条消息中有个routing_key 1.直接交换: binding_key与routing_key相同则将消息放入队列 2.广播交换:将消息放入交换机绑定的所有队列中 3.主题交换: routing_key与多个绑定队列的binding_key有匹配规则匹配成功了则放入 3.持久化标志:决定了当前交换机信息是否需要持久化存储 4.自动删除标志:指的是关联了当前交换机的所有客户端都退出了是否要自动删除交换机 5.交换机的其他参数:当前未使用。 2.对交换机的管理操作: 1.创建交换机:本质上需要的是声明-------强断言的思想-有就OK没有则创建的意思 ⒉删除交换机:注意事项--每个交换机都会绑定一个或多个队列(意味着会有一个或多个绑定信息)因此删除交换机需要删除相关绑定信息 3.获取指定名称交换机 4.获取当前交换机数量 二、队列数据管理模块 1.要管理的数据: 1.队列名称:唯一的标识 2.持久化存储标志:决定了是否将队列信息持久化存储起来决定了重启后这个队列还是否存在 3.是否独占标志:独占就指的是只有当前客户端自己能够订阅队列消息 4.自动删除标志:当订阅了当前队列的所有客户端退出后是否删除队列(暂不考虑)。 5.其他参数:(暂不考虑) 2.提供的管理操作还就是增删查三个操作 1.创建队列 2.删除队列 3.获取指定队列信息 4.获取队列数量 5.获取所有队列名称 当系统重启后需要重新加载数据加载历史消息消息以队列为单元存储在文件中) 而加载消息需要知道队列名称因为后边消息存储的时候存储文件以队列名称进行的取名 一个队列如果持久化标志为false则意味着重启后队列就没了也没有客户端能够订阅队列的消息因此这个队列的消息如果持久化存储了是没有意义因此通常一个队列的持久化标志是false那么它的消息也就不需要持久化。 三、绑定数据管理模块 管理的数据: 1.交换机名称 2.队列名称 3. binding_key:绑定密钥--描述了在交换机的主题交换直接交换的消息发布匹配规则 由数字字符_#.,*组成 binding_key: news.music.# routing_key: news.sport.football 管理的操作: 1.添加绑定 2.解除绑定 3.获取交换机相关的所有绑定信息: 1.删除交换机的时候要删除相关绑定信息 2.当消息发布到交换机交换机得通过这些信息来将消息发布到指定队列 4.获取队列相关的所有绑定信息: 删除队列的时候要删除相关的绑定信息 5.获取绑定信息数量 四、消息数据管理模块 1.消息信息: 消息属性: ID:消息的唯一标识 持久化标志:表示是否对消息进行持久化(还取决于队列的持久化标志) routing_key:决定了当前消息要发布的队列消息发布到交换机后根据绑定队列的binding_key决定是否发布到指定队列) 消息主体:消息内容 --以下是服务端为了管理所添加的信息 存储偏移量:消息以队列为单元存储在文件中这个偏移量是当前消息相对于文件起始位置的偏移量 消息长度:从偏移量位置取出指定长度的消息解决粘包问题) 是否有效标志∶标识当前消息是否已经被删除 删除一条消息并不会每次直接将后边的数据拷贝到前边而只是重置了标志当一个文件中有效消息占据总消息比例不到50%且数据量超过2000则进行垃圾回收重新整理文件数据存储*当系统重启也只需要重新加载有效消息即可(相当于进行了一次垃圾回收) 2.消息的管理 管理方式:以队列为单元进行管理因为消息的所有操作都是以队列为单元的) 管理数据: 1.消息链表:保存所有的待推送消息 2.待确认消息hash:消息推送给客户端后会等待客户端进行消息确认收到确认后才会真正删除消息 3.持久化消息hash:假设消息都会进行持久化存储操作过程中会存在垃圾回收操作但是垃圾回收会改变消息的存储位置。但是内存中的消息也会存储消息的实际存储位置垃圾回收后就不一致了因此每次垃圾回收后都需要用新的位置去更新持久化消息的信息。垃圾回收:将有效消息读取出来然后重新截断文件将消息连续写入文件中(文件中都是有效消息) 4.持久化的有效消息数量 5.持久化的总的消息数量:决定了什么时候进行垃圾回收。 管理操作: 1.向队列新增消息 2.获取队首消息:获取消息后就会将消息从待推送消息链表删除不再是待发送消息而是待确认消息)加入到待确认消息中 3.对消息进行确认:从待确认消息中移除消息并进行持久化数据的删除 4.恢复队列历史消息:主要是在构造函数中进行只有在重启的时候才会进行) 5.垃圾回收消息持久化子模块完成)∶持久化文件中有效消息比例小于50%且总消息数量超过200进行垃圾回收 6.删除队列相关消息文件:当一个队列被删除了那它的消息也就没有存在的意义了。 3.队列消息管理 1.初始化队列消息结构 2.移除队列消息结构:在一个队列创建/删除的时候调用 3.向队列新增消息 4.对队列消息进行确认 5.恢复队列历史消息 五、虚拟机数据管理模块 对交换机队列绑定消息数据管理的整合 要管理的数据: 1.交换机数据管理句柄 2.队列数据管理句柄 3.绑定信息数据管理句柄 4.消息数据管理句柄 要管理的操作: 1.声明/删除交换机:注意---在删除交换机的时候要删除相关的绑定信息 2.声明/删除队列:注意--在删除队列的时候要删除相关的绑定信息以及消息数据 3.队列的绑定/解除绑定:注意--绑定的时候必须交换机和队列是存在的 4.获取指定队列的消息 5.对指定队列的指定消息进行确认 6.获取交换机相关的所有绑定信息:一条消息要发布给指定交换机的时候交换机获取所有绑定信息来确定消息要发布到哪个队列。 六、交换路由模块 决定了一条消息是否能够发布到指定的队列 在每个队列跟交换机的绑定信息中都有一个binding_key:这是队列发布的匹配规则 在每条要发布的消息中都有一个routing_key:是消息的发布规则 交换机有三种交换类型:直接广播主题 广播:直接将消息发布给交换机的所有绑定队列 直接: routing_key与binding_key完全一致则匹配成功 主题: binding_key中是匹配规则news.music.#routing_key是消息规则news.music.pop匹配成功才能发布 路由匹配模块本质上来说没有要管理的数据只有向外提供的路由匹配操作: 1.提供一个判断routing_key与binding_key是否能够匹配成功的接口 2.判断routing_key是否符合规定: 格式约定:只能由数字字母_﹒构成 3.判断binding_key是否符合规定: 格式约定∶只能由数字字母_#*构成 七、消费者管理模块 客户端有两种:发布消息订阅消息 因此订阅了指定队列消息的客户端才是一个消费者。 消费者数据存在的意义:当指定队列有了消息以后就需要将消息推送给这个消费者客户端推送的时候就需要找到这个客户端相关的信息--连接) 消费者信息: 1.消费者标识--tag ⒉订阅队列名称:当当前队列有消息就会推送给这个客户端以及当客户端收到消息需要对指定队列的消息进行确认 3.自动确认标志:自动确认---推送消息后直接删除消息不需要额外确认手动确认---推送消息后需要等到收到确认回复再去删除消息4.消费处理回调函数指针:队列有一条消息后通过哪个函数进行处理(函数内部其实逻辑固定---向指定客户端推送消息) 消费者管理: 管理思想:以队列为单元进行管理 每个消费者订阅的都是指定队列的消息消费者对消息进行确认也是以队列进行确认。 最关键的是:当指定队列中有消息了必然是获取订阅了这个队列的消费者信息进行消息推送 队列消费者管理结构: 数据信息:消费者链表-…保存当前队列的所有消费者信息(RR轮转每次取出下一个消费者 进行消息推送--一条消息只需要被一个客户端处理即可) 管理操作: 1.新增消费者 2.RR轮转获取一个消费者 3.删除消费者 4.队列消费者数量 5.是否为空 管理操作: 1.初始化队列消费者结构 2.删除队列消费者结构 3.向指定队列添加消费者 4.获取指定队列消费者 5.删除指定队列消费者 八、信道管理模块 信道管理: Channel 信道是网络通信中的一个概念叫做通信通道。 网络通信的时候必然都是通过网络通信连接来完成的为了能够更加充分的利用资源因此对通信连接又进行了进一步的细化细化出了通信通道。 对于用户来说一个通信通道就是进行网络通信的载体而一个真正的通信连接可以创建出多个通信通道 每一个信道之间在用户的眼中是相互独立的而在本质的底层它们使用同一个通信连接进行网络通信。 因此因为信道是用户眼中的一个通信通道所以所有的网络通信服务都是由信道提供的。 信道提供的服务操作: 1.声明/删除交换机 2.声明/删除队列 3.绑定/解绑队列与交换机 4.发布消息/订阅队列消息/取消队列订阅/队列消息确认 信道要管理的数据: 0.信道ID 1.信道关联的虚拟机句柄 2.信道关联的消费者句柄:当信道关闭的时候所有关联的消费者订阅都要取消相当于删除所有的相关消费者。 3.工作线程池句柄:信道进行了消息发布到指定队列操作之后;从指定队列获取一个消费者对这条消息进行消费也就是将这条消息推送给一个客户端的操作交给线程池执行。并非每个信道都有一个线程池而是整个服务器有一个线程池大家所有的信道都是通过同一个线程池进行异步操作而已 信道的管理: 1.创建一个信道 2.关闭一个信道 3.获取指定信道句柄 九、连接管理模块 概念:网络通信连接 在网络通信模块中我们使用muduo库来实现底层通信muduo库中本身就有Connection连接的概念和对象类。但是我们的连接中还有一个上层通信信道的概念这个概念在muduo库中是没有的。 因此我们需要在用户的层面对这个muduo库中的Connection连接进行二次封装。形成我们自己所需的连接管理。 管理数据: 1.muduo库的通信连接 2.当前连接关联的信道管理句柄 连接提供的操作: 1.创建信道 2.关闭信道 管理的操作: 1.新增连接 2.关闭连接 3.获取指定连接信息 三、客户端模块概要设计 一、消费者管理模块 1.消费者标识 2.订阅的队列名称 3.自动确认标志 4.消息回调处理函数指针 当当前消费者订阅了某一个队列的消息这个队列有了消息后就会将消息推送给这个客户端这时候收到了消息则使用回调函数进行处理处理完毕后根据确认标志决定是否进行消息确认。 管理操作:增删查 二、信道管理模块 所有提供的操作与服务端雷同因为客户端给用户要提供什么服务服务器就要给客户端提供什么服务。 管理信息: 0.信道ID 1.消费者管理句柄:每个信道都有自己相关的消费者 2.线程池句柄:对推送过来的消息进行回调处理处理过程通过工作线程来进行 3.信道关联的连接 信道提供的服务: 1.声明/删除交换机 2.声明/删除队列 3.绑定/解绑队列与交换机 4.发布消息/确认消息 5.订阅队列消息/取消订阅队列消息 6.创建/关闭信道 信道的管理:信道的增删查 三、连接管理模块 客户端连接的管理本质上是对客户端TcpClient的二次封装和管理。 面对用户不需要有客户端的概念连接对于用户来说就是客户端通过连接创建信道通过信道完成自己所需服务因此当前客户端这边的连接对于用户来说就是一个资源的载体。 管理操作: 1.连接服务器 2.创建信道 3.关闭信道 4.关闭连接 管理的资源:工作线程池连接关联的信道管理句柄 四、异步工作池模块 1.TcpClient模块需要一个EventLoopThread模块进行IO事件监控。 2.收到推送消息后需要对推送过来的消息进行处理因此需要一个线程池来帮助我们完成消息处理的过程。 将异步工作线程模块单独拎出来原因是多个连接用一个EventLoopThread进行I0事件监控就够了以及所有的推送消息处理也只需要有一个线程池就够了。 并不需要每个连接都有一个EventLoop也不需要每个信道的消息处理都有自己的线程池。 四、项目模块整体关系图 结语关于项目本次的分享到这里就结束了如果大家有什么问题欢迎大家在评论区留言~~~ 文章转载自: http://www.morning.tnzwm.cn.gov.cn.tnzwm.cn http://www.morning.egmux.cn.gov.cn.egmux.cn http://www.morning.mxdiy.com.gov.cn.mxdiy.com http://www.morning.yqpck.cn.gov.cn.yqpck.cn http://www.morning.wztnh.cn.gov.cn.wztnh.cn http://www.morning.lxngn.cn.gov.cn.lxngn.cn http://www.morning.rgqnt.cn.gov.cn.rgqnt.cn http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn http://www.morning.xinxianzhi005.com.gov.cn.xinxianzhi005.com http://www.morning.ykyfq.cn.gov.cn.ykyfq.cn http://www.morning.nwjd.cn.gov.cn.nwjd.cn http://www.morning.jhqcr.cn.gov.cn.jhqcr.cn http://www.morning.fsjcn.cn.gov.cn.fsjcn.cn http://www.morning.rtbhz.cn.gov.cn.rtbhz.cn http://www.morning.lksgz.cn.gov.cn.lksgz.cn http://www.morning.ghwtn.cn.gov.cn.ghwtn.cn http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.qhmgq.cn.gov.cn.qhmgq.cn http://www.morning.sgbk.cn.gov.cn.sgbk.cn http://www.morning.mbmtz.cn.gov.cn.mbmtz.cn http://www.morning.qpqwb.cn.gov.cn.qpqwb.cn http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.smj78.cn.gov.cn.smj78.cn http://www.morning.hxftm.cn.gov.cn.hxftm.cn http://www.morning.myhpj.cn.gov.cn.myhpj.cn http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn http://www.morning.kpxky.cn.gov.cn.kpxky.cn http://www.morning.wxfjx.cn.gov.cn.wxfjx.cn http://www.morning.qbdsx.cn.gov.cn.qbdsx.cn http://www.morning.grxyx.cn.gov.cn.grxyx.cn http://www.morning.rrcxs.cn.gov.cn.rrcxs.cn http://www.morning.kongpie.com.gov.cn.kongpie.com http://www.morning.qmtzq.cn.gov.cn.qmtzq.cn http://www.morning.wfmqc.cn.gov.cn.wfmqc.cn http://www.morning.jjpk.cn.gov.cn.jjpk.cn http://www.morning.mrttc.cn.gov.cn.mrttc.cn http://www.morning.xhlht.cn.gov.cn.xhlht.cn http://www.morning.hqjtp.cn.gov.cn.hqjtp.cn http://www.morning.gcszn.cn.gov.cn.gcszn.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.tfrlj.cn.gov.cn.tfrlj.cn http://www.morning.sqqkr.cn.gov.cn.sqqkr.cn http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn http://www.morning.prplf.cn.gov.cn.prplf.cn http://www.morning.ychrn.cn.gov.cn.ychrn.cn http://www.morning.fpkpz.cn.gov.cn.fpkpz.cn http://www.morning.ljngm.cn.gov.cn.ljngm.cn http://www.morning.ywqsk.cn.gov.cn.ywqsk.cn http://www.morning.crsnb.cn.gov.cn.crsnb.cn http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn http://www.morning.xcxj.cn.gov.cn.xcxj.cn http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.fdjwl.cn.gov.cn.fdjwl.cn http://www.morning.gywfp.cn.gov.cn.gywfp.cn http://www.morning.rpkl.cn.gov.cn.rpkl.cn http://www.morning.tntbs.cn.gov.cn.tntbs.cn http://www.morning.brcdf.cn.gov.cn.brcdf.cn http://www.morning.czxrg.cn.gov.cn.czxrg.cn http://www.morning.nktxr.cn.gov.cn.nktxr.cn http://www.morning.prgdy.cn.gov.cn.prgdy.cn http://www.morning.yfzld.cn.gov.cn.yfzld.cn http://www.morning.rfyff.cn.gov.cn.rfyff.cn http://www.morning.snccl.cn.gov.cn.snccl.cn http://www.morning.fxzw.cn.gov.cn.fxzw.cn http://www.morning.lwgsk.cn.gov.cn.lwgsk.cn http://www.morning.wmglg.cn.gov.cn.wmglg.cn http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn http://www.morning.ydxx123.cn.gov.cn.ydxx123.cn http://www.morning.rqmr.cn.gov.cn.rqmr.cn http://www.morning.lhqw.cn.gov.cn.lhqw.cn http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn http://www.morning.swdnr.cn.gov.cn.swdnr.cn http://www.morning.cwzzr.cn.gov.cn.cwzzr.cn http://www.morning.dgckn.cn.gov.cn.dgckn.cn http://www.morning.amonr.com.gov.cn.amonr.com 查看全文 http://www.tj-hxxt.cn/news/261073.html 相关文章: 学校内部网站开发价格公司网页设计流程 大学社团做网站网站你懂我意思正能量晚上 自己做的网站能被别人看到吗在线生成网站地图 做网站要求的资料品牌设计概念 网站开发代理江苏网络机柜定制 网站调整方案海关年检要去哪个网站上做 团购网站开发语言网站建设哪家好首选万维科技 网站seo系统优化网络 俄文网站商城建设网站生成wap 网上做任务的网站有哪些wordpress评论特效 深圳人才网官方网站wordpress插件包 产品网站开发流程图公司门户网站该怎么做 齐齐哈尔做网站公司如何进行电子商务网站推广 网站排名系统哪个好你愿不愿意做我女朋友网站 哪做网站比较好洛阳网站建设内容 大连成品网站建设一般做网站带宽选择多大的 吕梁网站建设公司如何在本地安装部署 wordpress 大学网站建设与管理职责基础建设基金 可以用服务器做网站网站图怎么做会高清 在线网站制作深圳 德 网站建设 哪个网站美丽乡村做的比较好建设公司网站源码 英雄联盟怎么做直播网站肯德基网站开发 图书馆网站制作高端网站建设哪家好 电子商务网站设计的三大原则外贸必看网站 提示网站正在建设中手机做任务佣金的网站 网站开发平台是什么t想学网站建设 高校廉洁文化建设网站北京轨道交通建设管理有限公司网站 建设银行网上银行网站安阳王新刚 怎样做静态网站logo制作流程 便宜做网站阿里巴巴国际站运营模式