自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 问答 (1)
  • 收藏
  • 关注

原创 【ZooKeeper3、Watcher机制

本文基于 Apache ZooKeeper Release 3.7.0 版本书写作于 2022年5月15日 17:22:11 转载请声明演示前的ZooKeeper目录状态,只有zookeeper默认目录:在客户端直接输入--help命令,可以看到以下文字:可以看到addWatch命令,可以直接使用该命令添加Watcher。也可以通过带有-w选项的命令,添加Watcher。Watcher。

2024-03-18 23:46:08 449

原创 【ZooKeeper】2、安装

本文基于 Apache ZooKeeper Release 3.7.0 版本书写。作于 2022年3月6日 14:22:11 转载请声明。配置环境变量(也可以不配,直接用全路径的sh即可)下载zookeeper安装包。

2024-03-18 23:44:35 250

原创 【ZooKeeper】1、基本介绍

本文基于 Apache ZooKeeper Release 3.7.0 版本书写作于 2022年3月6日 14:22:11 转载请声明。

2024-03-18 23:43:04 431

原创 【Dobbo】1. Dubbo是什么

自 Dubbo3 开始,Dubbo 提供了 Java、Golang、Rust、Node.js 等多语言实现,未来会有更多的语言实现。Dubbo帮助微服务解决通信问题,提供了基于HTTP、HTTP/2、TCP等多种高性能通信协议的实现。Dubbo官方提供服务发现、动态配置、负载均衡、流量路由等基础组件,可以很好得帮助解决微服务基础实践问题。还提供了丰富的服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。阿里、携程、蚂蚁、腾讯等多个知名贡献者、确保需求、缺陷、安全问题的即使修复。

2024-03-10 17:39:17 195

原创 Spring核心源码-如何解决循环依赖

b在执行完第二步设置属性,第三步初始化之后,又返回到a的第二步设置属性,第三步初始化。接口的扩展,用于设置完properties之后做一些动作,对循环依赖没有影响。的时候,已经放进了3级缓存,所以b在设置属性的时候,是能拿得到a的。类B的对象b,在实例化之后,也会进行属性的设置,会对类A进行。这里的拿到的a还仅仅是执行了实例化的,并没有设置完属性。至此,类A的对象a和类B的对象b,都已经创建成功。B是A的成员变量,A也是B的成员变量。在给a设置属性B的时候,去对B进行。,发现不存在,也会对B进行。

2023-10-09 22:39:34 223

原创 Docker:01 OverView

Docker是一个用于开发、交付、运行应用程序的开放平台,可以使应用程序与基础架构分开,以便快速交付软件。Docker在一个被叫做容器的隔离环境下,提供了打包和运行的能力。容器非常轻量化,包含运行应用程序所需的一切。Docker的架构如下:Docker使用了的架构。Docker客户端与Docker daemon 通过REST API进行通信,基于UNIX sockets或者网络接口。Docker daemon 负责构建、运行、分发docker容器。

2023-09-10 17:35:27 593

原创 【Linux】用户与用户组

Linux是一个多用户、多任务的服务器操作系统。多用户、多任务指可以在系统上建立多个用户,且多个用户可以再同一时间内登录同一个系统执行各自不同的任务而互不影响。每个用户有条不紊、互不干扰地进行自己的工作,每个用户都不能越权访问。不同的用户拥有不同的权限,每个用户都是在权限允许的范围内完成不同的任务。Linux操作系统通过这种权限的划分来限制使用者或者进程是否能使用某些资源。Linux用户根据角色来定义,具体分为3种角色。角色名称角色权限超级用户拥有最高管理权限,默认是root账户。

2023-06-10 16:41:22 829

原创 【Linux】防火墙与端口

代表永久,不加此参数,系统重启后此端口配置消失。

2023-06-10 16:38:54 152

原创 SpringBoot集成RabbitMQ(生产者)

前面三步省略。

2023-06-10 16:35:39 158

原创 SpringBoot集成RabbitMQ(生产者)

默认读者已经对SpringBoot和RabbitMQ比较熟悉。

