找一台可以访问外网的CentOS7,然后执行命令下载离线rmp依赖包

mkdir /home/localrepo
cd /home/localrepo

yum install yum-utils createrepo
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

# 下载所有依赖包到目录/home/xtrabackup-rpm
# 如果本机上已经安装过部分依赖,则无法下载下来,只能手动去一个个下载了,所以最好找一个干净的环境做这些事情
yumdownloader --resolve percona-xtrabackup-24 rsync --destdir=/home/xtrabackup-rpm
wget https://repo.percona.com/yum/release/7/RPMS/x86_64/qpress-11-1.el7.x86_64.rpm

createrepo /home/localrepo
tar -zcf /home/localrepo.tar.gz /home/local/repo
阅读全文 »

网络适配器:

  1. 进行数据串行传输和并行传输的转换;
  2. 对数据进行缓存,对接收速率进行匹配;
  3. 对接收的数据进行差错检测;
  4. 跟主机当中的存储器、CPU等部件进行协调;
  5. 实现以太网协议,如数据的封装、发送、地址的检查、接收、有效判断、校验等等。
阅读全文 »

导入大量带有时间格式的数据

load data local infile 'csv文件本地路径' into table 表名称
-- 每个字段值之间由'\t'隔开
fields terminated by '\t'
-- 如果字段值由双引号包裹,则添加下面一行
optionally enclosed by '"'
-- 每行之间的换行符为'\n'
lines terminated by '\n'
-- 如果第一行为字段名,则可以忽略
ignore 1 lines
-- 以下为表中所有字段值,按表结构顺序填写
(id, @gmt_create, ...)
-- 转换日期字符串为MySQL日期类型
set gmt_create=STR_TO_DATE(@gmt_create, 'csv中日期格式')

MySQL日期格式参考: 日期格式化

举头孤星无月陪

地上点点藕丝连

身处四万八千丈

只见高楼不见山

为什么

在传统的单体服务中,我们经常会遇到多线程对于单一资源的抢占导致的线程安全问题以及对数据库数据操作的一致性问题,如果是在单体系统中,我们可以很方便的使用编程语言提供的锁以及数据库事务来解决这些问题。

一旦单体系统转为分布式架构,那么本地事务和线程锁就无法满足跨进程的锁效果;分布式锁则是用于进程间同步访问共享资源的一种方式,通过全局共享来实现全局锁的效果,保证数据的一致性。

总的来说,在分布式系统中,当我们期望一个操作(一个请求、一个方法、一个数据库操作…)在整个系统中同一时间只能有一个线程执行,那我们就需要用到分布式锁; 抽象来看就是两个场景:

  • 单一资源的数据变更:比如对共享存储数据(数据库、缓存…)进行修改,多线程的互斥
  • access token:对于多个资源的原子性操作,期望整个业务逻辑就是单一线程执行保持一致性,在入口处就锁住

分布式锁应该具备的特性:

  • 原子性:在分布式系统中,一个方法在同一时间只能被一个线程执行
  • 阻塞性:在没获取到锁时可以进行阻塞也可以返回失败
  • 高可用:能够正确的获取锁和释放锁,且具备锁失效的能力
  • 高性能:获取锁与释放锁的性能保障
  • 可重入:能够具备可重入特性
阅读全文 »