自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA类和方法注释模板设置

IDEA自带的注释模板不是太好用,我本人到网上搜集了很多资料系统的整理了一下制作了一份比较完整的模板来分享给大家,我不是专业玩博客的,写这篇文章只是为了让大家省事。

2024-02-29 11:34:47 1850

原创 Docker 配置国内镜像源加速

【代码】Docker 配置国内镜像源加速。

2024-01-12 14:20:29 1766

原创 【Docker】添加指定用户到指定用户组

【Docker】添加指定用户到指定用户组

2023-12-26 11:15:05 685

原创 Alibaba Cloud Linux 3安装Docker

2.安装Alibaba Cloud Linux 3专用的dnf源兼容插件。进行docker安装(以社区版为例)4.检查docker是否已安装。3.安装docker-ce。5.启动Docker。

2023-11-24 16:22:32 1041

原创 Docker搭建Gitlab

默认 user:root;password:root 登录是会重定向到修改密码界面。如果被映射的端口不是80,需要修改。

2023-10-30 18:07:34 642

原创 Java开发常用官方文档

JDK下载官网文档https://www.oracle.com/java/technologies/downloads/IDEA下载官方文档https://www.jetbrains.com/idea/download/other.htmlMaven仓库文档https://mvnrepository.com/Docker仓库官网文档https://hub.docker.com/Redis操作文档https://www.redis.net.cn/tutorial/3501.htmlSQL

2023-10-30 10:48:51 693

原创 掌握 JVM 调优命令

JVM 日常调优总结起来就是:首先通过 jps 命令查看当前进程,然后根据 pid 通过 jinfo 命令查看和修改 jvm 参数,通过 jstat 命令查看 class 的加载信息以及 GC 信息,通过 jstack 命令查看线程堆栈信息,通过 jmap 命令查看堆内存信息。

2023-08-07 15:28:35 971

原创 Synchronized锁升级过程

锁实际上是加在对象上的,那么被加了锁的对象我们称之为锁对象,在java中,任何一个对象都能成为锁对象。为了更好着理解虚拟机是如何知道这个对象就是一个锁对象的,下面简单介绍一下java中一个对象的结构。java对象在内存中的存储结构主要有一下三个部分:这里强调一下,对象头里的数据主要是一些运行时的数据。其简单的结构如下当我们创建一个对象LockObject时,该对象的部分Markword关键数据如下:偏向锁的标志位是“01”,状态是“0”,表示该对象还没有被加上偏向锁。(“1”是表示被加上偏向锁)。该对象

2023-08-02 17:33:05 240

原创 Hadoop集群启动常见错误