2023-06-10 16:20:55 1602

原创 【Mybatis源码】一级缓存

Mybatis一级缓存源码解读

2022-06-05 00:04:22 469

原创 JVM运行时数据区

1、什么是运行时数据区?Java虚拟机在执行Java程序时,会把它管理的内存划分为若干不同的数据区域。这区域各有各的用途以及生命周期。有的区域随着虚拟机的启动而一直存在。(线程共享)有的区域则依赖用户线程的启动和结束分别创建和销毁。(线程私有)2、程序计数器(Program Counter Register)程序计数器可以看做当前线程执行的字节码的行数指示器。不管是分支、循环、跳转等代码逻辑,字节码解释器在工作时就是改变程序计数器的值来决定下一条要执行的字节码。每个线程都有一个独立的程序.

2022-03-11 00:52:51 2536

原创 【MySQL】什么是慢查询日志?

本文基于 Server version: 8.0.20 MySQL Community Server - GPL 版本编写。作于 2022年3月5日 11:26:09, 转载请声明。1、慢查询日志介绍慢查询能为SQL语句的优化带来很好的帮助。(1)可以通过设置一个阈值,将运行时间超过该阈值的SQL语句,都记录在慢查询日志中。(2)可以把所有的未走索引的SQL语句,都记录在慢查询日志中。2、开启慢查询日志慢查询日志的开关是:slow_query_log可通过此SQL语句设置慢查询日志的开关.

2022-03-05 22:48:53 9838

原创 【易错预警】SimpleDateFormat年份转换问题

SimpleDateFormat年份转换问题1. 问题说明有些人在写日期转换的时候,不区分 yyyy-MM-dd 和 YYYY-MM-DD,但是两者的转换结果每年底都不同,会造成年份多加1的问题。2. 问题演示设置一个 2021年12月26日 的Calendar,然后转Date,再用SimpleDateFormat进行日期文本化。结果一个是 2021年12月26日 , 一个是 2022年12月26日。3. 问题分析YYYY 的转换策略是 years based weeks , 只要被转换日期

2021-12-26 18:20:41 809

原创 Java中四种引用的介绍

强引用、软引用、弱引用、虚引用

2021-12-12 21:45:10 338

原创 Linux 用户和用户组介绍

用户介绍Linux是一个多用户、多任务的服务器操作系统。多用户、多任务指可以在系统上建立多个用户,且多个用户可以再同一时间内登录同一个系统执行各自不同的任务而互不影响。每个用户有条不紊、互不干扰地进行自己的工作,每个用户都不能越权访问。不同的用户拥有不同的权限,每个用户都是在权限允许的范围内完成不同的任务。Linux操作系统通过这种权限的划分来限制使用者或者进程是否能使用某些资源。Linux用户根据角色来定义,具体分为3种角色。角色名称角色权限超级用户拥有最高管理权限,默

2021-11-22 22:58:39 436

原创 SpringBoot全局异常处理器

SpringBoot全局异常处理器编写适用场景:(1)请求比较复杂,其中某些方法抛出了一些异常(2)参数校验抛出异常(3)自定义的异常等等1. 在请求中抛出异常import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** * @author 仅此而已 * @Date 2021/11/15 * @De

2021-11-15 23:28:55 506

原创 SpringCloud 使用 Eureka,一文总结(持续更新)

SpringCloud 使用 Eureka,一文总结2. Get Started2.1. 创建Eureka服务器创建一个普通的 SpringBoot 项目,加入 eureka-server 的依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</art

2021-10-24 22:08:50 1581

原创 SpringBoot中SpringMVC的基本注解使用

0. servlet-context-pathServlet的默认初始前缀server.servlet.context-path=/SpringMVCLearning1. @RequestMapping 请求映射@RequestMapping 源码:@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @interface Re

2021-08-08 23:49:27 274

原创 Java虚拟机-类加载机制

