七. AOP 的实现原理源码分析

2020-01-12
阅读 8 分钟
1.4k
1、先简单的概述下 关于切面的概念可以参考下这篇文章,已经解释的很好了: [链接] 但是上面流于概念的讲解,少了一些具体源码上的分析。 下面按照我的理解,说明一下吧。 1.1 实现一个切面功能的建议代码 定义一个功能类 {代码...} 声明一个切面: {代码...} 配置配置类 {代码...} 1.2 简单分析 具体可以分为三大步 1、...

六. 容器的创建流程(关联Aspect部分)

2020-01-12
阅读 7 分钟
1.1k
本篇文章只是简单的关联 Aspect 部分内容。做一个独立出来的 容器创建步骤中 的 Aspect 部分。为了不让AOP 过于冗余。做一个简单的抽离。整理的比较乱:有时间的时候 在整理下用词吧。 TODO

Spring bean 的生命周期

2020-01-11
阅读 3 分钟
2.9k
2.1 生命周期的流程 1、构建 (构造函数:或者说是 construct) 2、初始化(init) 3、销毁 (destory) 再复杂一点的生命周期是: 1、构建 2、设置属性 3、后置处理器 的前置处理方法: BeanPostProcessor.postProcessBeforeInitialization 4、初始化(init) 5、后置处理器 的后置处理方法: BeanPostProcessor.postProces...

Spring annotation 注解

2020-01-11
阅读 1 分钟
1.3k
主要分为以下几个章节 如何注册 Bean Bean 的生命周期Bean 的生命周期 属性赋值 Aware Prifile 注解

JAVA date 日常使用总结

2020-01-11
阅读 2 分钟
2.2k
主要使用 LocalDateTime 和 LocalDateLocalDate : 只是到日期 LocalDateTime :包含dateTime 但是格式化中没有通用的 如 2020-01-07 18:00:01 格式的 格式转换的 DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

【学习笔记】Paxos协议

2019-11-22
阅读 1 分钟
925
0. 问题的引入 1. basix Paxos 2. multi Paxos 3. fast Paxos 10. 参考文章链接

【学习笔记】基于Zookeeper 的 Zab协议

2019-11-20
阅读 4 分钟
4.5k
0.两阶段提交 在学习zab协议之前,我们先来学习一下二阶段提交的过程。 两阶段提交顾名思义主要分为两个阶段 第一阶段(请求阶段) 协调者首先会发送某个事务的执行请求给其它所有的参与者,当参与者收到perpare请求时会检查自身并告诉协调者自己的决策是同意还是取消 第二阶段(提交阶段) 协调者将根据第一阶段的投票...

【学习笔记】Zookeeper 的应用场景

2019-11-20
阅读 4 分钟
1.4k
前记:个人理解,原则上说,只要可以实现 k-v 存储的,都可以用来做统一的配置中心。你甚至可以使用redis 作为配置中心的管理。对比之下,我还是推荐使用针对配置更为专业的 Apollo 来管理。

zookeeper的从入门到入门#知识科普

2019-11-19
阅读 1 分钟
1.1k
先写吧,后面再整理格式 0. why zookeeper? 最近公司在多服务,多集的分布式场景下,需要用到分布式锁。 最初考虑使用redis 来实现类似的功能。 redis 的做法 : sexNx key value SETNX是将 key 的值设为 value,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。 返回1,说明该进程获得锁,SETNX将...

【Nginx 底层学习】TODO 1:HTTP 过滤模块

2019-08-27
阅读 1 分钟
935
Nginx HTTP 11个处理流程之后

【Nginx 底层学习】TODO :Nginx 中的配置

2019-08-25
阅读 1 分钟
1.6k
nginx 配置文件 10. 总结的脑图

【Nginx 底层学习】TODO :Nginx 中的变量

2019-08-25
阅读 1 分钟
1.1k
1. 变量有哪些类型? 2. 变量的简单实用? 3. 对应的脑图

