- 博客(154)
- 收藏
- 关注
原创 Elasticsearch 7.x入门学习(四) - 系统架构与工作流程
Elasticsearch 索引的精髓:一切设计都是为了提高搜索的性能。一个索引就是一个拥有相似特征的文档集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。能搜索的数据必须索引,这样的好处是可以提高查询速度,比如:新华字典前面的目录就可以看成是索引,通过目录定位可以提高查询速度。在Elasticsearc
2025-03-10 11:08:09
1155
原创 Elasticsearch 7.x入门学习(三) - Spring Data Elasticsearch框架
Spring Data Elasticsearch 基于 Spring Data API 简化 Elasticsearch 操作,将原始操作Elasticsearch 的客户端 API 进行封装。Spring Data 为 Elasticsearch 项目提供集成搜索引擎。Spring Data Elasticsearch POJO 的关键功能区域为中心的模型与 Elastichsearch 交互文档和轻松地编写一个存储索引库数据访问层。
2024-12-14 14:56:44
1129
原创 从零开始学习JVM(九)- 垃圾收集器
垃圾收集器没有在Java虚拟机规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的垃圾收集器版本。
2024-11-16 13:35:28
1213
1
原创 掌握RocketMQ4.X消息中间件(一)-RocketMQ基本概念与系统架构
RocketMQ是⼀款阿⾥巴巴开源的消息中间件,是一个统一消息引擎、轻量级数据处理平台。被广泛应用于互联网、大数据、移动互联网、物联网等领域的业务场景。
2024-10-06 13:27:45
1081
原创 从零开始学习JVM(八)- 垃圾回收相关概念与垃圾回收算法
Java程序中,垃圾是指运行程序中没有任何指针指向的对象,这个对象就是需要被回收的对象。如果不及时对内存中的对象进行清理,那么这些垃圾对象所占的内存空间会一直保留到程序运行结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。
2024-09-07 23:03:49
1004
原创 从零开始学习JVM(七)- StringTable字符串常量池
String应该是Java使用最多的类吧,很少有Java程序没有使用到String的。在Java中创建对象是一件挺耗费性能的事,而且我们又经常使用相同的String对象,那么创建这些相同的对象不是白白浪费性能吗。所以就有了StringTable这一特殊的存在,StringTable叫做字符串常量池,用于存放字符串常量,这样当我们使用相同的字符串对象时,就可以直接从StringTable中获取而不用重新创建对象。
2024-09-07 21:23:57
1214
原创 Elasticsearch 7.x入门学习(二) - Java API操作
备注:9200 端口为 Elasticsearch 的 Web 通信端口,localhost 为启动 ES 服务的主机名。代码地址:https://github.com/JustCoding-Hai/es-demo。创建连接,创建数据添加到文档上,没有索引的话会自动创建索引并添加文档。通过 Java API 客户端对象对 ES 索引进行操作。在idea开发工具中创建Maven项目。删除索引执行完成后再次查看索引会报错。批量插入文档后再批量删除文档。查询所有索引数据,代码示例。根据id查询文档示例。
2024-07-21 12:54:53
1083
原创 Elasticsearch 7.x入门学习(一) - 基本概念与操作
Google,百度类的网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。对于这些非结构化的数据文本,关系型数据库搜索不是能很好的支持。一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。进行全文检索需要扫描整个表,如果数据量大的话即使对 SQL 的语法优化,也收效甚微。建立了索引,但是维护起来也很麻烦,对于 insert 和 update 操作都会重新构建索引。
2024-06-01 23:49:37
1480
原创 从零开始学习JVM(六)-直接内存和执行引擎
直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存空间。执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式
2023-06-03 17:07:56
737
原创 从零开始学习JVM(五)-运行时数据区的方法区
方法区与Java堆一样,是各个线程共享的内存区域。方法区在JVM启动的时候被创建,并且它的实际物理内存空间中和Java堆区一样都是可以不连续的。方法区的大小跟堆空间一样,可以选择固定大小或者可扩展。当关闭JVM就会释放这个区域的内存。
2023-05-18 23:08:05
953
原创 从零开始学习JVM(四)-运行时数据区中的堆
《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。数组和对象可能永远不会存储在栈上。因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置。堆是GC(Garbage Collectioni,垃圾收集器)执行垃圾回收的重点区域。在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的时候才会被移除。堆是GC(Garbage Collection,垃圾收集器)执行垃圾回收的重点区域。
2023-05-16 00:17:46
487
原创 从零开始学习JVM(三)--运行时数据区(程序计数器,虚拟机栈,本地方法栈)
JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。
2023-05-14 19:58:47
482
原创 从零开始学习JVM(二)--类加载子系统
JVM中的类加载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识。类加载器只负责class文件的加载,而它是否可以运行是由执行引擎决定的
2023-05-13 20:08:18
587
1
原创 Windows系统的JDK安装与配置
注意用户变量和系统变量中都有Path环境变量。两者的区别就是:用户变量只针对当前登录的用户,而系统变量对所有用户都适用。所以修改Path环境变量时,建议直接修改系统变量中的Path。使用win+R快捷键,打开运行窗口,输入cmd,进入cmd程序窗口,使用命令java -version 查看java版本,验证是否配置成功。在系统变量下:新建一个名为“JAVA_HOME”的环境变量。这个变量值就是JDK8的安装路径。跟着安装步骤安装设置好JDK和JRE的路径,建议JDK和JRE的路径在同一个目录下,方便查找。
2023-05-03 16:41:34
2300
1
原创 Spring Cloud框架学习-Spring Cloud Config + Bus 实现配置中心
Spring Cloud Config 是一个分布式系统配置管理的解决方案。Spring Cloud Config分为服务端和客户端。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口。而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。
2022-10-29 12:55:26
1539
1
原创 Spring Boot+RabbitMQ 基于死信队列和插件实现延迟队列详解
延时队列在需要延时处理的场景下非常有用,使用 RabbitMQ 来实现延时队列可以很好的利用RabbitMQ 的特性,如:消息可靠发送、消息可靠投递、死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。
2022-10-07 22:56:50
2333
原创 Spring Cloud框架学习-Spring Cloud Zuul
由于每一个微服务的地址都有可能发生变化,无法直接对外公布这些服务地址,基于安全以及高内聚低耦合等设计,我们有必要将内部系统和外部系统做一个切割。需要一个专门用来处理外部请求的组件,就是服务网关。API网关的的定义类似于面向对象设计模式中的Facade模式,像是整个微服务架构系统的门面一样,所有的外部客户端访问都需要经过它来调度和过滤。API网关需要实现请求路由,负载均衡,校验过滤,请求转发时的熔断机制,服务的聚合等功能。
2022-10-06 17:23:24
460
原创 MySQL主从复制详解
随着业务流量的增长,一台MySQL数据库服务器已经满足不了需求了,会负载过重,容易出现宕机的情况,导致数据的丢失。这个时候就需要实现数据库的负载均衡和读写分离,来减少单台MySQL数据库服务器的压力。我们可以通过使用MySQL内置的复制功能来搭建MySQL一主一从或一主多从的集群环境。主服务器只负责写,而从服务器只负责读,从而减少单台MySQL数据库服务器的压力。
2022-09-29 00:37:31
6621
原创 MySQL锁机制详解-表锁与行锁
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机资源,如CPU、RAM、I/O等的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题。此外,锁冲突也是影响数据库并发访问性能的一个重要因素。
2022-09-04 23:43:33
13987
3
原创 Spring Boot多数据源配置并通过注解实现动态切换数据源
Spring Boot提供了AbstractRoutingDataSource 根据用户定义的规则选择使用的数据源,这样我们可以在每次数据库操作前设置使用的数据源,实现可动态路由的数据源,从而实现读写分离的功能。
2022-07-31 19:03:41
6171
6
原创 MongoDB的安全认证详解
默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,在实例本机服务器上都可以随意连接到实例进行各种操作,MongoDB不会对连接客户端的请求进行用户验证,这是非常危险的。
2022-07-25 01:24:52
7454
原创 MongoDB分片集群的搭建和使用
分片(sharding)是一种跨多台机器分布数据的方法, MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署。换句话说:分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以储存更多的数据,处理更多的负载。............
2022-07-17 21:00:38
1241
2
原创 Spring Cloud框架学习-Spring Cloud Gateway
Spring Cloud Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和 Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能, 例如:熔断、限流、重试等。..................
2022-07-06 00:41:53
1410
2
原创 Spring Cloud框架学习-Spring Cloud OpenFeign
Spring Cloud OpenFeign 是声明式的服务调用组件,它整合了 Ribbon 和 Hystrix,拥有负载均衡和服务容错的功能。一开始这个组件不叫这个名字,一开始就叫 Feign,但是 Netflix 中的组件现在已经停止开源工作,OpenFeign 是 Spring Cloud 团队在 Netflix Feign 的基础上开发出来的声明式服务调用组件。...
2022-07-02 23:33:52
1346
原创 Spring Cloud框架学习-Spring Cloud Consul
Consul 是 HashiCorp 公司推出来的开源产品。主要提供了:服务发现、服务隔离、服务配置等功能。相比于 其他注册中心组件Eureka 和Zookeeper,Consul 配置更加一站式,因为它内置了很多微服务常见的功能:服务发现与注册、分布式一致性协议实现、健康检查、键值对存储、多数据中心等,我们不再需要借助第三方组件来实现这些功能。...............
2022-06-28 00:18:23
845
原创 Spring Cloud框架学习-Spring Cloud Sleuth
Spring Cloud Sleuth 是 Spring Cloud 提供的一套分布式链路追踪系统。它可以直观地展示出一次请求的调用过程。
2022-06-26 16:48:44
768
原创 Spring Cloud框架学习-Spring Cloud Hystrix
Spring Cloud Hystrix 是Spring Cloud Netflix 子项目的核心组件之一,Hystrix 叫做断路器/熔断器。Hystrix具备服务降级、服务熔断、线程隔离、请求缓存、请求合并及服务监控等强大功能。
2022-06-23 10:16:20
220
原创 MongoDB副本集详解与搭建
MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务。 副本集可提供冗余和高可用性,是所有生产部署的基础。也可以说,副本集类似于有自动故障恢复功能的主从集群。
2022-06-05 23:33:22
5301
2
原创 Spring Cloud框架学习-Spring Cloud Stream
Spring Cloud Stream 用来构建消息驱动的微服务。Spring Cloud Stream 中,提供了一个微服务和消息中间件之间的一个粘合剂,这个粘合剂叫做Binder,Binder 负责与消息中间件进行交互。而我们开发者则通过 inputs 或者 outputs 这样的消息通道与Binder 进行交互。
2022-03-08 22:55:33
2527
原创 Spring Cloud框架学习-注册中心Spring Cloud Eureka
在传统的RPC框架中,管理每个服务与服务之间依赖关系比较复杂,而使用注册中心可以很好的实现服务治理。Eureka注册中心可以管理服务之间的依赖关系,实现服务的注册与发现,服务间的调用,负载均衡。...
2022-02-27 13:47:19
588
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人