• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
程序人生^
博客园    首页    新随笔    联系   管理    订阅  订阅
11 2021 档案
Sentinel安装和微服务整合

摘要:1.初识Sentinel Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html Sentinel 具有以下特征: •丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 阅读全文
posted @ 2021-11-14 23:04 程序人生^ 阅读(102) 评论(0) 推荐(0)
RestClient实现数据聚合

摘要:1.API语法 聚合条件与query条件同级别,因此需要使用request.source()来指定聚合条件。 聚合条件的语法: 聚合的结果也与查询结果不同,API也比较特殊。不过同样是JSON逐层解析: 使用聚合功能,利用Bucket聚合,对搜索结果中的文档基于品牌分组、基于城市分组,就能得知包含哪 阅读全文
posted @ 2021-11-14 15:45 程序人生^ 阅读(139) 评论(0) 推荐(0)
DSL实现数据聚合(分组,平均值,最大值,最小值,求和等)

摘要:聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。 聚合的种类 聚合常见 阅读全文
posted @ 2021-11-14 15:41 程序人生^ 阅读(2147) 评论(0) 推荐(0)
RestClient查询文档、排序、分页、高亮

摘要:1.快速入门 我们以match_all查询为例 代码解读: 第一步,创建SearchRequest对象,指定索引库名 第二步,利用request.source()构建DSL,DSL中可以包含查询、分页、排序、高亮等 query():代表查询条件,利用QueryBuilders.matchAllQue 阅读全文
posted @ 2021-11-11 23:02 程序人生^ 阅读(357) 评论(0) 推荐(0)
DSL查询ES结果分页和搜索关键字高亮显示

摘要:1.分页 elasticsearch 默认情况下只返回top10的数据。而如果要查询更多数据就需要修改分页参数了。elasticsearch中通过修改from、size参数来控制要返回的分页结果: from:从第几个文档开始 size:总共查询几个文档 类似于mysql中的limit ?, ? 基本 阅读全文
posted @ 2021-11-10 22:34 程序人生^ 阅读(1168) 评论(0) 推荐(0)
DSL查询ES结果排序

摘要:elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。 1.普通字段排序 keyword、数值、日期类型排序的语法基本一致。 语法: GET /indexName/_sea 阅读全文
posted @ 2021-11-10 00:26 程序人生^ 阅读(1308) 评论(0) 推荐(0)
DSL查询ES文档

摘要:1.DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索 阅读全文
posted @ 2021-11-09 22:53 程序人生^ 阅读(169) 评论(0) 推荐(0)
RestClient操作ES文档

摘要:创建一个测试类,做两件事情: 初始化RestHighLevelClient 我们的酒店数据在数据库,需要利用IHotelService去查询,所以注入这个接口 import cn.pino.hotel.pojo.Hotel; import cn.pino.hotel.service.IHotelSe 阅读全文
posted @ 2021-11-08 21:58 程序人生^ 阅读(313) 评论(0) 推荐(0)
RestClient操作ES索引库

摘要:ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html 其中的Java Rest Client又包括 阅读全文
posted @ 2021-11-07 23:34 程序人生^ 阅读(436) 评论(0) 推荐(0)
ElasticSerach文档操作

摘要:1.新增文档 语法: POST /索引库名/_doc/文档id { "字段1": "值1", "字段2": "值2", "字段3": { "子属性1": "值3", "子属性2": "值4" }, // ... } 示例: 2.查询文档 根据rest风格,新增是post,查询应该是get,不过查询一 阅读全文
posted @ 2021-11-07 22:12 程序人生^ 阅读(95) 评论(0) 推荐(0)
ElasticSearch索引库操作

摘要:索引库就类似数据库表,mapping映射就类似表的结构。 我们要向es中存储数据,必须先创建“库”和“表”。 1.mapping映射属性 mapping是对索引库中文档的约束,常见的mapping属性包括: type:字段数据类型,常见的简单类型有: 字符串:text(可分词的文本)、keyword 阅读全文
posted @ 2021-11-07 21:46 程序人生^ 阅读(110) 评论(0) 推荐(0)
elasticsearch安装

摘要:1.创建网络 因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker network create es-net 2.拉取elasticsearch镜像 这里我们采用elasticsearch的7.12.1版本的镜像 docker pull el 阅读全文
posted @ 2021-11-07 14:26 程序人生^ 阅读(63) 评论(0) 推荐(0)
SpringAMQP消息转换器

摘要:之前说过,Spring会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。 只不过,默认情况下Spring采用的序列化方式是JDK序列化。众所周知,JDK序列化存在下列问题: 数据体积过大 有安全漏洞 可读性差 我们来测试一下。 1.测试默认转换器 我们修改消息 阅读全文
posted @ 2021-11-02 23:01 程序人生^ 阅读(88) 评论(0) 推荐(0)
SpringAMQP TopicExchange实现发布/订阅

摘要:Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符! Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item. 阅读全文
posted @ 2021-11-02 22:46 程序人生^ 阅读(70) 评论(0) 推荐(0)
SpringAMQP DirectExchange实现发布/订阅

摘要:在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。 在Direct模型下: 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key) 消息的发送方在 向 Ex 阅读全文
posted @ 2021-11-02 22:33 程序人生^ 阅读(61) 评论(0) 推荐(0)
SpringAMQP FanoutExchange实现发布/订阅

摘要:发布订阅的模型如图: 可以看到,在订阅模型中,多了一个exchange角色,而且过程略有变化: Publisher:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给X(交换机) Exchange:交换机,图中的X。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个 阅读全文
posted @ 2021-11-02 21:55 程序人生^ 阅读(91) 评论(0) 推荐(0)
SpringAMQP Work Queue消息发送和接收

摘要:Work queues,也被称为(Task queues),任务模型。简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息。 当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。 此时就可以使用work 模型,多个消费者共同处理 阅读全文
posted @ 2021-11-02 20:32 程序人生^ 阅读(123) 评论(0) 推荐(0)
SpringAMQP Basic Queue消息发送和接收

摘要:SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。 SpringAmqp的官方地址:https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能: 自动声明队列、交换机及其 阅读全文
posted @ 2021-11-02 19:50 程序人生^ 阅读(100) 评论(0) 推荐(0)
RabbitMQ消息发送和接收

摘要:简单队列模式的模型图: 官方的HelloWorld是基于最基础的消息队列模型来实现的,只包括三个角色: publisher:消息发布者,将消息发送到队列queue queue:消息队列,负责接受并缓存消息 consumer:订阅队列,处理队列中的消息 1.publisher实现 思路: 建立连接 创 阅读全文
posted @ 2021-11-01 23:31 程序人生^ 阅读(775) 评论(0) 推荐(0)
Docker 安装RabbitMQ

摘要:1.在线拉取RabbitMQ镜像 docker pull rabbitmq:3-management 2.安装mq 执行下面的命令来运行MQ容器: #创建运行容器 docker run \ #环境变量(用户名和密码) -e RABBITMQ_DEFAULT_USER=mymq \ -e RABBIT 阅读全文
posted @ 2021-11-01 23:02 程序人生^ 阅读(110) 评论(0) 推荐(0)

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3