【Nginx 底层学习】HTTP反向代理 处理流程的11个阶段

2019-08-25
阅读 4 分钟
3.6k
先梳理他的基本流程,就可以知道什么阶段可以做好什么事本文可能不易于不便于阅读,因为这个更多的是我思路的总结。是一个脉络的概述。至于阶段理解的各个模块的具体参数,可以再自行搜索。如有不便之处,敬请谅解。

服务器接入swoole 关联的防火墙问题

2019-06-20
阅读 2 分钟
2.1k
接上面的操作,在腾讯云服务器上,安装 easyswoole 成功之后,想简单的写个demo,先在服务器上跑起来。 后面的研究交给第二天 1. 对外公网 IP 首先混淆了一个对外IP的概念 1.1 错误的ifconfig swoole脚本程序对外暴露了 9502端口。 通过URL进行HTTP访问,发现服务器怎么也响应不了 PS :中间的过程不再多说,怀疑了IP问题...

composer 服务器安装扩展失败(版本过低的 升级过程)

2019-06-19
阅读 2 分钟
4.6k
ps : 服务器 配置Linux VM-0-9-ubuntu 4.4.0-91-generic #114-Ubuntu SMP Tue Aug 8 11:56:56 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

thrift 增加跨语言的调用链【TODO】

2019-06-19
阅读 1 分钟
1.8k
日常在工作中会遇到这样的问题,PHP 通过 thrift 接口调用 java 服务,java 通过dubbo 接口调用java 的另外一个服务。 但是到了出错的时候,会遇到以下问题。 或者 没有形成完整的调用过程路径,或者无法追踪来源。

【TODO】【算法】鸡尾酒排序

2019-06-10
阅读 1 分钟
1.1k
0. 索引 1. 基本介绍 2. 算法实现

【TODO】【算法】快速排序

2019-06-10
阅读 3 分钟
1.2k
0. 索引 1. 简单介绍 关于原理,虽然很重要,但是在这里不做过多介绍。 因为随便搜索一下。就可以找到更好的答案。 本质是回顾,记住核心的思想,然后通过code 深刻 已有概念的印象。 2. 双边循环法 {代码...} 3. 单边循环法 {代码...}

【算法】冒泡排序

2019-06-10
阅读 4 分钟
1.1k
No bb . Show me the code 1. 简单实现 {代码...} 考虑优化 2. 优化 {代码...} 3. 有序区 {代码...} 4. 测试代码 {代码...}

【swoole】结合swoole 和 nsq 的实际应用

2019-06-04
阅读 1 分钟
2.4k
集合 swoole 的框架设计为了减少理解度,我尽量的从源头开始引入 1. nsq 案例中是使用 swoole 结合一个php 框架实现的是 NSQ 订阅功能。 启动命令: sudo bash /www/webserver/bin/swoole.sh start nsq adminexport 解释上面一个指令,使用 bash 执行一个项目中的脚本。 start 对应启动命令nsq : 代表对应使用NSQ 服务ad...

【swoole 学习笔记】swoole 真的优秀一个框架

2019-06-03
阅读 1 分钟
3.5k
前期学完了操作系统,特别是知道了进程,线程 调度的问题。回来看,发现了很多细节。第三次看文档,最初经一个高手朋友的介绍,看swoole,说文档写的贼好。但是看的时候,也是很一头雾水,只知道把demo copy过来使用,没有清楚各个函数的调用关系,不知道实际的应用场景。 当时最有意思的是,连这些不知道,都不知道。 ...

【错误记录】git 推送失败:You are not allowed to push code to this project

2019-05-23
阅读 2 分钟
39.2k
GitLab: You are not allowed to push code to this project.fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.

【学习笔记】关于操作系统学习顺序引导