1.将所有节点重启(杀死所有节点的服务-NN,DN,RM)2.删除三台节点中的data,logs,/tmp/*解决方案:检查配置文件,修改错误。datanode和namenode的集群id不一致。在格式化时如果发现下面的提示说明重复格式化了。脚本:一键同步到所有集群。

2023-07-19 14:27:12 681 1

原创 Hadoop之Hive安装

(4)、上传mysql-connector-java-5.1.32.jar到hive的bin目录。(1)、修改hive-env.sh 配置文件,配置hadoop环境变量。2、上传至/root/export/software/(3)、创建hive-site.xml配置。(2) 、修改hadoop目录。1、下载Hive安装包。1、在线安装mysql。

2023-07-14 17:16:18 994

原创 Zookeeper集群下载安装并启动

前提:准备三台虚拟机集群启动修改配置(3台服务器都要执行)

2023-07-13 14:09:35 1707

原创 Hadoop启动关闭命令

注意:第一次启动集群之前需要格式化

2023-07-10 17:25:46 2125

原创 Hadoop集群启动配置

三台机器主hadoop01从hadoop02从hadoop03。

2023-07-07 14:29:57 266

原创 Hadoop下载安装(物理机)

将hadoop-2-7.4.tar.gz包上传到/root/export/software目录。

2023-07-06 14:00:41 1912

原创 docker-compose安装使用

下载路径:https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64。链接:https://pan.baidu.com/s/1Mp0bgcgumncl_bPsg-KVYA?下载完成后将 docker-compose-Linux-x86_64 文件上传,执行以下指令。也可以去github上搜索docker-compose下载。

2023-03-10 17:58:51 250 1

原创 【docker默认目录var/lib/docker迁移】

修改默认配置文件/etc/docker/daemon.json。

2023-03-07 17:35:41 436

原创 docker命令集锦

subnet 192.168.1.0/16 表示子网ip 可以分配 192.168.1.2 到 192.168.255.255。–gateway 192.168.1.0 表示网关。-b2a3d7b67722 运行中的容器的ID。–driver bridge 表示使用桥接模式。–mynet 表示网络名。

2023-02-24 15:41:50 408

原创 SpringBoot接收UDP消息信息整合Integration

由于HTTP协议对实时数据传输过于慢,为此采用UDP进行数据传输,来看看如何实现的。

2023-02-14 17:01:32 1124

原创 【Linux】测试ip:port端口是否连通即可达性测试

【Linux】测试ip:port端口是否连通即可达性测试1、telnet可达性测试2、curl可达性测试3、wget可达性测试

2022-12-05 15:14:17 4263

原创 SpringBoot+WebSocket的搭建

http协议:**超文本传输协议,属于应用层。它的任务是与服务器交换信息。至于怎么连接到服务器,怎么保证数据正确,http不管。TCP协议:**传输控制协议,属于传输层。任务是保证连接的可靠,包括防止丢失,出错。所以在初次连接的时候进行3次握手,断开连接时进行4次挥手。至于连接上以后具体传送什么数据,tcp不管。PS:别的应用层协议也能通过tcp进行,那么这协议在底层也进行三次握手。

2022-09-23 10:07:01 888

原创 Windows10正确配置java环境

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-04-23 10:03:34 2650

原创 MySQL事务的四大特性和隔离级别

一、事务的四大特性(ACID)1、原子性(Atomicity)原子性是指事务包含的一系列操作要么全部成功,要么全部回滚,不存在部分成功或者部分回滚,是一个不可分割的操作整体。2、一致性(Consistency)一致性是可以理解为事务对数据完整性约束的遵循,这些约束可能包括主键约束、唯一索引约束、外键约束等等。事务执行前后,数据都是合法的状态,不会违背任何的数据完整性就拿转账来说,A和B加起来有5000块钱,不管A和B如何转账,转几次账,A和B加起来的钱永远都是5000块。总之,可以理解为:一致性

2022-03-30 17:00:20 2465

原创 分布式事务 Seata AT模式原理与实战

分布式事务 Seata 介绍Seata(Simple Extensible Autonomous Transaction Architecture,简单可扩展自治事务框架)是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。Seata 开源半年左右,目前已经有超过 1.1 万 star,社区非常活跃。我们热忱欢迎大家参与到 Seata 社区建设中,一同将 Seata 打造成开源分布式事务标杆产品。Seata:https://github.com/seata/seata分布式事务

2022-03-09 14:33:01 1214

原创 SpringBoot自动装配原理

@SpringBootApplication注解对这个注解详细大家一定非常熟悉了。再来好好看看这个注解。我们点进该注解,发现它由多个注解构成。这种注解 注解注解的方式实在看着让人头疼。@ComponentScan 就不多赘述了,就是一个自动扫描的注解。应该都很熟悉我们主要看这两个SpringBoot的注解,也就是 @SpringBootConfiguration和@EnableAutoConfiguration我们点进 @SpringBootConfiguration注解发现他里面没有太多

2022-03-05 18:10:29 1380 4

原创 Java实现 LeetCode 整数转罗马数字

整数转罗马数字罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值

2022-03-05 14:22:51 499

原创 kafka高吞吐量的原因

kafka高吞吐量1、顺序读写2、零拷贝3、分区4、批量发送5、数据压缩1、顺序读写kafka的消息是不断追加到文件中的,这个特性使kafka可以充分利用磁盘的顺序读写性能顺序读写不需要硬盘磁头的寻道时间,只需很少的扇区旋转时间,所以速度远快于随机读写2、零拷贝在Linux kernel2.2 之后出现了一种叫做"零拷贝(zero-copy)"系统调用机制,就是跳过“用户缓冲区”的拷贝,建立一个磁盘空间和内存的直接映射,数据不再复制到“用户态缓冲区”3、分区afka中的topic中的内容可

2022-02-25 14:46:23 3088

原创 Spring Cloud Hystrix实现原理

Hystrix实现原理一、 Hystrix流程二. 熔断器三、依赖隔离四、线程&线程池五、信号量六、请求合并七、 请求缓存一、 Hystrix流程1.1 下图展示了使用 Hystrix 来包装请求依赖服务时的流程:构建HystrixCommand或者HystrixObservableCommand对象执行命令(即上述 Command 对象包装的逻辑)结果是否有缓存请求线路(类似电路)是否是开路线程池/请求队列/信号量占满时会发生什么使用HystrixObservableComma

2022-02-25 10:14:43 906

原创 SpringCloud Eureka工作原理

介绍微服务架构中最核心的部分是服务治理,服务治理最基础的组件是注册中心。随着微服务架构的发展,出现了很多微服务架构的解决方案,其中包括我们熟知的Dubbo和Spring Cloud。关于注册中心的解决方案,dubbo支持了Zookeeper、Redis、Multicast和Simple,官方推荐Zookeeper。Spring Cloud支持了Zookeeper、Consul和Eureka,官方推荐Eureka。两者之所以推荐不同的实现方式,原因在于组件的特点以及适用场景不同。简单来说:ZK的设计原

2022-02-24 16:57:31 1802

原创 Redis主从复制原理总结

Redis主从复制原理Redis主从复制原理全量同步增量同步Redis主从同步策略注意点主从复制的一些特点:Redis主从同步是怎么实现的?主从同步中需要注意几个问题当主服务器不进行持久化时复制的安全性Redis主从复制是如何工作的部分重新同步无磁盘复制配置只读从服务器限制有N个以上从服务器才允许写入通过redis实现服务器崩溃等数据恢复Redis主从复制原理和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Re

2022-02-14 13:48:05 3839

原创 深入理解 JVM 垃圾回收机制及其实现原理

JVM 垃圾回收机制前言什么是垃圾?垃圾判断算法引用计数法可达性分析法垃圾回收算法标记-清除算法标记-整理算法复制算法分代收集算法垃圾回收器Serial 收集器ParNew 收集器Parallel Scavenge 收集器Serial Old 收集器Parallel Old 收集器CMS收集器G1 收集器前言对于 JVM 来说,我们都不陌生,其是 Java Virtual Machine(Java 虚拟机)的缩写,它也是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM

2022-02-11 17:43:48 198

原创 RabbitMQ交换机类型

先附加下官网文档。RabbitMQ的交换机类型共有四种,是根据其路由过程的不同而划分成的:一、Direct Exchange(直连交换机)直连型交换机背后的路由算法很简单——消息会传送给绑定键与消息的路由键完全匹配的那个队列。 我们用直连交换机取代了只会无脑广播的扇形交换机,并且具备了选择性接收消息的能力。这种配置下,我们可以看到有两个队列Q1、Q2绑定到了直连交换机X上。第一个队列用的是橘色(orange)绑定键,第二个有两个绑定键,其中一个绑定键是黑色(black),另一个绑定键是绿色(gree

2022-02-10 21:41:31 9278

原创 RabbitMQ的六种工作模式

RabbitMQ的六种工作模式一、simple简单模式二、work工作模式(资源的竞争)三、publish/subscribe发布订阅(共享资源)四、routing路由模式五、topic 主题模式(路由模式的一种)六、远程过程调用(RPC)总结基于erlang语言: 是一种支持高并发的语言RabbitMQ的六种工作模式:一、simple简单模式消息生产着将消息放入队列消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患

2022-02-10 20:53:40 1054

原创 分布式事务选型及对比

1、什么是分布式事务?当A服务调用B服务成功以后,A服务报错导致事务回滚,B服务事务提交,导致数据不一致性的问题。2、分布式事务产生的条件说到分布式事务,我们先来看看分布式事务的产生条件这里我们举一个栗子:当用户进行下单以后,会去调用派单服务进行派单,即向派单服务数据库中插入一条派单业务。派单成功之后,订单服务在执行后面的业务代码中,报错了此时订单服务事务回滚,而派单服务的事务已经提交了,导致了数据的不一致。此时,小伙伴可能有疑问:派单服务报错呢?会不会也产生分布式事务问题?实际上如

2022-01-20 09:51:48 1055

原创 【MySQL】三大日志-binlog、redo log和undo log

日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志。1、binlogbinlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志,并且由Server层进行记录,使用任何存储引擎的mysql数据库都会记

2022-01-18 17:13:55 3440 8

原创 【MySQL】Innodb三大特性之(自适应hash索引)

自适应hash索引二级目录一、索引的资源消耗分析二、自适应hash索引原理三、监控与关闭二级目录一、索引的资源消耗分析1、索引三大特点  1、小:只在一个到多个列建立索引  2、有序:可以快速定位终点  3、有棵树:可以定位起点,树高一般小于等于32、索引的资源消耗点  1、树的高度,顺序访问索引的数据页,索引就是在列上建立的,数据量非常小,在内存中;  2、数据之间跳着访问    1、索引往表上跳,可能需要访问表的数据页很多;    2、通过索引访问表,主键列和索引的有序

2022-01-16 18:10:59 3647

原创 【MySQL】Innodb三大特性之两次写(double write)

double write一、脏页刷盘风险二、doublewrite:两次写三、doublewrite的副作用一、脏页刷盘风险关于IO的最小单位:1、数据库IO的最小单位是16K(MySQL默认,oracle是8K)2、文件系统IO的最小单位是4K(也有1K的)3、磁盘IO的最小单位是512字节因此,存在IO写入导致page损坏的风险:二、doublewrite:两次写提高innodb的可靠性,用来解决部分写失败(partial page write页断裂)。1、Double write解

2022-01-16 18:08:44 2613

原创 【MySQL】Innodb三大特性之插入缓冲(insert buffer)

insert buffer一、什么是insert buffer二、insert buffer的原理三、insert buffer的内部实现四、insert buffer的缺点五、查看insert buffer一、什么是insert bufferinsert buffer是一种特殊的数据结构(B+ tree)并不是缓存的一部分,而是物理页,当受影响的索引页不在buffer pool时缓存 secondary index pages的变化,当buffer page读入buffer pool时,进行合并操作,

2022-01-15 10:06:35 3124

原创 算法-链表两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9], l2

2022-01-13 17:56:45 454 2

原创 算法-两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target =

2022-01-13 16:55:00 102

原创 算法-至少是其他数字两倍的最大数

给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。示例 1:输入:nums = [3,6,1,0]输出:1解释:6 是最大的整数,对于数组中的其他整数,6 大于数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。示例 2:输入:nums = [1,2,3,4]输出:-1解释:4 没有超过 3 的两倍大,所以返回 -1 。示例 3:输入:

2022-01-13 16:35:40 236

空空如也

空空如也

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

TA关注的人

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