Java虚拟机-类加载机制1 概述2 类加载时机3 类加载的过程3.1 加载3.2 验证3.3 准备3.4 解析3.5 初始化1 概述Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程称为虚拟机的类加载机制。Java的类加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java不利于进行提前编译,增加了性能消耗,但是却带来巨大的动态扩展性。例如:在运行期间通过网络或者其他地方加载一个二进制流作为程序代

2021-08-02 01:04:11 252

原创 反射-常用API

反射反射是指:在运行期间可以知道一个对象的所有信息1 反射常用API1.1 获取反射中的Class对象(1)通过类的 全路径字符串 获取Class,例如:Class clz = Class.forName("java.lang.String");(2)使用 类.class 方法,例如:String.class(3)通过 对象.getClass() 方法,例如:String string = "hello world";Class clz = string.getClass();

2021-07-30 11:39:10 1804

原创 git命令之 git reset三种参数的区别

git命令之git reset三种参数的区别1. 理论介绍1. 理论介绍git reset 命令适用于撤销commit,返回之前commit的情况。git reset最常用三个参数: --hard 、 --soft 和 --mixed 。默认是 --mixed 。(1) git --reset --hard ${logid} : 文件暂存区和HEAD全部恢复到 logid 指向的那次commit,之后的commit和修改全部丢失。属于 危险操作 。(2)git --reset --soft ${

2021-07-24 13:05:37 1464

原创 SpringBoot的MVC测试

本文适用于对SpringBoot里编写的MVC请求进行测试,更多属性设定请进入各个类中去查找。第一步:注入WebMVC的IOC容器对象 WebApplicationContext@Autowiredprivate WebApplicationContect wac;第二步:伪造一个MVC环境 MockMvcprivate MockMvc nockMvc = MockMvcBuilders.webAppContextSetip(wac).build();第三步:通过 MockMvcReques

2021-05-26 14:44:46 562

原创 Mysql日志-慢查询日志

文章目录1. 慢查询日志简介2. 相关的variables2.1 时间阈值——long_query_time2.2 启动慢查询日志——slow_query_log2.3 未使用索引的SQL——log_queries_not_using_indexes3. 设置variables的示范1. 慢查询日志简介慢查询日志能为SQL语句的优化带来很好的帮助。可以设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中。2. 相关的variables2.1 时间阈值——long_query

2020-11-27 22:30:31 176

原创 Ajax 请求示例

2020-11-12 21:54:29 112

原创 MySQL常见存储引擎及特点

MySQL常见存储引擎及特点0. 一些命令0.1 查看支持的存储引擎show engines;0.2 查看某个引擎工作状态show engine innodb status;0.3 查看重要的属性show VARIABLES like 'innodb%'1. InnoDBInnoDB 面向在线事务处理方面的应用支持事务支持行锁支持外键支持非锁定读聚集索引必须要有主键,且每张表都按照主键的顺序存放如果没有主键,存储引擎会为每一行生成一

2020-11-04 23:52:45 434

原创 Android 四大组件 - 读书笔记

Android 四大组件Android系统的四大组件分别是 Activity、Service、BroadcastReceiver 和 ContentProviderActivityActivity是所有Andorid应用程序的门面,凡事在应用程序中看得到的东西,都是放在Activity中的。ServiceService在后台默默地运行,即使用户退出了应用程序,Service仍然是可以继续运行的。BroadcastReceiverBroadcastReceiver允许你的应用接受

2020-10-30 19:31:42 122

原创 Redis 持久化-事务 读书笔记

Redis持久化RDB原理AOF原理混合持久化+管道事务

2020-10-27 16:23:11 108

原创 Spring Cloud Eureka 服务注册与调用

Spring Cloud Eureka 服务注册与调用1. SpringCloud Eureka 介绍1.1 Eureka 服务端1.2 Eureka 客户端2. SpringCloud Eureka 搭建测试2.1 搭建服务注册中心(服务端)2.2 注册服务提供者1(客户端1)3. 服务调用测试3.1 注册另外的服务提供者2(客户端2)3.2 调用其他的服务4. 总结4.1 综述4.2 注册中心要点4.3 服务注册要点4.4 服务调用要点1. SpringCloud Eureka 介绍SpringC

2020-10-24 23:24:33 766

原创 Git 安装和环境部署

1. 下载Git进入Git的GitHub项目release下载进入国内镜像源下载:镜像地址2. 安装Git跟随安装引导进行安装,选择各项,如没有特殊需求,大多数选项一直next即可3. 设置name和email

2020-10-23 21:32:19 201

原创 RESTful 表现层状态转换架构

文章目录RESTful 表现层状态转换1. 什么是REST2. RESTful的解释2.1 表现层(Representational)2.2 状态转换 (State Tranfer)3. 总结RESTful 表现层状态转换1. 什么是RESTREST 全称:Representational State Transfer (表现层状态转换),描述了一个架构样式的网络系统。REST 是一个面向资源的设计风格。REST 倾向于用更加简单轻量的方法设计和实现,值得注意的是,REST并没有一个明确的标准,而

2020-10-19 14:01:48 674

原创 SpringBoot集成RabbitMQ(初级)

SpringBoot集成RabbitMQ实战默认读者已经对SpringBoot和RabbitMQ比较熟悉1. MVN配置在原pom.xml基础上添加依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>效果如图所示:2. 消息队

2020-10-11 18:08:46 202 1

原创 Mybatis获取自动生成的主键

Mybatis获取自动生成的主键很多场景下,我们会把数据库主键设置成自增长的。那么插入成功之后怎么在Java中获取到该主键的值呢?1. INSERT语句其实INSERT语句默认会返回一个整数值,这个整数值的含义是操作成功的行数。例如:成功插入一行记录,就会返回 1 。同时 INSERT 语句中可以配置useGeneratedKeys : 是否自动生成主键keyProperty :主键对应的属性(Java类)keyColumn : 主键对应的列(数据库列)三个属性,来获取自动生成的

2020-10-10 20:55:20 5342 1

原创 Mybatis配置文件Mappers配置和源码解析(个人总结)

2020-10-10 16:04:07 120

原创 Mybatis配置文件EnvireomentElement配置和源码解析(个人总结)

2020-10-10 16:03:15 107

原创 Mybatis配置文件TypeAliases配置和源码解析(个人总结)

2020-10-10 16:01:48 70

原创 Mybatis配置文件properties配置以及源码解析(个人总结)

2020-10-10 15:58:39 103

原创 SpringBoot 之 Filter 解释和配置

SpringBoot 配置 Filter1. 编写Filter实现 java.sevlet.Filter 接口,并实现其中的方法如图所示2. 配置Filter配置Filter有两种方式通过注解配置通过bean配置2.1 通过注解配置在自定义的Filter上边加上 @WebFilter注解和 @Component注解在注解中写出要拦截的 url2.2 通过bean配置根据自己写的Filter配置一个 FilterRegistrationBean 注入到容器3

2020-10-07 21:23:45 892

原创 Redis个人总结简洁版

Redis基础和应用5种基本结构string动态字符串结构类似于ArrayList最大value - 512MBlist双向链表结构类似于LinkedListhash数组+链表结构类似于老的HashMapset数组+链表value全用null填充结构类似于老的HashSetzset跳跃链表分布式锁应用第一步:setnx第二步:expireset-expire原子性如果setnx和expire中间出现意外打

2020-09-24 22:02:11 132

原创 Redis-bitmap 位图

Redis-bitmap 位图在开发过程中,经常有一些bool型的值需要存储。比如用户一年的签到记录,签了是1,没签是0。如果每个记录都用一个byte、short、int、boolean等基本类型结构去存储,那么占用的空间是很大的。为了解决这个问题,Redis提供了位图结构,每个布尔记录只需要占用一个位,也就是一个bit。365天的签到记录只需要365位就可以存的下。注意,位图并不是特殊的数据结构,它的内容就是普通的字符串内容。8位bit对应一个字符,我们可以在BITCOUNT操作中,明显地看出来

2020-09-19 17:26:31 412

空空如也

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

TA关注的人

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