自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 超实用高并发编程ExecutorCompletionService案例分析与源码解读

假设现在有一大批需要进行计算的任务,为了提高整批任务的执行效率,你可能会使用线程池,向线程池中不断submit异步计算任务,同时你需要保留与每个任务关联的Future,最后遍历这些Future,通过调用Future接口实现类的get方法获取整批计算任务的各个结果。

2023-04-19 14:31:48 216

原创 阿里开源组件Nacos实战操作之安装部署完整版

好记性不如烂笔头,记录下来的才是永恒!这里是Java实战技术大本营,诚邀关注。本文已收录入GitHub,GitHub搜【wind7rui/JavaHub】。

2023-04-19 14:22:26 352

原创 实战级详解Spring框架中引入阿里开源组件Nacos作配置中心

先来聊聊配置中心是什么,以及为什么要使用配置中心。简单的说,配置中心是可以集中、灵活、动态的管理系统中的各种配置参数的配置管理产品,例如增、删、改、查功能开关、数据库连接配置、服务请求地址等。所谓集中,就是有统一管理的平台;灵活,不需要修改代码,做到自动匹配赋值、配置隔离;动态,不需要通过重启服务来使变更生效,主动推送或拉取变更的值。对于配置参数,早期很传统的做法是通过程序硬编码的方式,将参数值写到代码中,如果要改变参数值,不仅要修改代码,还需要重新部署。

2023-04-19 14:19:34 235

原创 深入Spring Boot :web.xml去哪了

至此,我们已经了解了web.xml是如何被替换的,我们也发现框架封装的东西越来越多,集成度也越来越高,框架虽好,如果我们不了解来龙去脉,只做一个工具的使用者,时间久了,我们也就是一个工具人,所以,研究一下why、what和how很有必要。

2023-04-19 14:13:49 545

原创 【七千字】教你如何用MySQL分析查询语句Explain

因为id列是int型所以真实数据占4个字节,

2023-04-19 13:54:21 145

原创 互联网工程师Java面试八股文及答案整理(2023最新版)

基本上这样感慨的分为两类人,,虽然挂着,但肚子里货少,也没啥拿得出手的项目,自己还意识不到问题;,自身有技术追求,但欠点儿火候,多练习多吸收知识,锤炼一下问题不大。,早几年也是心比天高,觉得自己特了不起,结果往往一面试就发虚,大部分人都经历过这样一个不自知的阶段。后面见识多了,再主动多跟着大佬学习,就能相对顺利地随着经验积累增多一路涨起来。最近在发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~

2023-04-19 13:40:26 505

原创 准备2023金三银四的Java程序员:40+文档5000+页面试资料来啦

最近有不少小伙伴在后台私信跟小编说,想进大厂,但是又怕掌握的知识不全面。面试发挥不好。鉴于这种情况,最近整理了一些2022最新Java后端大厂面试题,这些资料40多份,拢共估计最少有5000页,它们帮助过很多小伙伴进了心仪的大厂。现在开放分享给大家。希望对大家有所帮助。

2023-04-19 13:33:25 65

原创 SpringBoot2.x系列教程——整合使用JPA

JPA是Sun官方提出的Java持久化规范,是Java Persistence API的简称,中文名‘Java持久层API’,它本质上是一种ORM规范。JPA通过 JDK 5.0 的 注解或XML 两种形式来描述 ‘对象–关系表’ 的映射关系,并将运行期的实体对象持久化到数据库中。

2023-04-19 13:16:46 229

原创 基于 Kafka 和 Elasticsearch 构建实时站内搜索功能的实践

为了构建一个快速、实时的搜索引擎,我们必须做出某些设计决策。直接在 MySQL 数据库中查询用户在搜索框中输入的每个关键词,就像 %#{word1}%#{word2}%… 这样。使用一个高效的搜索数据库,如 Elasticsearch。考虑到我们是一个多租户应用程序,同时被搜索的实体可能需要大量的关联操作(如果我们使用的是 MySQL 一类的关系型数据库),因为不同类型的产品有不同的数据结构,所以我们还可以能需要同时遍历多个数据表来查询用户输入的关键词。

