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

html5移动网站开发实例2022最火的新零售模式

html5移动网站开发实例,2022最火的新零售模式,曼联vs曼联直播,网站建设360云栖号资讯#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯#xff0c;还在等什么#xff0c;快来#xff01; 说到消息中间件#xff0c;大部分人的第一印象可能是Kafka。毕竟Kafka自问世以来#xff0c;就顶着高并发#xff0c;大流… 云栖号资讯【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯还在等什么快来 说到消息中间件大部分人的第一印象可能是Kafka。毕竟Kafka自问世以来就顶着高并发大流量的光环。当然了Kafka也不负众望在大数据处理方面一直独领风骚。 这里想说说另一款同样优秀的消息中间件RabbitMQ。 选RabbitMQ还是Kafka 如果单机数据量没有到十万级以上我觉得选哪个都OK如果超过百万甚至到了千万级那么建议选择Kafka。 对了还有重要的一点RabbitMQ支持事务而Kafka不支持。所以如果你的业务系统要求支持事务那么只能选RabbitMQ。这也是很多金融系统选择RabbitMQ作为消息中间件的原因。 RabbitMQ基本概念 先来说一下消息中间件的通用模型所有的消息中间件的模型基本都是这样。 而RabbitMQ是基于AMQP协议实现的。模型大概是这个样子如下图所示 重点关注中间两个框框下面依次解读一下。 信道 建立TCP链接是一件很费时的事情所以很多提供高并发服务的软件都支持TCP链接复用比如HTTP协议的KeepAlive就是为了复用TCP链接准备的。所以RabbitMQ提出了信道的概念一个TCP链接里面可以支持多个信道同时通信以提高通信效率。如下图所示。 broker 一个启动的RabbitMQ实例代表一个broker。 虚拟主机 虚拟主机可以理解成命名空间的概念方便队列管理。 交换器 向RabbitMQ发送消息时先把消息先发到交换器再由交换器根据相关路由规则发到特定队列上。目前 RabbitMQ的交换器共四种类型direct、fanout、topic、headers。 headers交换器 匹配消息的header而不是路由键除此之外headers交换器和direct交换器完全一致但性能差很多所以目前几乎不用。 direct交换器 消息中的路由键routing key如果和Binding绑定的概念后面会介绍中的 binding key 一致 交换器就将消息发到对应的队列中。direct模式是完全匹配的单播模式也就是说路由键与队列名完全匹配如果一个队列绑定到交换机要求路由键为“dog”则只转发 routing key 标记为“dog”的消息不会转发“dog.puppy”的消息。如下图所示。 fanout交换器每个发送到fanout交换器中的消息不会去匹配路由键而是直接把消息投递到所有绑定到fanout交换器上的队列中。类似一个广播站会向所有收听广播的用户发送消息。对应到实际应用中它允许你针对一个消息作不同操作比如用户上传了一张新的图片系统要同时对这个事件进行不同的操作比如删除旧的图片缓存、增加积分奖励等等。这样就大大降低了系统之间的耦合度了。 如下图所示。 topic交换器topic交换器和direct交换器有相似之处它通过模式匹配的方式分发消息将路由键和某个模式进行匹配此时队列需要绑定到一个模式上。它将路由键和绑定键的字符串切分成单词这些单词之间用点隔开。它同样也会识别两个通配符符号#和符号。#匹配0个或多个单词匹配至少一个单词。如下图所示。 绑定 将消息队列和交换器进行关联。一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则所以可以将交换器理解成一个由绑定构成的路由表如下图所示 集群及高可用 因为RabbitMQ是Erlang开发的所以天生支持分布式。所谓的天生支持的意思就是不用像Kafka那样借助ZK来实现集群。 先来看一下典型的RabbitMQ集群架构图。 集群分为普通模式和镜像模式。另外RabbitMQ集群分为内存节点和磁盘节点集群当中必须存在磁盘节点。内存节点就是将数据存储到内存中读写效率会比较高而磁盘节点是将数据存储到磁盘上面可以持久化保存数据。 普通模式默认的集群模式。所谓的普通模式就是多台机器上启动多个Rabbitmq实例每台机器启动一个实例。但是创建的queue只会放在一个Rabbtimq实例上每个实例都会同步queue的元数据。消费的时候如果连接到了另外一个实例那么那个实例会从queue所在实例上拉取数据过来。如果存放queue的节点挂掉那么就不能提供服务了。所以这种方式并不是真正的高可用。 镜像模式创建的queue无论元数据还是消息都会存在于多个实例上每次写消息到queue的时候都会自动把消息同步到多个实例的queue里。任何一个节点挂掉后其他节点可以继续提供服务。类似于Redis集群的哨兵模式。关于Redis的高可用部署方式可以看我这篇文章。 元数据 元数据主要包含四类分别是 队列元数据队列名称及属性交换器元数据交换器名称、类型及属性绑定元数据记录了如何将消息路由到队列的数据vhost元数据为队列、交换器和绑定提供命名空间和安全属性的数据 运维常用管理命令 启动 /sbin/rabbitmq-server 重启 /sbin/rabbitmqctl reset 停止 /sbin/rabbitmqctl stop 停止应用 /sbin//rabbitmqctl stop_app 查看RabbitMQ状态 /sbin/rabbitmqctl status 查看绑定 /sbin/rabbitmqctl list_bindings 查看交换器 /sbin/rabbitmqctl list_exchanges 查看已声明的队列 /sbin/rabbitmqctl list_queues stop和stop_app 的区别 这里需要特别注意一下这两个命令的区别由于 RabbitmMQ是用Erlang写的Erlang有节点的概念也就是在一个Erlang节点上可以运行很多个Erlang应用stop命令是使得整个Erlang节点停止工作而stop_app则是使得当前应用停止工作不会影响其它应用的正常运行。 总结 如果之前一直接触的Java开发的中间件突然接触RabbitMQ会有些许不适应。特别是对于RabbitMQ的集群部署及高可用的理解。不过了解之后会发现这只兔子还是很可爱的。毕竟存在就有存在的道理。 【云栖号在线课堂】每天都有产品技术专家分享 课程地址https://yqh.aliyun.com/live 立即加入社群与专家面对面及时了解课程最新动态 【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK 原文发布时间2020-07-17 本文作者花括号MC 本文来自“掘金”了解相关信息可以关注“掘金” 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.pierceye.com/news/26224/

