首页
归档
关于
Search
1
C服务器端
9 阅读
2
管道处理模型
9 阅读
3
1.数据流图(下午题)
8 阅读
4
数据结构与算法
8 阅读
5
3.面向对象设计
7 阅读
软件设计师笔记
.Net
Java
数据库
PHP
运维
前端
Python
中间件相关
云原生
架构设计
Search
标签搜索
websocket
科技新闻
Bi8bo
有钱终成眷属,没钱亲眼目睹
累计撰写
267
篇文章
累计收到
2
条评论
首页
栏目
软件设计师笔记
.Net
Java
数据库
PHP
运维
前端
Python
中间件相关
云原生
架构设计
页面
归档
关于
搜索到
17
篇与
的结果
2025-04-03
RabbitMQ 几种工作模式
RabbitMQ(二)——模式类型RabbitMQ系列RabbitMQ(一)——简介RabbitMQ(二)——模式类型RabbitMQ(三)——简单模式RabbitMQ(四)——工作队列模式RabbitMQ(五)——发布订阅模式RabbitMQ(六)——路由模式RabbitMQ(七)——主题模式RabbitMQ(八)——消息确认RabbitMQ(九)——消息持久化RabbitMQ(十)——消息优先级 RabbitMQ工作模式: 简单模式:一个生产者,一个消费者。 工作队列模式:一个生产者,多个消费者,每个消费者获取到的消息唯一,默认轮询获取。 Exchange模式: 发布/订阅模式(Fanout):一个生产者发送的消息会被多个消费者获取。发送到Fanout Exchange的消息都会被转发到与该Exchange绑定(binding)的所有的Queue上。这种模式不需要任何Routekey,需要提前将Exchange 与Queue进行绑定,一个Exchange可以绑定多个Queue,一个Queue可以和多个Exchange绑定。如果接收到消息的Exchange没有与任何Queue绑定,则消息会丢失。 路由模式(Direct):任何发送到Direct Exchange的消息都会被转发到RouteKey指定的Queue,这种模式下不需要将Exchange进行任何绑定(binding)操作,消息传递时需要一个RouteKey,可以简单的理解为要发送到的队列名字。如果vhost中不存在该队列名,消息会丢失。 匹配订阅模式(Topic):任何发送到Topic Exchange的消息都会被转发到所有关心RouteKey指定主题的Queue中。就是每个队列都有其关心的主题,所有的消息都带有一个标题(RouteKey),Exchange会将消息转发到所有关注主题能与RouteKey模糊匹配队列。这种模式需要Routekey并且提前绑定Exchange与Queue。在进行绑定时要提供一个该队列对应的主题。‘ # ’表示0个或若干个关键字,‘ * ’表示一个关键字。如果Exchange没有发现能够与RouteKey匹配的Queue,消息会丢失。 headers:headers exchange主要通过发送的request message中的header进行匹配,其中匹配规则(x-match)又分为all和any,all代表必须所有的键值对匹配,any代表只要有一个键值对匹配即可。headers exchange的默认匹配规则(x-match)是any。 简单模式和工作队列模式 这两种模式非常简单,只涉及生产者、队列、消费者。 生产者负责生产消息,将消息发送到队列中,消费者监听队列,队列有消息就进行消费。 工作队列模式其实就是有多个消费者的简单模式。 当有多个消费者时,消费者平均消费队列中的消息。发布/订阅、路由与主题模式 这三种模式就要用到Exchange了。 生产者不直接与队列交互,而是将消息发送到交换机中,再由交换机将消息发送到已绑定改交换机的队列中给消费者消费。 常用的交换机类型有 3 种:fanout、direct、topic。 fanout不处理路由键,很像子网广播,每台子网内的主机都获得了一份复制的消息。 发布/订阅模式就是指使用fanout交换模式。fanout 类型交换机转发消息是最快的。 direct模式处理路由键,需要路由键匹配才能转发。 路由模式使用的是 direct 类型的交换机。 topic:将路由键和某模式进行匹配。 主题模式使用的是 topic 类型的交换机。
2025年04月03日
0 阅读
0 评论
0 点赞
2025-04-03
ES 术语基本概念
Node 与 ClusterElastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。IndexElastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。下面的命令可以查看当前节点的所有 Index。$ curl -X GET 'http://localhost:9200/_cat/indices?v'DocumentIndex 里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。Document 使用 JSON 格式表示,下面是一个例子。{ "user": "张三", "title": "工程师", "desc": "数据库管理"}同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。TypeDocument 可以分组,比如weather这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。不同的 Type 应该有相似的结构(schema),举例来说,id字段不能在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的一个区别。性质完全不同的数据(比如products和logs)应该存成两个 Index,而不是一个 Index 里面的两个 Type(虽然可以做到)。下面的命令可以列出每个 Index 所包含的 Type。$ curl 'localhost:9200/_mapping?pretty=true'根据规划,Elastic 6.x 版只允许每个 Index 包含一个 Type,7.x 版将会彻底移除 Type。
2025年04月03日
3 阅读
0 评论
0 点赞
1
...
3
4