2023-04-18 14:57:39 172

原创 「云原生」Elasticsearch + Kibana on k8s 讲解与实战操作

Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎。Elasticsearch是用Java开发的,根据Apache许可条款作为开源发布。官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/master/getting-started.html。

2023-04-18 14:53:41 137

原创 清华学姐精心整理的超全Java资料,非常适合应届生学习,带走

从入门教程到精通实战项目,适用于应届生和有基础的各类人士,各种Java资料小编已准备好,剩下的就要靠大家加油啦。今天小编给大家送上的是清华学姐精心整理的Java的超全资料~Java实战项目(含源码)

2023-04-18 14:33:36 75

原创 Solr和Elasticsearch,搜索框架怎么选?

Lucene 的主要功能是提供全文搜索,它能够对大量的文本进行快速索引和搜索。除此之外,Lucene 还提供了一些高级搜索功能,如短语搜索、通配符搜索、模糊搜索和近似搜索等。Lucene 是一个高度可定制和可扩展的搜索引擎库,可以用于构建各种搜索应用程序,如 Web 搜索、企业搜索、电子邮件搜索、桌面搜索和移动设备搜索等。它还支持多种语言,包括英语、中文、日语等。

2023-04-18 14:17:25 184

原创 吃透这万字,谁还不是个ElasticSearch操作老手?

由于它支持任意数目的集群( 1- N ),所以不能像 Zookeeper 那样限制节点必须是奇数,也就无法用投票的机制来选主,而是通过一个规则,只要所有的节点都遵循同样的规则,得到的信息都是对等的,选出来的主节点肯定是一致的。对文档的新建、索引和删除请求都是写操作,必须在主分片上面完成之后才能被复制到相关的副本分片,ES为了提高写入的能力这个过程是并发写的,同时为了解决并发写的过程中数据冲突的问题,ES通过乐观锁的方式控制,每个文档都有一个 _version (版本)号,当文档被修改时版本号递增。

2023-04-18 14:05:57 168

原创 阿里内部整理的Java核心知识点和面试官常问到的知识点,压压惊

是薪资层面的数字简单累积,而是一个人在职场里、在专业领域、在技术上的层层突破和能力塑造,从而建立自己的个人价值。即使面对裁员,也依旧具备不可替代的竞争力;面临危机,也可能会遇到新的机遇和更好的选择。

2023-04-18 13:51:29 116

原创 Linux:管道命令与文本处理三剑客(grep、sed、awk)

1 管道命令(pipe)介绍众所周知,bash命令执行的时候会输出信息,但有时这些信息必须要经过几次处理之后才能得到我们想要的格式,此时应该如何处置?这就牵涉到 管道命令(pipe) 了。管道命令使用的是|这个界定符号。另外,管道命令与连续执行命令是不一样的,这点下面我们会说明。我们先来看一个管道命令的例子。假设我们需要看/etc目录下有多少文件,那么可以利用ls /etc来查看,不过由于文件数量太多,导致一口气就将屏幕塞满了,而不知道前面输出的内容是啥:total 944。

2023-04-18 13:23:11 267

原创 阿里内部出品的这5份Java资料的含金量有多高,你不会还不知道吧

秋招过去也是有一个月有余了,该说不说顺利的伙计已经拿下offer了,肯定还有部分的伙计还在苦苦挣扎中,这里小编只说一句话,革命还未成功,同志们仍需努力哈哈哈,拿下offer了才能稳稳当当的坐住,坐踏实,那么问题来了,有些伙计在做面试准备的时候总是会抓不到重点,忽略一些重要的东西,或者说是做的准备没有成功对上,导致自己败下阵来.

2023-04-18 11:12:32 96

原创 实用 Java微服务随机掉线排查思路解析