相关文章:

  • 重庆新闻频道网站后端性能优化措施
  • ip地址访问不了网站网页开发需要学什么
  • 行业类网站模板建湖人才网官网登录
  • 学生网页网站制作软件大全天津seo网站管理
  • 北京免费网站建设模板哪些网站做任务好赚钱
  • 合肥市科技中心网站企业资源计划系统
  • 网站建设教程小说简介旅游网站建设的经济评价
  • 网站地址解析大学生网站设计作品
  • 定西市建设网站费用书店网站建设定位及目标
  • wordpress整站备份插件如何做色流量网站
  • 成都seo优化推广重庆seo公司
  • 常州企业免费建站云主机试用
  • h5响应式网站是什么意思网站的推广平台
  • 张家港企业网站制作wordpress 页眉
  • 网站排名软件网址python编程软件手机版下载
  • 天津网站开发建筑人才网app下载
  • 我们的爱情网站制作哪个网站可以做高数题
  • iis如何做网站规则网站建设
  • 金山郑州阳网站建设做网站用什么空间
  • wordpress多站点批量添加wordpress文章批量
  • 湖北省建设人力资源网站通辽做网站哪家好
  • 怎样建设传奇网站空间百度知道合伙人
  • 襄樊网站推广模拟搜索点击软件
  • 网站开发费如何入账网站建设的毕业设计
  • 网站建设完成的时间网站开发与黑客
  • 深圳网站设计比较好的公司国外平面设计教程网站
  • 河北省建设工程安全生产网站科技素材
  • 新奇网站建设浙江大数据网站建设问答知识
  • 深圳网站高端建设阳江公司网站建设
  • 搬瓦工的主机可以用来做网站吗汽车网有哪些网站大全