自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker-compose搭建redis环境:哨兵模式(一主两重两哨兵)

从上面的结果可以看到,当前master节点以Standalone mode在运行,其replication部分显示了只是个master节点,以及连接到master节点的两个slave节点,节点的IP、port、state和offset以及lag都可以看到。如果这个时候,master节点宕机了,那么哨兵会在判断master节点客观下线后,从slave节点中选举出新的master节点。从日志中已经可以看到,master节点已经切换到172.28.5.3这个节点。看到上述结果就表示容器已经启动成功。

2024-04-23 16:22:23 361

原创 Docker的网络模式(Bridge,Host, Container,None)

但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。Docker网络container模式是指定其和已经存在的某个容器共享一个 Network Namespace,此时这两个容器共同使用同一网卡、主机名、IP 地址,容器间通讯可直接通过本地回环 lo 接口通讯。当docker server启动的时候,会在主机上创一个虚拟网桥,此主机上启动的docker容器会连接到这个虚拟网桥上。

2024-04-23 10:55:18 156

原创 网络基础之-IP地址

一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。

2024-04-22 21:56:01 575

原创 docker-compose 安装MongoDB续:创建用户及赋权

另外,对于重要的数据不能存储在local数据库,还要注意MongoDB默认的WriteConcern是{w: 1},即数据写到Primary上(不保证journal已经写成功)就向客户端确认,这时同样存在丢数据的风险。在启动数据库环境的时候,这里的INITDB的username和password都是赋值了的,但是这里并不能用这个用户名和密码进行登录。我们可以连接上admin库,那么我们就可以创建数据库,也可以为数据库创建用户,并指定用户的角色,根据不同角色赋予不同的权利。

2024-04-17 18:07:46 822

原创 LeetCode刷题之二叉树前、中、后序遍历及层次遍历

中序遍历就是左-根-右顺序遍历。然后每个子树都要进行递归调用。递归调用是维护了一个隐式的栈的,迭代就是自己显式维护这个栈。给定一个二叉树的根节点 root ,返回 它的。输入:root = [1,null,2,3]输入:root = [1]输入:root = []输出:[1,3,2]

2024-04-09 16:51:08 320

原创 LeetCode刷题之105. 从前序与中序遍历序列构造二叉树

二叉树的前序遍历是一种常见的树遍历方法,用于按照根-左子树-右子树的顺序遍历二叉树的节点。访问当前节点:首先访问二叉树的根节点。递归遍历左子树:如果当前节点有左子树,就递归地对左子树进行前序遍历,即重复步骤1和步骤2。递归遍历右子树:如果当前节点有右子树,就递归地对右子树进行前序遍历,即重复步骤1和步骤2。以下是一个示例二叉树的前序遍历序列:1-2-4-5-3。

2024-04-07 15:47:16 834

原创 LeetCode刷题之31.下一个排列

整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如[5,7,6,4]这个排列,交换5和7,得到的是[7,5,6,4]这个组合,显然不是下一个更大排列,毕竟手动排列组合一下,发现下一个组合应该是[6,4,5,7]那么,应该是考虑从后向前第一个升序段的后一个元素开始,将后面所有的元素按字典排序,然后找到紧挨着升序点前一个元素的那个元素,将其交换即可。

2024-04-06 16:31:34 481

原创 spring boot项目编译报错“exporting a package from system module java.base is not allowed with --release”

这样就可以正常编译项目了,不会再报“exporting a package from system module java.base is not allowed with --release”错误了。maven.compiler.release这个参数便是引入了release的参数。那解决问题也很简单了,把这个参数去掉就好了。今天在使用spring boot 3.2.4这个版本时,由于需要使用security包下面的类,因此需要导出相应模块。最先需要明白的是,我在什么地方使用了–release?

2024-03-29 11:17:25 386

原创 Java后端八股文之Mysql

事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。1、脏读:事务 A 读取了事务 B 更新的数据,然后 B 回滚操作,那么 A 读取到的数据是脏数据2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务 A 多次读取的过程中,对数据作了更新并提交,导致事务 A 多次读取同一数据时,结果 不一致。

2024-03-14 16:58:47 810

原创 Java后端八股文之Redis

Redis 可以通过创建快照来获得存储在内存里面的数据在 某个时间点 上的副本。Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本(Redis 主从结构,主要用来提高 Redis 性能),还可以将快照留在原地以便重启服务器的时候使用。与快照持久化相比,AOF 持久化的实时性更好。

2024-03-11 11:53:36 868

原创 Java后端八股文之java基础

浅拷贝:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制内部对象的引用地址,也就是说拷贝对象和原对象共用同一个内部对象。深拷贝:深拷贝会完全复制整个对象,包括这个对象所包含的内部对象。简单来说,引用拷贝就是两个不同的引用指向同一个对象。字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。

2024-03-09 14:53:21 1227

原创 Kafka常见问题解析