输出堆栈jstack -l 25944 >heap.txt,但是提示无法进入进程,无奈使用添加-F(这个参数的堆栈少了很多信息),jstack -F -l 25944 >heap.txt。23.升级完内核并重启后机器后,观察两天至今,这个问题不存在了,谁能想到这个问题居然是因为Linux内核的BUG引起的,不得不佩服第一个发现这个BUG的大佬。1.进阿里云控制台查看故障机器近期的各项指标,但是发现故障机器的指标有重要的几项丢失,内存使用率,cpu使用率,系统负载均不显示。,arthas无法进入->…

2023-04-17 15:52:05 220

原创 万字详谈SpringBoot多数据源以及事务处理

此种方式使用起来分层明确,不存在任何冗余代码,不足地方就是每个库都需要对应一个配置类,该配置类中实现方式都基本类似,该种解决方案每个配置类中都存在事务管理器,因此不需要单独再去额外的关注。关于采用Spring AOP方式实现原理就是把多个数据源存储在一个 Map中,当需要使用某个数据源时,从 Map中获取此数据源进行处理。

2023-04-17 15:48:35 142

原创 如果有一天当你的Redis 内存满了,该怎么办?

我们知道redis是一个非常常用的内存型数据库,数据从内存中读取是它非常高效的原因之一,那么但是如果有一天

2023-04-17 15:47:05 610

原创 实战 MySQL 高可用架构

对于 MySQL 数据库作为各个业务系统的存储介质,在系统中承担着非常重要的职责,如果数据库崩了,那么对于读和写数据库的操作都会受到影响。如果不能迅速恢复,对业务的影响是非常大的。之前 B 站不是出过一次事故么,2 小时才恢复过来,详细可以看之前写的文章。B 站崩了,总结下「高可用」和「异地多活」上次折腾完 ELK 日志检索平台后,开发环境可以正常查询日志了。最近在做系统高可用相关的工作,这次我来分享下 MySQL 双主 + Keepalived 的高可用落地和踩坑之路。一文带你搭建一套 ELK Stack

2023-04-17 15:45:28 334

原创 Linux 修改系统时间的两种方式

通过相关工具来手动修改系统的时间。

2023-04-17 15:43:30 27977

原创 分布式文件系统FastDFS

在内存中记录集群中group和storage server的状态信息,是连接Client和Storage server的枢纽。FastDFS支持HTTP方式下载文件,不建议使用内置web server,推荐使用外部web server,如果apache或nginx。文件ID由FastDFS生成,作为文件访问凭证。只有两个角色,tracker server和storage server,不需要存储文件索引信息。client询问tracker可以下载指定文件的storage,参数为文件ID(组名和文件名);

2023-04-17 15:42:30 786

原创 600+ 道 Java面试题及答案整理(建议收藏)

程序源整理了 最近几年最新、最全的 Java 面试题,题目涉及 Java 基础、集合、多线程、IO、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等。

2023-04-17 15:39:21 262

原创 2023最新整理上千道Java面试攻略,近500页PDF文档

很多朋友对面试不够了解,不知道如何准备,对面试环节的设置以及目的不够了解,因此成功率不高。通常情况下校招生面试的成功率低于1%,而社招的面试成功率也低于5%,所以对于候选人一定要知道设立面试的初衷以及每个环节的意义,有的放矢…

2023-04-17 15:34:09 647

原创 精华 Redis 知识总结

与 RDB 不同的是,后台子进程持久化过程中,主进程会记录期间的所有数据变更(主进程还在服务),并存储在。当磁盘的 IO 负载很高,那这个后台线程在执行 AOF fsync 刷盘操作(fsync 系统调用)时就会被阻塞住, ,紧接着,主线程又需要把数据写到文件内存中(write 系统调用),但此时的后台子线程由于磁盘负载过高,导致 fsync 发生阻塞,迟迟不能返回,那主线程在执行 write 系统调用时,也会被阻塞住,直到后台线程 fsync 执行完成后,主线程执行 write 才能成功返回。

