随笔分类 - JAVA基建
摘要:基本数据结构与底层数据结构 SDS(Simple Dynamic String) - 简单动态字符串 struct sdshdr { int len; // 记录buf数组中已使用字节的数量,即字符串长度(获取长度O(1)) int free; // 记录buf数组中未使用字节的数量 char bu
阅读全文
posted @ 2026-03-20 12:24
鄙人取个名字好难
摘要:1.apt命令安装svn客户端 ubuntu@VM-0-3-ubuntu:~$ sudo apt-get install subversion 2.创建svn目录 ubuntu@VM-0-3-ubuntu:/$ sudo mkdir /home/svn 3.创建项目仓库(yunyx) ubuntu@
阅读全文
摘要:在使用docker容器时,有时候需要使用一些其他命令,如ifconfig,telnet等,但是会提示错误: bash-5.0# telnet 11.161.35.45 27017 bash: telnet: command not found 这时候需要执行如下命令(apt命令详细参考 Linux之
阅读全文
摘要:事务的基本概念 事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序 执行逻辑单元(Unit)。一方面,当多个应用程序并发访问数据库时,事务可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。另一方面,事务为数据库操作序列提供了一个从失败中恢复到正常
阅读全文
摘要:AOP(Aspect Oriented Programming)是基于切面编程的,可无侵入的在原本功能的切面层添加自定义代码,一般用于日志收集、权限认证等场景。 AOP基本概念 通知(Advice): AOP 框架中的增强处理。通知描述了切面何时执行以及如何执行增强处理; Before :前置通知,
阅读全文
摘要:IOC(Inversion of Control,控制倒转),意思是对象之间的关系不再由传统的程序来控制,而是由spring容器来统一控制这些对象创建、协调、销毁,而对象只需要完成业务逻辑即可。IOC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependen
阅读全文
摘要:AutoConfiguration(自动配置),是指springBoot项目启动时,将bean自动加载到IOC容器,其核心源码在【spring-boot-autoconfigure-**.jar】中。 自动配置的核心注解是@EnableAutoConfiguration,该注解又引用了两个注解@Im
阅读全文
摘要:通常搭建一个基于spring的web应用,我们需要做以下工作: pom文件中引入相关jar包,包括spring、springmvc、redis、mybaits、log4j、mysql-connector-java 等等相关jar ... 配置web.xml,Listener配置、Filter配置、S
阅读全文
摘要:简单选择排序 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 算法描述 从未排序序列中,找到关键字最小的元素 如果最小元素不是未排序序列的第一个元素,将其和未排序序列第一个
阅读全文
posted @ 2021-02-19 14:56
鄙人取个名字好难
摘要:简单插入排序 从数组的第二个元素开始,依次向前进行对比,如果前面的元素大,则后移。重复数组长度-1 轮。工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 算法描述 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫
阅读全文
posted @ 2021-02-19 12:46
鄙人取个名字好难
摘要:冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法描述 比较相邻的元素。如果第一
阅读全文
posted @ 2021-02-18 23:17
鄙人取个名字好难
摘要:算法分类 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 算法比较 时间复杂度: 1.时间复杂度
阅读全文
posted @ 2021-02-18 15:21
鄙人取个名字好难
摘要:Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。 服务端处理命令,并将结果返回给客户端。 Redis完整的请求交互流程图如下: 客户端进程调用
阅读全文
posted @ 2021-01-13 20:24
鄙人取个名字好难
摘要:1. 理解单线程模型 Redis基于Reactor模式开发了自己的网络事件处理器,称之为文件事件处理器(File Event Hanlder)。文件事件处理器由Socket、IO多路复用程序、文件事件分派器(dispather),事件处理器(handler)四部分组成。IO多路复用程序会同时监听多个
阅读全文
posted @ 2021-01-12 17:27
鄙人取个名字好难
摘要:APM (ApplicationPerformance Management) 即应用性能管理,致力于监控和管理应用软件性能和可用性,通过监测和诊断复杂应用程序的性能问题,来保证应用程序的良好运行。主要特征有三个特征: 多级应用性能监控:覆盖通讯协议1-7层,通过事务处理过程监控、模拟等手段实现端到
阅读全文
posted @ 2021-01-03 22:37
鄙人取个名字好难
摘要:一般来说,API网关有四大职能: 请求接入:作为所有API接口服务请求的接入点,管理所有的接入请求 业务聚合:作为所有后端业务服务的聚合点,所有业务服务都可以在这里被调用 中介策略:实现安全、验证、路由、过滤、流控、缓存等策略,进行一些必要的中介处理 统一管理:提供配置管理工具,对所有API服务的调
阅读全文
posted @ 2021-01-03 17:07
鄙人取个名字好难
摘要:分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。目前比较常用的分布式事务解决方案包括强一致性的两阶段提交协议、三阶段提交协议以及最终一致性的可靠事件模式、补偿模式、阿里的TCC模式。 事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(
阅读全文
posted @ 2021-01-03 15:55
鄙人取个名字好难
摘要:采用微服务架构后,当分布式系统到达一定量级时,每个环境都可能出错,因此在系统设计时应该考虑如何减轻故障的影响,如何从故障中快速恢复。一般从以下两点来考察系统的稳定性: 高可用:当前服务依赖的下游服务性能降低或者失败时,该服务怎么相应,是快速失败还是重试?大促时如何应对瞬间涌入的流量? 高并发:底层服
阅读全文
posted @ 2021-01-03 00:18
鄙人取个名字好难
摘要:注册中心原理 注册中心主要涉及到三大角色:服务提供者、服务消费者、注册中心。它们之间的关系大致如下: 各个微服务在启动时,将自己的网络地址等信息注册到注册中心,注册中心存储这些数据。 服务消费者从注册中心查询服务提供者的地址,并通过该地址调用服务提供者的接口。 各个微服务与注册中心使用一定机制(例如
阅读全文
posted @ 2021-01-02 00:59
鄙人取个名字好难
摘要:Docker内的文件系统是如何工作? Docker镜像是由多个文件系统(只读层)叠加而成,当启动一个容器的时候,Docker会加载只读镜像层并在其上(镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只
阅读全文
posted @ 2021-01-01 10:36
鄙人取个名字好难

浙公网安备 33010602011771号