- 博客(27)
- 收藏
- 关注
原创 Elasticsearch之DSL查询语法
在上一篇文章中,我们通过RestClient的Bulk操作导入了大量的hotel数据到elasticsearch,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。本篇文章会通过使用DSL来介绍elasticsearch的搜索功能。match和mulit_match的区别是什么?match:根据一个字段查询根据多个字段查询,建议精确查询常见的有哪些?term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段。
2024-08-26 22:25:12
1171
原创 Elasticsearch之RestClient的简单操作(附java代码案例)
ES官方提供了各种不同语言的客户端,来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。。其中的Java Rest Client又包括两种:本文介绍的就是Java HighLevel Rest Client客户端API。JavaRestClient操作elasticsearch的流程基本类似。核心是client.indices()方法来获取索引库的操作对象。索引库操作的基本步骤:初始化RestHighLevelClient创建XxxIndexRequest。
2024-08-20 19:08:28
756
原创 Elasticsearch之文档操作
文档操作有哪些?创建文档:POST /{索引库名}/_doc/文档id { json文档 }查询文档:GET /{索引库名}/_doc/文档id删除文档:DELETE /{索引库名}/_doc/文档id修改文档:全量修改:PUT /{索引库名}/_doc/文档id { json文档 }增量修改:POST /{索引库名}/_update/文档id { "doc": {字段}}
2024-08-15 09:49:03
277
原创 Elasticsearch之索引库操作
索引库就类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据,必须先创建“库”和“表”。MySQL说明TableIndex索引(index),就是文档的集合,类似数据库的表(table)RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式ColumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)SchemaMapping。
2024-08-15 08:52:13
655
原创 初识Elasticsearch——Elasticsearch相关知识点
什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。
2024-08-11 17:18:09
527
原创 docker安装elasticsearch
学过docker的小伙伴们,都知道用docker-compose也可以将es和kinbana容器互联,这里不用是因为,可能后续小伙伴们只需要用到es不需要kibana,所以这样便于改造。在互联网项目中,在网络传输的速度很快,所以很多语言是不允许在网络上传递的,如关于宗教、政治等敏感话题,同时一些语气助词也可以忽略,那么我们在搜索时也应该忽略当前词汇。出现了很多新的词语,在原有的词汇列表中并不词在。上面的这个GET指的是GET请求,_search指的是搜索功能,下面的就是DSL语句,表示查询所有的数据。
2024-08-10 18:56:02
1108
原创 微服务之SpringAMQP详解
RabbitMQ帮助我们实现异步处理消息,大大减少了系统的压力,但是利用官方的API来实现RabbitMQ的功能实在是太麻烦了。为了简化发送和接收的API,就出现了SpringAMQP。SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用是来非常方便。。自动声明队列、交换机及其绑定关系基于注解的监听器模式,异步接收消息封装了RabbitTemplate工具,用于发送消息什么是AMQP?应用消息通信的一种协议,与语言和平台无关。
2024-08-05 15:23:01
1141
原创 RabbitMQ的快速入门
RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的Erlang写成。
2024-08-03 15:52:43
849
原创 Docker部署RabbitMQ指南
RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官方地址:https://www.rabbitmq.com/。我们在CentOS7虚拟机中使用Docker来安装。方式一:在线拉取方式二:从本地加载可以从我的百度网盘中下载。上传到虚拟机后,使用命令加载镜像即可:2.2 安装MQ执行下面的命令来运行MQ容器:可以看到RabbitMQ已经启动起来了:然后访问http://虚拟机IP:15672/,可以看到管理界面:在界面这里输入刚刚设置的用户和密码就可以进去RabbitM
2024-08-03 11:23:33
500
原创 初识MQ——学习MQ之前需要了解的知识点
在现在的大数据时代,高并发的情况越来越普遍,系统一个不注意,就可能崩溃无法访问了。这是开发最不想看到的情况,如果是上班还好,可以分析定位。要是下班的时候,那就完了,可能美好的休息时光就没了。最惨的就比如微博奔溃,程序员结婚当天加班了。为了避免这种悲催的情况,就需要用到中间件——MQ。
2024-08-02 09:18:44
1092
原创 Docker镜像仓库
镜像仓库简单来说就是存储和管理Docker镜像的平台或服务。它允许开发人员上传自己的创建的镜像,并与团队成员共享和协作使用。
2024-08-01 21:07:36
602
原创 DockerCompose部署示例
Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。
2024-08-01 19:09:30
1145
原创 Dockerfile自定义镜像
常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。
2024-07-30 21:53:34
764
原创 Docker的基本操作
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录下。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。
2024-07-30 10:36:05
938
原创 CentOS7安装Docker
Docker分为CE和EE两大版本。CE即社区版(免费,支持周期7个月),EE即企业版,强调安全,付费使用,支持周期24个月。Docker CE分为stable、test和nightly三个更新频道。官网上有各种环境下的安装指南,这里主要介绍Docker CE在CentOS7上的安装。本文用的所有软件,都可以在最后分享的百度网盘里下载。
2024-07-28 13:28:29
1007
原创 初识Docker
在实际的微服务开发工作中,我们会有开发环境,测试环境,生产环境。我们需要在开发完成之后,部署到测试环境当中,测试完成之后再部署到生产环境。因为实际的微服务项目中,微服务模块有很多,依赖的组件很多,不用的组件之间部署时往往会产生一些冲突。这样重复部署,环境不一定一致会遇见很多问题。这时候,就出现了Docker来帮我们解决这个问题。Docker是一个开源的平台,用于开发、交付和运行应用程序。它诞生与2013年初,基于Go语言实现,dotCloud公司出品(后改名为Docker Inc)。
2024-07-27 16:56:19
1001
原创 详解网关Gateway
大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送消息,也必须经过一道“关口”,这道关口就是网关。网关又称网间连接器、协议转换器。现实中最常见的就是VPN,它就是一个出口网关。Spring Cloud Gateway 中文文档Spring Cloud Gateway提供了一个建立在Spring生态系统之上的API网关,包括:Spring 6、Spring Boot 3和project Reactor。
2024-07-24 23:22:47
1042
原创 详解Feign远程调用
作为开发来讲,在实际开发工作中,我们遇到最多的,也是最重要的就是远程调用的关系。特别是在微服务发展的这么快的新时代。服务的粒度越来越小,服务与服务之间也多了很多远程调用的关系。接下来,我会以我自己写的cloud-demo为例,来详细讲讲Feign的远程调用问题。类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送。
2024-07-22 19:13:54
1499
原创 详解Nacos集群搭建
在我们日常的开发当中,用的都是单点Nacos,这种模式,我们自己开发测试玩一玩还可以,但是到了企业的生产环境之下,你还这么玩的话,那肯定是要出大问题了。因为在企业当中,我们更加强调的是高可用,所以在企业的生产环境下,Nacos一定要做成个集群。
2024-07-19 13:31:41
3155
5
原创 详解Nacos的配置管理
Nacos除了可以做注册中心,同样可以做配置管理来使用。在Nacos中添加配置文件在微服务中引入Nacos的config依赖在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀。这些决定了程序启动时去nacos读取哪个文件通过@Value注解注入,结合@RefreshScope来刷新通过@ConfigurationProperties注入,自动刷新不是所有的配置都适合放在配置中心,维护起来比较麻烦。
2024-07-15 10:30:36
2315
原创 详解Nacos注册中心的使用
国内的公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。一级是服务,例如userservice二级是集群,例如杭州或上海三级是实例,例如杭州机房的某台userservice的服务器2.如何设置实例的集群属性修改application.yml文件,添加spring.cloud.nacos.discovery.cluster-name属性即可优先选择同集群服务实例列表本地集群找不到提供者,才会去其他集群寻找,并且会报警告。
2024-07-13 23:01:25
1821
原创 微服务之Ribbon组件
在上一篇的文中有提到,只要我们给RestTemplate这个Bean添加一个@LoadBlanced注解,就可以实现负载均衡。这里实际上就是用到了一个组件叫做Ribbon。那么,我们来了解一下,Ribbon到底是怎么来实现的。SpringCloudRibbon的底层采用了一个拦截器,拦截RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求http://userservice/user/1。
2024-07-10 15:33:17
840
原创 微服务组件之Eureka
Eureka是Netflix开发的服务发现的框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。而在我们尝试用的过程中,主要是用这个组件实现服务调用、负载均衡、容错等,实现服务发现与注册。(服务端,注册中心)和(客户端),在中又分为Provider(服务提供者)和Consumer(服务消费者)。服务提供者会在启动时,将自己的信息注册到EurekaServer,然后每隔30秒向EurekaServer发送心跳;服务消费者。
2024-07-07 17:05:16
1068
原创 微服务的服务拆分及远程调用
微服务是一种良好的分布式架构方案。它将一个项目,拆分成不同的服务模块,使得服务更加独立,服务与服务之间的耦合度更低,减少了程序员重复代码的工作量。但也是因为这种拆分,使得项目的架构更加复杂,运维、监控、部署的难度都有所提高。正是因为它是一把双刃剑,它的拆分原则和拆分时机都很重要。微服务之间的远程调用也是请求的调用,重点是需要用到RestTemplate这个实例,他能够发起各种类型的请求调用,同时能够帮我们将返回的json数据直接转换成我们需要的对象类型。
2024-06-29 14:47:55
983
原创 微服务架构以及相关技术栈介绍
微服务其实就是分布式架构中的一种,主要的作用就是将功能分散到离散的各个服务当中去,从而降低服务之间的耦合性,从而提供更加灵活的服务支持。从现实的角度来讲,就是把一个大型的单体项目和服务根据功能性的不同拆分成颗粒度更小的模块,而这些被拆分的模块,它可以独立的开发、管理和迭代。单体架构:简单方便,高度耦合,扩展性差,适合小型项目。比如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,比如:京东、淘宝。
2024-06-27 21:18:37
824
空空如也
match查询的cpoy_to的字段和multi_match多字段查询结果不一致
2024-08-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人