2023-04-14 13:42:18 146

原创 聊一聊Redis官方置顶推荐的Java客户端Redisson

这样的设计前提是开发人员对这个自动解锁时间的力度有一个很好的把握,太短了可能会出现任务没做完锁就失效了,而太长了在出现程序宕机或业务节点挂掉时,其它节点需要等很长时间才能恢复,而难以保证业务的SLA。接下来,我们一起聊一下Redisson中如何轻松操作Redis中的字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets),以及如何使用Redisson实现的布隆过滤器和分布式锁,最后分析一下Redisson中分布式锁的解决方案¬。

2023-04-14 11:30:26 164

原创 Java开发人员必知的常用类库,这些你都知道吗?

Nacos的动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。3.Spring Cloud Spring Cloud为开发人员提供了丰富的使用工具,开发人员基于这些工具可以快速构建分布式系统中的一些常见功能(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话等)。Guava是Google的一组核心Java库,其中包括新的集合类型(例如多图和多集),不可变的集合,图形库以及用于并发,I / O,哈希,缓存,基元,字符串等的实用程序!

2023-04-13 15:50:09 771

原创 有史以来最完整包SpringBoot学习笔记整合,该有的应有尽有

1、SpringBoot 简介1.1 SpringBoot 快速入门1.1.1 开发步骤创建新模块,选择Spring初始化,并配置模块相关基础信息选择当前模块需要使用的技术集开发控制器类运行自动生成的Application类1.1.1.1 创建新模块选择 Spring Initializr ,用来创建 SpringBoot 工程打包方式这里需要设置为 Jar选中 Web,然后勾选 Spring WebJava 版本选 Java8pom.xml 文件预览。

2023-04-13 15:37:17 150

原创 深入Spring Boot(一):快速入门

解决这个问题可以通过断点调试或IDEA里的查找调用来获取调用方,无论哪种方式都可以发现是ConfigurationClassParser类的parse方法间接调用的,在parse方法中完成了需要自动配置类的初始化,进而完成一些默认的配置。在使用Spring框架进行开发的过程中,需要配置很多Spring框架包的依赖,如spring-core、spring-bean、spring-context等,而这些配置通常都是重复添加的,而且需要做很多框架使用及环境参数的重复配置,如开启注解、配置日志等。

2023-04-13 13:26:13 48

原创 聊聊Java中的mmap

当我们读取或修改大文件时,传统的文件I/O操作可能会变得很慢,这时候mmap就可以派上用场了。mmap(Memory-mapped files)是一种在内存中创建映射文件的机制,它可以使我们像访问内存一样访问文件,从而避免频繁的文件I/O操作。使用mmap的方式是在内存中创建一个虚拟地址,然后将文件映射到这个虚拟地址上。这个映射的过程是由操作系统完成的,它会将文件中的数据按需加载到内存中,而不是一次性加载整个文件。这样,我们可以通过指针操作这个虚拟地址,就像访问内存一样来读取或者修改文件内容。

2023-04-13 11:50:04 495

原创 Java 20 发布