2019-05-22
阅读 1 分钟
1.8k
1. 堆栈 什么是栈 函数调用的栈的管理 什么是堆 堆的分类,不同的申请和释放方式 2. 进程 进程与进程组 各种不同的进程 一个进程的演变

【学习笔记】1. 进程与进程组

2019-05-20
阅读 4 分钟
2.5k
好烦啊,写了好久的文章,按了 ctrl + shift + H 莫名其妙的页面就关闭了 0 索引 进程与进程组 各种不同的进程 一个进程的演变 1. 进程 关于进程的结构和性质,就不做过多介绍,具体的可以参考下之前的几篇文章。 通常而言,我们打开的一个软件(QQ和微信),执行的一个脚本(hello.c、hello.php/hello.java :可以当做...

【学习笔记】2. 各种不同的进程

2019-05-20
阅读 4 分钟
2.3k
0. 同系列索引 进程与进程组 各种不同的进程 一个进程的演变 1. 进程组 具体的介绍,请参考 进程和进程组的概念 比如 ngixn php-fpm 终止了主进程,关联的子进程就都关闭了 2. 前台进程 和 后台进程 2.1 二者的区别 前台进程,就是运行在终端当前窗口的进程组 2.2 进程的前后台切换 2.3 查看后台进程 后台命令放到前台 3...

【学习笔记】3. 一个进程的演变

2019-05-20
阅读 2 分钟
2k
0. 同系列索引 进程与进程组 各种不同的进程 一个进程的演变 1. init进程 1.1 1号进程的创建 内核态创建进程使用 kernel_thread ,用户态创建进程使用 fork kernel_thread 会创建 init 进程 和 ktheadd 内核线程就是常说的 1号进程和2号进程 1号进程是所有进程的祖先 : 用户空间, 2号进程 负责管理内核中的进程 : 内核...

【学习笔记】3. 内存的 chunk 和 bins

2019-05-13
阅读 3 分钟
5.2k
1. 什么是堆 前面的例子我们已经知道栈是什么。现在我们来介绍下堆,以及堆的实现过程。 在此之前,我们先来回顾下进程的模型 图中的:heap 部分,就是我们所说的堆,我们可以通过移动 brk 指针 来动态扩充。或者使用 mmap 申请大的内存块。 1.1 堆在进程中的地址分布 我们可以通过查看进程消息,查看进程的地址状态 cd ...

【学习笔记】4. 堆的申请和释放

2019-05-13
阅读 3 分钟
2.6k
1. 堆的申请 1.1 过程介绍 关于堆的描述,已经简单的在上面一篇文章中做过简单的介绍。具体可以参考 chunk 和 bins 下面我们来回溯下堆的申请过程 申请的顺序: 如果申请40B大小的chunk,首先去 fast bins 查看链表中是否有合适的,如果有直接返回地址。如果没有,进行下一步 small chunk 里面查找是否有匹配的chunk,如...

【学习笔记】1. 栈的基本知识

2019-05-09
阅读 2 分钟
2.5k
1. 什么是栈 1.1 栈 栈的作用域是进程。在介绍栈之前,我们先来看下进程的结构 注 : stack 就是进程中的栈区域。 1.2 栈的作用范围 栈是C语言运行的基础。进程在运行时,可以不适用堆,但是必须使用栈。 栈主要作用于以下几个方面. 函数参数 局部变量 函数返回值 编译器生产的临时变量 1.3 栈指针 一般用 FP SP 来指向 ...

【学习笔记】2. 函数调用的栈的管理

2019-05-09
阅读 4 分钟
2.2k
记在最初,如果发现有专业术语的错误,请记得及时改正。 这个真的很重要。 1. 无参数传递的函数调用 本例会实际演示一个 只有函数局部变量赋值的demo会先看一下C语言源代码和编译代码,然后一步一步的推演栈的空间使用 1.1 函数源码 C语言源码: 注释: 这个脚本中,main 函数调用 f 函数,各自函数里面有局部变量的定义...