- 博客(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
原创 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
原创 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
原创 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
原创 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
原创 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
空空如也
请教一个git push没有被merge的问题。
2021-07-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人