随笔分类 -  springCloud

摘要:单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 单点故障问题:将分片数据在不同节点备份(replica ) ES集群相关概念: 集群(cluster):一组拥有共同的 cl 阅读全文
posted @ 2022-12-09 23:38 kisshappyboy 阅读(162) 评论(0) 推荐(0) 编辑
摘要:elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步。 1.思路分析 常见的数据同步方案有三种: 同步调用 异步通知 监听binlog 1.1.同步调用 方案 阅读全文
posted @ 2022-12-09 23:23 kisshappyboy 阅读(1594) 评论(0) 推荐(0) 编辑
摘要:当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,如图: 这种根据用户输入的字母,提示完整词条的功能,就是自动补全了。 因为需要根据拼音字母来推断,因此要用到拼音分词功能。 1.拼音分词器 要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的 阅读全文
posted @ 2022-12-09 23:06 kisshappyboy 阅读(271) 评论(0) 推荐(0) 编辑
摘要:1.聚合的种类 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。 聚合 阅读全文
posted @ 2022-12-09 22:41 kisshappyboy 阅读(39) 评论(0) 推荐(0) 编辑
摘要:下面,我们通过黑马旅游的案例来实战演练下之前学习的知识。 我们实现四部分功能: 酒店搜索和分页 酒店结果过滤 我周边的酒店 酒店竞价排名 启动我们提供的hotel-demo项目,其默认端口是8089,访问http://localhost:8090,就能看到项目页面了: 1.酒店搜索和分页 案例需求: 阅读全文
posted @ 2022-12-09 00:11 kisshappyboy 阅读(239) 评论(0) 推荐(0) 编辑
摘要:文档的查询同样适用昨天学习的 RestHighLevelClient对象,基本步骤包括: 1)准备Request对象 2)准备请求参数 3)发起请求 4)解析响应 1.快速入门 我们以match_all查询为例 1.1.发起查询请求 代码解读: 第一步,创建SearchRequest对象,指定索引库 阅读全文
posted @ 2022-12-08 23:17 kisshappyboy 阅读(67) 评论(0) 推荐(0) 编辑
摘要:搜索的结果可以按照用户指定的方式去处理或展示。 1.排序 elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。 1.1.普通字段排序 keyword、数值、日期类型排序的 阅读全文
posted @ 2022-12-08 22:29 kisshappyboy 阅读(52) 评论(0) 推荐(0) 编辑
摘要:DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.DSL查询分类 查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query mu 阅读全文
posted @ 2022-12-07 23:20 kisshappyboy 阅读(57) 评论(0) 推荐(0) 编辑
摘要:1.新增文档 我们要将数据库的酒店数据查询出来,写入elasticsearch中。 1.1.索引库实体类 数据库查询后的结果是一个Hotel类型的对象。结构如下: @Data @TableName("tb_hotel") public class Hotel { @TableId(type = Id 阅读全文
posted @ 2022-12-06 23:44 kisshappyboy 阅读(34) 评论(0) 推荐(0) 编辑
摘要:ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html 我们根据项目实际来进行分析 1.3.mapp 阅读全文
posted @ 2022-12-06 23:40 kisshappyboy 阅读(71) 评论(0) 推荐(0) 编辑
摘要:1.新增文档 语法: POST /索引库名/_doc/文档id { "字段1": "值1", "字段2": "值2", "字段3": { "子属性1": "值3", "子属性2": "值4" }, // ... } 示例: POST /heima/_doc/1 { "info": "黑马程序员Jav 阅读全文
posted @ 2022-12-06 23:21 kisshappyboy 阅读(110) 评论(0) 推荐(0) 编辑
摘要:索引库就类似数据库表,mapping映射就类似表的结构。 我们要向es中存储数据,必须先创建“库”和“表”。 1.mapping映射属性 mapping是对索引库中文档的约束,常见的mapping属性包括: type:字段数据类型,常见的简单类型有: 字符串:text(可分词的文本)、keyword 阅读全文
posted @ 2022-12-06 23:04 kisshappyboy 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1.1 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 在打车软件搜索附近的车 1.2.ELK技术栈 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应 阅读全文
posted @ 2022-12-06 22:42 kisshappyboy 阅读(26) 评论(0) 推荐(0) 编辑
摘要:SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。 SpringAmqp的官方地址:https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能: 自动声明队列、交换机及其 阅读全文
posted @ 2022-12-05 23:39 kisshappyboy 阅读(72) 评论(0) 推荐(0) 编辑
摘要:初识MQ 1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发送邮件可以同时与多个人收发邮件,但是往往响应会有延迟。 1.1.同步通讯 我们之前 阅读全文
posted @ 2022-12-05 22:56 kisshappyboy 阅读(76) 评论(0) 推荐(0) 编辑
摘要:Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 1. 阅读全文
posted @ 2022-12-04 23:44 kisshappyboy 阅读(75) 评论(0) 推荐(0) 编辑
摘要:先来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: •代码可读性差,编程体验不统一 •参数复杂URL难以维护 Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现http请求 阅读全文
posted @ 2022-12-04 23:22 kisshappyboy 阅读(35) 评论(0) 推荐(0) 编辑
摘要:Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。 Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微 阅读全文
posted @ 2022-12-04 22:57 kisshappyboy 阅读(102) 评论(0) 推荐(0) 编辑
摘要:国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 认识和安装Nacos(安装略过) Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 2.服务注册到na 阅读全文
posted @ 2022-12-04 22:31 kisshappyboy 阅读(82) 评论(0) 推荐(0) 编辑
摘要:我们在 restTemplate方法上添加了@LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢? 1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1, 阅读全文
posted @ 2022-12-04 22:08 kisshappyboy 阅读(32) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示