微服务
文章平均质量分 55
介绍微服务相关知识
Gratitute_林腾
努力学习的程序员,菜就多练!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ES-自动补全_拼音分词器_自定义分词器
其中,过滤器还有其他属性设置,可参考https://github.com/medcl/elasticsearch-analysis-pinyin测试先配置并创建索引库# 自定义拼音分词器PUT /test},"py":{},"name":{"text":["如家酒店还不错"],注意。原创 2025-01-03 14:16:48 · 343 阅读 · 0 评论 -
ES-聚合
设置第一个size为0,效果是结果中不包含文档,只包含聚合结果,这样可以减少数据传输时的网络负担。注意:所有的聚合都是针对文档中的某个字段去做的,且参与聚合的字段只能是不分词的字段。注意:因为是在分类的基础上做度量聚合,所有度量聚合是写在桶聚合里面的。原创 2025-01-02 18:15:22 · 389 阅读 · 0 评论 -
ES-JavaRestClient查询_高亮显示
可以看到,最后解析出来的结果时没有高亮的,因为我们解析的是_source字段,该字段保存的是源数据,不会发生变化。所以我们需要专门解析highlight字段才行。原创 2025-01-02 09:10:42 · 387 阅读 · 0 评论 -
ES-JavaRestClient_排序和分页
【代码】ES-JavaRestClient_排序和分页。原创 2024-12-31 09:12:28 · 178 阅读 · 0 评论 -
ES-JavaRestClient查询_构建查询条件
在DSL语句中,filtermust等是接收数组的参数,这意味着可以传入多个值。因此,在 Java 客户端中,也可以多次调用filtermust等方法,内部会通过集合或数组来接收这些值。原创 2024-12-30 09:14:51 · 314 阅读 · 0 评论 -
ES-JavaRestClient查询_快速入门
查询通过QueryBuilder进行构建,QueryBuilder是一个接口,其内部有很多不同的实现,对应各种不同的叶子查询,但是我们不需要自己去new QueryBuilder,我们只需要使用工具QueryBuilders,它提供了很多静态方法,可以帮助我们构建各种不同的查询。原创 2024-12-29 15:28:01 · 284 阅读 · 0 评论 -
ES-DSL查询_高亮显示
在 Elasticsearch (ES) 中,高亮显示是搜索结果中常用的功能,它允许你突出显示匹配查询的文本片段,以便用户更容易识别搜索的相关部分。当你在 Elasticsearch 中执行查询时,ES 会分析文档中的文本并根据查询条件返回匹配的文档。如果启用了高亮显示功能,ES 会自动标记出与查询匹配的部分(如关键词),并用特定的格式(如 HTML 标签)突出显示。这对用户来说是非常直观的,能够帮助他们快速定位到搜索结果中最相关的内容。注: 字段包含原始的文档数据,不包括高亮标记,因为它存储的是未修改的原原创 2024-12-29 13:46:09 · 356 阅读 · 0 评论 -
ES-深度分页问题
看起来是只查10个,但其实需要找出前1000个才行,所以查询的思路是:先对数据进行排序,找出前1000条数据,再从前1000条数据里找出990~1000的数据。图中有4个分片,要找出前1000条数据,并不是找出每个分片的前250条数据,因为并不能保证每个分片的排序后的前250条数据加起来一定是前1000条数据。打个比方,假设一个学校有10个班,现在要找出年级前10的学生,并不是说找出每个班的第1名,合在一起就是年纪前10。原创 2024-12-29 10:35:18 · 332 阅读 · 0 评论 -
ES-DSL查询_排序和分页
我们可以指定多个排序的字段,如果我们指定了多个字段,就会先按照数组中的第一个字段进行排序,在第一个字段值一样的情况下,再按照第二个字段进行排序,依此类推。一旦做了排序,就不会再打分了,因为没有意义。默认是按打分排序,而现在是自己指定的排序,所以没必要打分了。原创 2024-12-28 15:48:38 · 219 阅读 · 0 评论 -
ES-DSL查询_复合查询
参与算分的字段越多,条件也就越多,将来计算得分时,消耗的性能也会越多,效率也会变低,因此,能不参与算分的、不需要参与算分的字段,我们尽可能都不让其参与算分。通常情况下,用户输入关键字搜索时,应该对其算分;但是像那些用来做过滤筛选的匹配时,我们通常都不会让其参与算分。在关键字(如must、should等等)后面,可以放入多个叶子查询。原创 2024-12-28 13:55:22 · 292 阅读 · 0 评论 -
ES-DSL查询_叶子查询
接下来主要学习全文检索和精确查询。原创 2024-12-28 09:27:24 · 327 阅读 · 0 评论 -
ES-DSL查询_快速入门
"match_all"类型表示查询所有,所有不需要写查询条件。这是查询的主要部分,包含了与查询匹配的文档信息。包含了商品的具体信息字段。原创 2024-12-24 14:15:54 · 363 阅读 · 0 评论 -
ES-JavaRestClinet_索引库操作
要想成功运行,es和lucene的版本必须兼容,我的elasticsearch的依赖版本是7.12.1,与它兼容的lucene版本是8.8.0创建索引库下面提供模板代码,用于复制粘贴创建索引库静态常量定义删除索引库查询索引库总结原创 2024-12-22 10:43:53 · 330 阅读 · 0 评论 -
ES-JavaRestClient_客户端初始化
这段代码是一个针对 Elasticsearch 客户端连接的测试代码,使用的是 JUnit 5 框架和 Elasticsearch Java 高级客户端 (然后再test/java下创建同名软件包。注意:IP地址要换成自己虚拟机的IP。原创 2024-12-21 15:59:40 · 435 阅读 · 0 评论 -
ES-文档操作_新增、查询、删除、修改文档
注意事项如果指定的id存在,则会删除旧文档,添加新文档,此时是修改操作。如果指定的id不存在,则会直接添加新文档,可以看成新增文档操作,它与之前提到的新增文档操作的区别在于:put方式必须指定id,否则会报错。如果要修改的字段值比较多,建议用全量修改;如果要修改的字段值比较少,建议用增量修改原创 2024-12-21 10:09:41 · 679 阅读 · 0 评论 -
ES-操作索引库_创建索引库_查、删、改索引库
DSL语句只要会复制、粘贴、修改就行了,不需要从0开始写。原创 2024-12-19 14:59:02 · 356 阅读 · 0 评论 -
ES-操作索引库_mapping属性
对于字段数据类型,只有text类型会分词,其他类型都不会进行分词。像邮箱这种分词后没有意义的数据,就应该设置为keyword,而不是text。在es中,并没有数组类型,但允许某一个类型的字段有多个值,所以图中score的类型应该是double或float,而不是数组类型属性决定是否为字段创建倒排索引,默认值为。如果字段的设置为,则会创建倒排索引,字段可以参与搜索。反之,若设置为,则不会创建倒排索引,该字段就不能用于搜索。字段默认都设置为,即都能参与搜索。但在实际开发中,并非所有字段都需要参与搜索,尤其是一些原创 2024-12-19 14:35:07 · 345 阅读 · 0 评论 -
ES-安装IK分词器
可以看到,kibana默认的分词器,对英文分词还可以,但对中文的分词效果并不好,都是逐字分词的。原创 2024-12-18 22:35:53 · 818 阅读 · 0 评论 -
ES-安装Kibana
在之前,我们使用的是elasticsearch的7.12.1版本的镜像,所以Kibana的版本也必须是7.12.1(Kibana的版本一定要与es的版本一致),该镜像的体积非常大,有1G左右,所以不建议大家自己pull。Kibana提供了一个DevTools工具,可以让我们非常方便地编写ES中的DSL语句,从而操作ES。在前言提到的参考博客中,已经将es部署在了es-net网络中,所以Kibana也要部署在该网络中。所以,Kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。原创 2024-12-18 14:40:17 · 439 阅读 · 0 评论 -
ES-安装es
总结:这条命令启动一个 Elasticsearch 7.12.1 容器,配置为单节点模式,使用自定义的内存设置,挂载数据和插件卷,授予额外权限,并通过端口 9200 和 9300 提供访问。这里没有使用Docker Compose(一键互联),因为将来我们可能不需要Kibana,只需要es,所以这里使用单独部署的方式。我们使用的是elasticsearch的7.12.1版本的镜像,该镜像的体积非常大,解决1G,所以不建议大家自己pull。如果看到这些信息,说明确实启动成功了。原创 2024-12-18 14:11:26 · 954 阅读 · 0 评论 -
ES-es和mysql的概念对比
目录文档索引概念对比架构总结原创 2024-12-18 10:30:38 · 239 阅读 · 0 评论 -
ES-倒排索引
在数据库中,通常会基于 字段创建索引,并形成一个 B+ 树结构,这样在进行基于 的检索时,速度会非常快。这种索引方式称为正向索引。然而,如果查询的字段不是 ,而是像标题这样的普通字段,且标题内容较长,通常不会为其创建索引。即便为其创建了索引,如果使用模糊匹配,索引也无法发挥作用。在这种情况下,数据库会逐条扫描数据,检查每一条记录是否包含匹配的关键字。如果包含,则将其加入结果集;如果不包含,则丢弃该记录。这样逐条地去扫描,最终一定可以拿到完整的结果集,但是如果这张表有一千万条数据,那就意味着要扫描一千万次原创 2024-12-17 21:47:43 · 426 阅读 · 0 评论 -
ES-什么是elasticsearch
什么是elastic stack(ELK)?elastic stack(ELK)是以elasticsearch为核心的技术栈,包括beats、logstash、kibana、elasticsearchKibana、Logstash、Beats都是可替换的组件,换句话说,就是这些都是官方提供的,我们可以选择用,也可以选择不用。但是Elasticsearch是不可替代的,它是核心。原创 2024-12-17 15:40:58 · 334 阅读 · 0 评论 -
微服务-网关登录校验_思路分析
网关是一个独立的微服务,其他的服务也是独立的微服务,它们部署在不同的tomcat上,而ThreadLocal是在tomcat内部的线程之间共享数据,而现在网关和那些微服务都是在不同的tomcat上,显然不能用ThreadLocal来共享数据。比较类似,都是http请求,所以这里也可以将用户信息保存到请求头,不过要注意:微服务之间的http请求是基于OpenFeign发起的,而网关到微服务的http请求则是网关内置的一种http请求方式。因为将信息放到请求头中,并不会对业务产生影响。原创 2024-11-05 15:55:32 · 77 阅读 · 0 评论 -
微服务-网关路由_路由属性
如果配置的过滤器想对所有的路由器生效,可以在routes属性同级的位置,配置default-filters。原创 2024-11-05 14:24:00 · 255 阅读 · 0 评论 -
微服务-什么是网关
如上图所示,以后,前端只需要知道网关的地址即可,前端所有的请求都去请求8080端口,就会到达网关,网关再根据前端的请求去判断应该由哪个微服务来处理这个请求,比如判断出该请求是在查商品,那么自然就会知道该请求应该由商品微服务处理,而这个判断的过程,就是请求的路由。所有的微服务一启动,都会把自己的信息注册到注册中心,而网关其实也是一个微服务,它启动了之后,也可以去注册中心拉取所有的服务地址,这样一来,网关就可以清楚地知道所有微服务的地址了,而且将来如果微服务地址有变更,注册中心也会推送给网关。原创 2024-10-31 14:50:32 · 430 阅读 · 0 评论 -
MybatisPlus常用注解分析
在一中所讲的原理是遵循了约定大于配置的原则。也就是说,只要给出的实体类满足约定,就不需要我们进行手动配置,MybatisPlus会自动帮我实现增删改查功能。但是如果我们的实体类不完全符合约定,就需要我们进行手动配置,自己去定义表名、字段名和主键名。那如何自定义配置呢?MybatisPlus为我们提供了一些注解来进行自定义配置。接下来我讲介绍比较常用的三个注解。原创 2024-04-27 08:24:45 · 1358 阅读 · 1 评论 -
MyBatisPlus条件构造器
MyBatisPlus支持各种复杂的where条件,可以满足日常开发的所有需求。BaseMapper接口用于提供增删改查方法,并且也支持传入Wrapper类型的参数,而Wrapper就是通过条件构造器,我们就不需要在XXMapper.xml文件中写sql语句了,直接用条件构造器构造就行了。原创 2024-05-03 17:06:19 · 1351 阅读 · 0 评论 -
docker-DockerCompose
在命令的结尾,可以加一个-d,让它后台运行。原创 2024-08-29 21:46:56 · 258 阅读 · 0 评论 -
docker-数据卷挂载
在 Docker 中,数据卷(Volume)是用于持久化和共享容器数据的重要机制。数据卷的主要作用和好处如下:持久化数据:数据共享:分离存储和计算:提高性能:简化迁移和备份:安全性和隔离:挂载的动作一定是在docker run的时候执行,如果容器已经创建了,则无法再做挂载,所以如果之前的容器没有挂载,只能将之前的容器删掉,然后重新创建并挂载。原创 2024-08-01 19:35:39 · 245 阅读 · 0 评论 -
docker-部署mysql
因此它在运行时就有自己独立的环境,就可以跨系统运行,也不需要手动配置环境了。而且,这种安装方式完全不用考虑运行的操作系统环境,它不仅仅在CentOS系统是这样,在Ubuntu系统、macOS系统、甚至是安装了WSL的Windows下,都可以使用这条命令来安装MySQL。可以发现,当我们执行命令后,Docker做的第一件事情,是去自动搜索并下载了MySQL,然后会自动运行MySQL,我们完全不用插手,非常方便。注意,连接之前,要将虚拟机的防火墙关闭,否则,本地计算机将连不上虚拟机的mysql。原创 2024-07-29 07:53:41 · 285 阅读 · 0 评论 -
MyBatisPlus-分页插件的基本使用
可以看到,我们定义了一个配置类,在配置类里声明了一个Bean,这个Bean的名字叫做mybatisPlusInterceptor,从这个名字可以推测出mp的插件是基于拦截器做的,它会拦截业务sql语句的执行,并去实现各种各样的扩展功能。限制分页查询的上限可以避免一次网络传输查询过多数据,而导致服务器,数据库的压力过大。首先,要在配置类中注册MyBatisPlus的核心插件,同时添加分页插件。调用分页查询的方法,这个地方只传了page,没有传第二个参数,表明没有查询的过滤条件,只做分页和排序。原创 2024-07-07 20:39:06 · 371 阅读 · 0 评论 -
安装docker
进入目录 /etc/yum.repos.d。最后,执行命令,安装Docker。将对应的内容替换为下面的代码。则需要添加阿里的镜像。原创 2024-05-24 10:19:34 · 359 阅读 · 0 评论 -
docker-数据卷挂载和本地目录挂载的区别
【代码】docker-数据卷挂载和本地目录挂载的区别。原创 2024-08-01 20:09:10 · 641 阅读 · 0 评论 -
MybatisPlus介绍
MybatisPlus是针对Mybatis框架的增强和升级,但它并不是用来替代Mybatis的。原创 2024-04-25 19:39:47 · 470 阅读 · 0 评论 -
docker-容器网络互连
因为可以通过容器名访问,所以不需要知道对方的ip地址,只需要知道容器名就行了。容器不过重启多少次,它的容器名是不会变的,因为可以通过容器名访问,所以即使ip地址变化也没关系,在代码中配置好访问的地址是容器名即可。原创 2024-08-05 19:22:38 · 496 阅读 · 0 评论 -
docker-自定义镜像
节省存储空间:镜像分层允许共享相同的基础层。如果多个镜像基于同一个基础镜像,只需存储一份基础层的数据,减少了存储空间的占用。高效构建:Docker镜像的构建过程使用了分层缓存机制。每一层都是只读的,只有最上层(可写层)可以被修改。如果某一层的内容没有改变,Docker会使用缓存的这一层,而不需要重新构建,从而加快了构建速度。便于分发:镜像分层使得传输和分发更高效。因为镜像由多层组成,只有改变的层需要被上传或下载,这减少了数据传输的量。便于维护和更新:可以单独更新某一层,而不必重新构建整个镜像。例如,操作系统原创 2024-08-02 20:31:28 · 343 阅读 · 0 评论 -
mybatisPlus-DB静态工具
方法跟mybatisplus的service接口非常像,静态工具可以避免依赖循环注入。原创 2024-05-24 08:47:45 · 221 阅读 · 0 评论 -
MybatisPlus-Service接口
MybatisPlus不仅提供了mapper接口,也提供了service接口,开发者可以继承这些service接口,这样,一些基础的增删改查代码就也不需要书写了。原创 2024-05-19 09:05:13 · 1766 阅读 · 0 评论 -
MybatisPlus入门案例详解
自定义的Mapper继承MybatisPlus提供的BaseMapper接口(泛型为我们想要操作的表的实体类型,这里为User):BaseMapper接口已经提前定义好了大量的增删改查方法。因为我们定义的Mapper继承了BaseMapper,所以我们可以直接使用这些方法我们使用MybatisPlus后,对于单表的操作,就不需要自己手动写sql语句了,直接让mapper继承BaseMapper,"?"为你想操作的表对应的实体类,然后直接调用里面的方法即可。原创 2024-04-26 16:07:49 · 1253 阅读 · 2 评论
分享