应用程序读取用户态内存数据,写入文件 / Socket之前,需要从用户态转换为内核态之后才可以写入文件或者网卡当中。零拷贝是一种技术,使数据从一个应用程序传输到另一个应用程序时,避免了数据的多次复制,从而减少了 CPU 的开销和内存带宽的消耗。Kafka 不直接支持主写从读(Master-Slave)模式的原因是,Kafka 的设计目标是提供高吞吐量和低延迟的分布式消息传递系统,而不是传统的主从复制数据库系统。同步方式可以确保消息写入的可靠性,但会引入一定的延迟,而异步方式则可以提供更高的吞吐量。

2024-02-22 14:24:50 1284 1

原创 深入学习Kafka之概念解析

在 Kafka 集群中会有一个或多个 broker,其中有一个 broker 会被选举为控制器( Kafka Controller),它负责管理整个集群中所有分区和副本的状态。生产者(Producers)将消息发布到特定的Topic,而消费者(Consumers)则订阅感兴趣的Topic以消费其中的消息。Kafka 会跟踪每个消费者在每个分区中的偏移量,并确保消费者可以继续从上次离开的位置读取消息。Kafka是一个值得深入学习的开源中间件,其中涉及的概念有很多,今天就来梳理一下,这些概念到底都是什么。

2024-02-19 18:46:36 1079

原创 布隆过滤器的JAVA实现

布隆过滤器(Bloom Filter)是一种概率型数据结构,用于判断一个元素是否属于一个集合。它通过使用位数组(bit array)和多个哈希函数来实现高效的插入和查询操作。初始化:创建一个大小为m的位数组(通常用位向量或位集合表示),并将所有位初始化为0。添加元素:对于要添加的元素,使用多个独立的哈希函数(通常是非加密的哈希函数),将元素映射到位数组的不同位置,并将这些位置的位设置为1。查询元素:对于要查询的元素,使用相同的哈希函数将元素映射到位数组的相应位置。

2024-02-02 17:08:31 398

原创 LRU算法的Java实现

LRU(Least Recently Used)算法是一种常用的缓存淘汰策略,用于在缓存空间不足时决定哪些数据应该被淘汰出去。LRU算法的基本思想是:当缓存空间已满时,淘汰最近最少使用的数据。具体实现方式可以使用一个数据结构(如双向链表)和一个哈希表来辅助实现。创建一个固定大小的缓存空间(如数组或链表)和一个哈希表。当需要访问数据时,首先在哈希表中查找数据是否存在:如果数据存在于缓存中,表示数据已经被访问过,将其从当前位置移动到缓存的头部,表示最新访问过。

2024-02-02 16:41:58 437

原创 KClass初探

在 Kotlin 中,KClass 是一种特殊的类型,用于表示 Kotlin 类的类引用。KClass 提供了一些有用的函数和属性,以便在运行时对类进行操作和访问。KClass 是 Kotlin 反射 API 的一部分,可以通过::class来获取一个类的 KClass 实例。

2024-01-26 17:30:18 358

原创 概念杂记--到底啥是啥?(数据库篇)

非聚集索引(Non-clustered Index)是数据库中另一种常见的索引类型,与聚集索引相对。与聚集索引不同,非聚集索引的索引键值不决定数据行的物理存储顺序。聚集索引(Clustered Index)是数据库中一种常见的索引类型,它定义了表中数据的物理存储顺序。在聚集索引中,数据行按照索引键的顺序进行排序,并且表中的数据实际上是按照聚集索引的顺序存储的。等方面存在明显的区别。在设计和选择索引时,需要考虑具体的查询需求、数据访问模式和更新频率,以确定使用哪种索引类型或它们的组合来优化数据库的性能。

2024-01-23 10:17:08 1079

原创 Git指令集合

git指令有很多,常用的也就是那么几个,今天回顾一下几个准常用,很重要的几个指令。

2023-12-23 21:26:51 538

原创 Spring boot -- 学习HttpMessageConverter

