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

物流网站建设平台分析长沙网站搭建首选智投未来

物流网站建设平台分析,长沙网站搭建首选智投未来,阿里巴巴国际站入口,免费虚拟机安卓MQ 用处 一、异步。可提高性能和吞吐量 二、解耦 三、削峰 四、可靠。常用消息队列可以保证消息不丢失、不重复消费、消息顺序、消息幂等 选型 一Kafak:吞吐量最大#xff0c;性能最好#xff0c;集群高可用。缺点#xff1a;会丢数据#xff0c;功能较单一。 二Ra…MQ 用处 一、异步。可提高性能和吞吐量 二、解耦 三、削峰 四、可靠。常用消息队列可以保证消息不丢失、不重复消费、消息顺序、消息幂等 选型 一Kafak:吞吐量最大性能最好集群高可用。缺点会丢数据功能较单一。 二RabbitMQ可靠性高功能全面。缺点吞吐量低可能消息积累影响性能。 三RocketMQ:高吞吐、高性能、高可用、事务性消息。缺点生态相对不成熟。 如何保证消息不丢失 可能会丢失消息的环节 生产者-MQ MQ主从复制 MQ存磁盘 MQ-消费者 依次解决 一、生产者发送消息到MQ Kafak:回调。RocketMQ:回调、事务性消息。RobbitMQ回调、手动事务、事务性消息(不细腻) 回调生产者发送消息之后会注册一个回调函数MQ收到消息返回ack表示已收到。 二、消息同步不丢失 RocketMQ: 普通集群中异步同步性能高可能丢消息。同步同步相反。 同步同步是指master结点拿到消息后从节点发送消息从节点存盘后返回生产者ack。 异步同步是指master结点收到消息后往从节点同步消息并直接返回生产者ask。 Dledger集群-两阶段提交。类似于ZAB协议同步数据。 RabbitMQ: 普通集群中消息分散存储结点不主动进行消息同步可能丢消息。 镜像集群中会在集群之间主动进行消息同步安全性较高。 Kafak: 通常用在允许消息少量丢失的场景。 三、MQ消息内存到磁盘消息不丢失 RocketMQ使用同步刷盘安全性高性能低。异步刷盘相反。 broker收到消息后消息在内存中需要其他线程将消息刷新到磁盘。 RabbitMQ将消息配置为持久化队列新增的Quorum类型的队列用Raft协议进行消息同步。 四、MQ消费者消费消息不丢失 分析消息队列中有消息的偏移量一般是在本地事务执行完成后移动。异步可能会丢失消息 RocketMQ使用默认方式消费即可不要采用异步的方式。 RabbitMQ:autoCommit-手动提交offset。 Kakfa:手动提交offset 原则采用同步的方式在消息被消费完成也就是本地事务执行完后提交消息移动偏移量。 如何保证消息幂等 MQ产品并没有主动提供解决幂等的机制需要由消费者自行控制。 RocketMQ中可以给每条消息分配一个ID作为判断依据但不保证全局唯一不推荐。 建议使用带业务标识的ID来进行幂等判断如OrderID统一ID分配。 如何保证消息有序 MQ只需保证局部有序不需要保证全局有序。例如一个聊天窗口和整个QQ消息。 关键在于单机下队列可以先进先出保证有序但在分布式状态下有多个队列。 所以要保证生产者把一组消息放到同一个队列中而消费者依次消费该消息组的所有消息 RockeMQ: 有完整设计生产者中MessageSelevtor可保证消费者需要注册一个registerMessageListener RabbitMQ:要保证一组消息只对应一个队列并且一个队列只对应一个消费者 Kafak:生产者可以将消息分配到同一个partition。Topic下只由同一个消费者消费 什么是 Elasticsearch是一个开源的分布式全文搜索和分析引擎它能够快速地处理大量的数据并具有高度可扩展性和可靠性。Elasticsearch最初是在Lucene搜索引擎的基础上开发的它提供了一个RESTful API可以通过HTTP来访问。 以下是Elasticsearch的主要特点 分布式架构Elasticsearch采用分布式架构可以将数据分片存储在多个节点上从而提高数据的处理能力和可靠性。 实时搜索Elasticsearch能够快速地搜索和分析数据支持实时搜索可以在毫秒级别内返回搜索结果。 多种查询方式Elasticsearch支持多种查询方式包括全文搜索、精确匹配、模糊匹配、范围查询等。 自动负载均衡Elasticsearch可以自动将数据分配到集群中的不同节点上并实现负载均衡从而提高系统的可用性和性能。 可扩展性Elasticsearch可以通过添加新节点来扩展集群的处理能力同时也支持水平扩展和垂直扩展。 多种数据类型Elasticsearch支持多种数据类型包括文本、数字、日期、地理位置等。 多语言支持Elasticsearch支持多种语言包括Java、Python、PHP等。 数据安全性Elasticsearch支持数据加密和访问控制可以保障数据的安全性。 总的来说Elasticsearch是一个功能强大、可靠性高、可扩展性好、易于使用的搜索引擎和分析工具被广泛应用于各种大规模的数据处理和搜索分析场景。 什么是倒排索引 倒排索引Inverted Index是一种常用的文本索引技术用于快速地查找包含特定词语的文档。在倒排索引中每个词语都对应着一组文档这些文档包含了该词语出现的位置信息。 倒排索引的构建过程包括以下几个步骤 分词将文本内容按照一定的规则进行分词形成一组词语。 建立索引对每个词语建立一个索引索引中包含了该词语出现的文档列表。 存储位置信息对于每个文档记录该词语出现的位置信息以便后续的检索和排名。 倒排索引的查询过程包括以下几个步骤 输入查询词语用户输入要查询的词语。 查找索引根据查询词语在倒排索引中查找对应的文档列表。 进一步筛选根据查询词语在文档中出现的位置信息进一步筛选出符合查询条件的文档。 返回结果返回符合条件的文档列表可以按照相关性进行排序。 倒排索引的优点包括 快速查找倒排索引可以快速地查找包含特定词语的文档减少了搜索的时间和计算量。 精确匹配倒排索引可以实现精确的词语匹配避免了模糊匹配和错误匹配。 支持多种查询方式倒排索引支持多种查询方式包括全文搜索、短语搜索、通配符搜索、范围搜索等。 支持高效的排名倒排索引可以根据词语在文档中出现的位置信息计算出文档的相关性从而实现高效的排名。 总的来说倒排索引是一种高效、精确、灵活的文本索引技术被广泛应用于各种搜索引擎和文本处理系统中。 BoolQueryBuilder BoolQueryBuilder是Elasticsearch Java API中的一个类用于构建布尔查询即使用多个查询条件进行组合查询的操作。除了must、should和must_not三种查询之外BoolQueryBuilder还提供了一个filter方法用于添加过滤条件。 与查询条件不同的是过滤条件不会影响搜索结果的相关性得分它只是根据条件过滤掉不符合要求的文档从而提高搜索效率。因此过滤条件通常用于一些不需要考虑相关性得分的场景例如范围查询、精确匹配等。 使用filter方法时需要先创建一个实例对象然后通过方法链式调用来添加过滤条件。例如 BoolQueryBuilder boolQuery QueryBuilders.boolQuery().must(QueryBuilders.termQuery(field1, value1)).should(QueryBuilders.termQuery(field2, value2)).mustNot(QueryBuilders.termQuery(field3, value3)).filter(QueryBuilders.rangeQuery(field4).gte(10).lte(20));以上代码构建了一个bool查询包含了三个查询条件和一个过滤条件field1value1必须满足、field2value2可以满足、field3value3不能满足、field4的值必须在10到20之间过滤条件。 构建完bool查询后可以将其作为参数传递给SearchRequestBuilder的setQuery方法用于进行搜索操作。例如 SearchResponse response client.prepareSearch(index).setQuery(boolQuery).execute().actionGet();以上代码将bool查询作为参数传递给SearchRequestBuilder的setQuery方法执行搜索操作并返回搜索结果。 总之BoolQueryBuilder是Elasticsearch Java API中一个非常常用的类可以方便地构建复杂的布尔查询和过滤条件提高搜索的精确度和效率。 filter和must有什么区别 过滤条件和must条件都是BoolQueryBuilder类中的方法用于构建布尔查询。两者的区别在于过滤条件不会影响搜索结果的相关性得分而must条件会影响搜索结果的相关性得分。 过滤条件主要用于过滤掉不符合条件的文档从而提高搜索效率。过滤条件通常用于一些不需要考虑相关性得分的场景例如范围查询、精确匹配等。在搜索时过滤条件会被应用到搜索结果上从而过滤掉不符合条件的文档。 must条件主要用于筛选符合条件的文档并影响搜索结果的相关性得分。must条件可以包含多个子条件表示所有子条件都必须满足相当于“AND”操作。在搜索时must条件会被应用到搜索结果上从而筛选出符合条件的文档并对搜索结果的相关性得分进行加权。 例如假设我们要搜索商品名称包含“手机”且价格在1000到2000之间的商品可以使用以下bool查询 BoolQueryBuilder boolQuery QueryBuilders.boolQuery().must(QueryBuilders.matchQuery(name, 手机)).filter(QueryBuilders.rangeQuery(price).gte(1000).lte(2000));以上代码使用must条件筛选出商品名称包含“手机”的文档并使用filter条件过滤掉价格不在1000到2000之间的文档。在搜索时must条件会影响搜索结果的相关性得分而filter条件不会影响搜索结果的相关性得分从而提高搜索效率。 总之过滤条件和must条件都是BoolQueryBuilder类中的方法用于构建复杂的布尔查询。两者的区别在于过滤条件不会影响搜索结果的相关性得分而must条件会影响搜索结果的相关性得分。在实际应用中我们需要根据具体场景选择合适的条件以获得更好的搜索效果。 代理模式 工厂模式 CAP BASE理论 Raft算法 Stomp协议 STOMP(Simple Text-Orientated Messaging Protocol) 面向消息的简单文本协议 WebSocket是一个消息架构不强制使用任何特定的消息协议它依赖于应用层解释消息的含义 与处在应用层的HTTP不同WebSocket处在TCP上非常薄的一层会将字节流转换为文本/二进制消息因此对于实际应用来说WebSocket的通信形式层级过低因此可以在 WebSocket 之上使用 STOMP协议来为浏览器 和 server间的 通信增加适当的消息语义。 如何理解 STOMP 与 WebSocket 的关系 HTTP协议解决了 web 浏览器发起请求以及 web 服务器响应请求的细节假设 HTTP 协议 并不存在只能使用 TCP 套接字来 编写 web 应用你可能认为这是一件疯狂的事情直接使用 WebSocketSockJS 就很类似于 使用 TCP 套接字来编写 web 应用因为没有高层协议就需要我们定义应用间所发送消息的语义还需要确保连接的两端都能遵循这些语义同 HTTP 在 TCP 套接字上添加请求-响应模型层一样STOMP 在 WebSocket 之上提供了一个基于帧的线路格式层用来定义消息语义 WebSocket协议定义了两种消息类型文本类型和二进制类型但是消息内容却是未定义的下面我们介绍一下STOMP协议。 STOMP (Simple Text Oriented Messaging Protocol) 起源于脚本语言比如Ruby、Python和Perl用于连接企业消息代理它可以用于任何可靠的双向网络协议中如TCP和WebSocket。尽管STOMP是一个面向文本的协议但消息负载可以是文本或者二进制。 STOMP基于WebSocket在客户端和服务端之间定义了一种机制协商通过子协议更高级的消息协议来定义可以发送何种消息每条消息的内容是什么等等。
http://www.zqtcl.cn/news/989467/

