拾忆

生活与技术


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

Mybatis使用总结

发表于 2019-12-09
阅读全文 »

idea开发环境配置指引手册

发表于 2019-12-05 | 分类于 开发效率

概述

在平时的工作中,难免遇到重装系统,换电脑之类的问题,这些问题解决之后,就要重新搭建我们的开发环境,这就
包括idea的安装和配置问题了,本篇文章,旨在记录搭建idea开发环境的各个方面,激活,汉化,插件,类注释,方法注释等等。

阅读全文 »

分布式基础之cap理论详解

发表于 2019-12-02

概述

在刚开始接触分布式就听说过cap理论,大致看过一点,其实不是很明白,也是由于当时自身水平受限。最近开始找工作,遇到了好几个
面试官询问cap相关知识,当时只能大致说一下cap的基本内容:

  1. 一致性,可用性,分区容错性
  2. 三者只能达其二

仅此而已,非常浅显,这是不够的,因此,特地各种查找资料,寻找示例,试图理解cap理论。

关于p

p,即Partition tolerance,很多翻译都说是分区容错性,在我理解了一些之后,我觉得这个翻译是有问题的,翻译成分区容忍更好。
什么意思,就是容忍系统有网络分区,处于不同网络的子系统之间可能因为网络不可达或者其他原因造成的系统被分为多个网络区。

p对我来说最难理解,不过当翻译变过来之后,就感觉很容易理解了。

一般来说,在分布式系统中,p几乎是必然存在的,为什么?因为网络层面的问题不可避免。

那么我们要如何保证分区容忍性呢?

  1. 当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。
  2. 提高分区容忍性的办法就是一个数据项复制到多个节点上,那么出现分区之后,这一数据项就可能分布到各个区里。容忍性就提高了。

保证了分区容忍性,就带来了另一个问题,数据的一致性。

为了保证数据一致性,数据同步的时间就越长,可用性就会降低。

阅读全文 »

java并发包基础类AbstractQueuedSynchronizer源码分析

发表于 2019-11-28 | 分类于 java

概述

AbstractQueuedSynchronizer代码之前读过,没有写个总结,这次在看线程池源码的时候又遇到了,发现忘记了很多关键性的内容,因此,特地翻出来,再看看

阅读全文 »

java线程池的实现原理分析

发表于 2019-11-28 | 分类于 java

概述

昨晚在电话面试的时候,面试官问我Java多线程的实现方式,使用什么数据结构?说实话,我没有get到点,不过这也勾起了
我的疑问,Java的线程池到底是怎么实现的?

今天来就把jdk1.8的源码扯出来,准备看一下线程池这块的实现方式。线程池这块的核心类是ThreadPoolExecutor,也是本文分析
的主体。

可能网上的源码解析已经很多了,但是,我不自己看一下,还是觉得没理解,看了就得记一下。

早上被拉去开会了,中午刚好看了一会儿线程池源码,得,中午面试又问到这了,嘿嘿嘿。

阅读全文 »

git使用技巧—压缩琐碎的历史提交

发表于 2019-11-27 | 分类于 git

概述

在开发runc仿制品toy-container的时候,在调试过程中,经常会对代码做简单的修改,
然后做了提交,虽然有意识的使用git commit –amend来共享上一次提交的日志,但是,不免还是会有一些琐碎的提交出现,因此想要使用git提供的
命令行工具,将历史提交给压缩一下,让提交变得整洁一些。

阅读全文 »

linux0.11中的mount工作流程

发表于 2019-11-22 | 分类于 Linux 内核
概述在linux0.11内核中,有全局的super_block数组(大小为8)和全局的inode数组(大小为32)。super block数组的大小为8,以为着最多可以常驻8个文件系统的超级块,也就是说最多可以挂载8个不同的文件系统。inode数组的主要作用是为了缓存最近使用的inode数据。 对于 ...
阅读全文 »

git使用技巧记录——日常更新

发表于 2019-11-18 | 分类于 git
介绍git作为非常有用的开发工具,值得每个开发人员熟练掌握,并且,对于git的掌握越深入,对我们的开发工作就越有利。本片文章,是我日常使用git时的一些记录,并且会时常更新,如果已经记录过的命令,有了遗忘,我会在该命令下记录再次学习的时间,并且学习次数+1。 git diffgit diff命令是用 ...
阅读全文 »

systemd学习笔记

发表于 2019-11-11 | 分类于 linux
概述在各种新技术的教程中,看到了服务启动从service apache2 start变到了systemctl start apache2.service,心中充满了疑惑,这是什么东西?通过浏览各种博客,我下了一个初步的结论,service service-name start我不需要做过多的了解了, ...
阅读全文 »

grpc入门手册学习

发表于 2019-11-08 | 分类于 docker
概述本篇文章之所以位于docker目录,是因为是在学习docker底层原理的过程中,涉及到了grpc框架,需要对该框架有一个完整的了解。本文基本上是对grpc官方文档的一个总结归纳,没有新鲜的东西。 主要包括以下一些内容: gRPC buffers.gRPC协议 Interface Definit ...
阅读全文 »
123

王千一

记录生活和技术

23 日志
10 分类
18 标签
© 2020 王千一
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4