根据 Oracle 官方透露,在 Java 20 中,在标记为固定的 2314 个 JIRA 问题中,1595 个是由甲骨文完成的,而 719 个是由 Java 社区的其他成员贡献的。它是 JDK 实现的轻量级的线程,可以减少编写、维护和观察高吞吐量并发应用程序的工作。须臾之间,Java 的版本来到了 20,这一版本是在 Oracle 将 Java 发布周期改为六个月之后上线的第 11 个功能版本,如今可在 Oracle 网站直接下载使用(https://www.oracle.com/java/)。

2023-04-13 11:10:21 100

原创 我终于搞懂了Java8 Stream流式编程,它竟然可以让代码变得简洁?

流(Stream)是对数据进行连续处理的抽象概念,可以看作数一种迭代器,按步骤处理数据元素。流的创建方式包括从集合、数组、文件等数据源获取输入流或者输出流,或者通过网络连接获取到网络流,例如Kafka 的流处理。常见的使用场景包括从大型数据源读取、过滤、数据转换、聚合等操作。​ 并行流是指通过将数据按照一定的方式划分成多个片段分别在多个处理器上并行执行,这就意味着,可能处理完成的数据顺序与原先排序好的数据情况是不一致的。

2023-04-12 11:50:24 197

原创 Java开发中常用的框架有哪些?

框架(Framework)"一词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架。在编程领域,框架就是应用程序的骨架,开发人员可以在这个骨架上加入自己的东西,搭建出符合自己需求的应用系统。

2023-04-12 11:09:15 92

原创 Java:单体架构有哪些局限和问题?

随着互联网技术的发展,传统的应用架构已满足不了实际需求,微服务架构就随之产生。那么传统应用架构到底出了什么问题呢?又如何解决?接下来我们将从传统单体架构的问题开始,对为什么需要微服务架构进行详细讲解。

2023-04-12 10:11:52 222

原创 Java教程:NIO的基本用法

NIO是New I/O的简称,与旧式基于流的I/O相对,从名字上来看,它表示新的一套I/O标准。它是从JDK1.4中被纳入到JDK中的。与旧式的IO流相比,NIO是基于Block的,它以块为单位来处理数据,最为重要的两个组件是缓冲区Buffer和通道Channel。缓冲区是一块连续的内存块,是NIO读写数据的载体;通道表示缓冲数据的源头和目的地,它用于向缓冲区读取或者写入数据,是访问缓冲区的接口。转存失败重新上传取消。

2023-04-11 14:13:06 413

原创 Java教程:Canal实现Mysql和ES数据同步

在实际开发中,为了保证数据的安全性和持久性, 所以,我们一般会把数据存储的数据库中, 比如mysql数据库.但, 如果数据量比较大, 并且搜索业务比较多, 则需要使用ES来实现我们的搜索功能.而ES所实现的搜索, 需要把数据放入ES中, 才能实现, 所以, 就需要我们把mysql中的数据, 同步到ES中才可以.Canal提供了各种语言的客户端,当Canal监听到binlog变化时,会通知Canal的客户端。我们可以利用Canal提供的Java客户端,监听Canal通知消息。

2023-04-11 11:24:41 215

原创 Java教程:常见的数据通信方式有哪些?

数据通信方式指通信双方在信号发送、传输和接收这3个环节对信号的处理方式,下面将对不同的信号处理方式进行讲解。

2023-04-11 10:42:52 301 1

原创 Java教程:如何深入理解Redis分布式锁?

本文介绍了超卖问题产生的原因:操作不具备原子性,同时提出了集中解决思路。synchronized锁,无法保证多实例下的线程安全setnx手动实现,坑很多、代码较为复杂redisson实现,能够保证多实例下线程安全,代码简单可靠。

2023-04-10 16:09:07 154

原创 Java教程:重试实现高可用一览

Guava是一个基于Java的开源类库,其中包含谷歌在由他们很多项目使用的核心库。这个库目的是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,并发性,常见注解,字符串处理,I/O和验证的实用方法。源码地址:标准化 - Guava库是由谷歌托管。高效 - 可靠,快速和有效的扩展JAVA标准库优化 -Guava库经过高度的优化。当然,此处咱们主要来看下 guava-retrying 功能。如果是基于Spring的项目,使用Spring Retry的注解方式已经可以解决大部分问题。

2023-04-10 15:40:09 872

原创 JavaScript中常用事件有哪些?

JavaScript是基于对象的脚本语言,它的一个最基本的特征就是采用事件鼎动。如,当鼠标指针经过某个按钮或者用户在文本框中输入某些信息时,都可以设置相应的JavaScript事件来完成某些特殊效果。下面,将对JavaScript中的常用事件进行详细讲解。

2023-04-10 14:45:07 108 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除