相关文章:

  • 惠州市建设局网站网站模块设计怎么做
  • 群晖可不可以做网站用如何查询商标是否已经被注册
  • 北京欢迎你网站制作公司建设厅和应急管理厅焊工证区别
  • 如何开办网站微信公众平台号申请注册
  • 网站建设找哪个平台浦东区建设工程监督网站
  • 如何创业做网站设计公司工作室
  • 游戏网站建设多少中国煤炭建设协网站
  • 动态图表网站宁津做网站
  • 黑龙江生产建设兵团各连网站成功网站建设案例
  • 一级a做爰精免费网站肇庆网站制作软件
  • wordpress加分页北京优化生育
  • 乐至建设局网站工程项目管理软件哪个好
  • 太原公司网站建立wordpress插件直播
  • 比较有名的diy制作网站做照片视频的网站
  • 河北石家庄建设网站wordpress nginx apache
  • 上海免费网站建设品牌wordpress主题安装失败下载失败
  • 买公司的网站商城系统开发
  • 网页设计国外设计欣赏网站深夜视频在线免费
  • 做网站怎么租用服务器杭州网站建设hzyze
  • .asp 网站北京最新防疫信息
  • 网站上传用什么软件做视频教程114查询
  • 网站小图标素材网站开发需要提供哪些东西
  • 阿里巴巴国际站买家入口百度建网站多少钱
  • 为网站网站做代理怎么判wordpress 调用当前分类名称
  • 多用户网站管理系统定制网站建设与运营案例
  • 毕业设计做的网站抄袭网站开发执行文档
  • 自己做网站都要什么软件网址你懂我意思正能量不用下载
  • 网站内容的创新wordpress美食主题
  • 程序员做游戏还是做网站好雅安移动网站建设
  • wordpress伪静态大学seo诊断网站免费诊断平台