至此,可以说算是明白为什么返回Json格式数据了:我们给服务器说,接收*/*格式数据的response。默认的HttpMessageConverter把JAVA对象转成了Json格式写入response body中。返回自定义格式的数据,就是要和服务端约定好,是什么样的格式,然后有converter写出来即可。从上面的类图可以看到,我们可以直接实现HttpMessageConverter接口,也可以继承类图里的抽象类也可以。import com。

2023-12-05 18:45:05 827 1

原创 Spring加载Bean的多种方式

这种方式在早起的项目中很常见,但是由于容易导致配置文件的爆炸式增长,致使其难以维护,现在的使用已经越来越少。</在Java代码中可以获取名为person的bean。这样我们可以轻松获取到bean。

2023-11-27 14:21:19 188

原创 Rest API --如何设计好一个Delete方法的API

由于Rest API的设计风格,我们是对resource进行CRUD,与之相对应的HTTP方法,也就有GET、POST、PUT、DELETE。使用DELETE方法,表明对一个资源进行删除操作。

2023-11-09 18:55:56 227

原创 Java多版本环境共存配置

现在已经不是“他发由他发,我用Java8”的时代了,因此需要拥抱新版本的Java环境,这里推荐一个Java环境管理工具-jenv

2023-11-04 20:13:04 378

原创 MongoDB根据时间范围查询

MongoDB 查询语句示例。

2023-10-30 15:52:14 1335

原创 网络基础之TLS

如果链中有更多证书,则每个证书都是颁发前一个证书的颁发机构的证书。可信的签发公钥证书的组织被认为是证书颁发机构(CA)。一旦 CA 确信申请人代表其声称所代表的组织,CA 就会签署证书,证明证书中包含的信息的有效性。如果Charlie创建了一个自己的公钥和私钥,但是他可以对外宣称自己是Alice并且把自己的公钥发送给Bob,Bob将可以和Charlie通讯,但是Bob将会认为,他的数据是发送给Alice的。TLS 1.3 是对 TLS 协议的重大修改,与以前的版本相比,提供了显著的安全性和性能改进。

2023-09-11 14:23:55 180 1

原创 Consul学习笔记之-初识Consul

如果在某个分布式系统中数据无副本, 那么系统必然满足强一致性条件, 因为只有独一数据,不会出现数据不一致的情况,此时C和P两要素具备,但是如果系统发生了网络分区状况或者宕机,必然导致某些数据不可以访问,此时可用性条件就不能被满足,即在此情况下获得了CP系统,但是CAP不可同时满足。当使用Consul的服务网格能力时,Consul动态的在请求路径中配置sidecar和网关代理,这样让你授权服务到服务之间的连接,路由请求到健康的服务实例上,并且强制使用mTls加密却不需要你更改你的代码。

2023-09-07 11:32:56 312

原创 spring boot + Consul 示例 (Kotlin版)

先感受了一下Consul,又好像什么都没感受一样。继续深入学习。。。

2023-09-02 17:45:18 1168 2

原创 自定义filter与interceptor

filter与interceptor的区别以及简单实用

2022-12-04 23:01:57 465 1

原创 RSA算法简介及JAVA与Python加解密

RSA算法再JAVA与Python场景下的简单使用

2022-11-17 23:28:50 1358

原创 AES-GCM算法 Java与Python互相加解密

AES-GCM简介及JAVA与Python应用示例

2022-11-16 23:11:38 5050 2

原创 docker-compose 安装MongoDB

docker-compse搭建MongoDB环境

2022-11-13 23:31:22 968 1

原创 docker-compose安装并简单配置Cassandra

使用docker-compose本地安装cassandra,并做了简单配置。

2022-11-05 16:46:09 1739

原创 jdk11使用反射创建实例对象

在JDK11环境下,使用反射创建对象,包括无参和有参的构造函数。

2022-10-27 23:39:22 867

原创 JPA之使用复合主键

JPA使用复合主键

2022-08-07 11:19:54 930

翻译 《翻译》将 JPA (Hibernate) 与 Kotlin 结合使用的最佳实践和常见陷阱

JPA与Kotlin组合使用的最佳实践

2022-07-31 17:47:59 432

原创 QueryDsl整合spring-data-jpa

query dsl整合jpa,kotlin示例和Java示例

2022-07-24 14:59:41 709

原创 Spring boot 读取properties文件内容

spring boot中properties文件中的list,map等的配置与读取

2022-06-29 23:50:09 3600

原创 笔记系列之Mac OS 安装minikube

minikube安装笔记

2022-06-19 19:11:23 2036

原创 笔记系列之docker安装Postgresql 14

使用docker-compose安装Postgresql 14,pgadmin4并进行简单的使用。

2022-06-05 19:07:24 2496

原创 实用小工具: Kotlin 代码片段

文章目录1.将任意对象转换成Map2. 实用ObjectMapper转换对象2.1 对象转JsonString2.2 JsonString转对象2.3 JsonString中包含list1.将任意对象转换成Mapinline fun <reified T : Any> T.asMap() : Map<String, Any?> { val props = T::class.memberProperties.associateBy { it.name } retur

2022-03-31 09:27:03 667

原创 LocalDateTime和ZonedDateTime

文章目录1.LocalDateTime1.1 LocalDate1.2 LocalTime1.3 LocalDateTime的获取1.4 时间的转换2. 时间解析2.1 LocalDateFormatter3. ZonedDateTime3.1 简单使用4.实际使用4.1 需求4.2 解析4.3 答案1.LocalDateTimeLocalDateTime是Java8引入的新的时间的表示方式。是的,你没看错,他发由他发,我用Java8。LocalDateTime,直译就是当地的日期时间,既然是当地的日

2022-02-03 21:28:53 2104

空空如也

空空如也

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

TA关注的人

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