浅谈分布式系统的一致性

分布式系统的由来分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。 简单来说,就是通过分治法,将一个任务拆成多个子任务分给不同计算机节点处理 以下是一个常见的互联网架构图,也是一个基本的分布式系统,Nginx层负责代理,WebServer层负责中台组装数据,service层由很多的微服务(无状态、有状态都存在)组成,还有专门的DB。 分片与副本分片以DB举例: 对于数据级别到数百上千万的DB ...

Read More...

为什么会RST

近日,在工作中遇到了一个相对棘手的网络问题 go客户端在下载Nginx服务的图片过程中时不时会出现一些connection reset by peer 实际就是Nginx发了RST过来 针对于这个问题查了一圈,网上一大堆清一色答复: SYN数据段指定的目的端口处没有接收进程在等待。 TCP想放弃一个已经存在的连接。 TCP接收到一个数据段,但是这个数据段所标识的连接不存在。 那么我们就按照答复一个解读一下 shshshhs ...

Read More...

Cassandra的简单理解

主键:主键也作为分区键,有两种类型的主键 单个主键:单个主键由以下语法指定。语法: 1主键(ColumnName) 在单个主键中,只有一个列。该列也称为分区键。数据根据该列进行分区。数据根据分区键分布在不同的节点上。 复合主键:复合分区键由以下语法指定。语法: 1主键((ColumnName1,ColumnName2),ColumnName3 ...)) 在上面的语法中,ColumnName1和ColumnName2是复合分区键。数据 ...

Read More...

浅谈大端模式和小端模式

一、什么是大端和小端模式最近在复习的时候才了解到大端模式和小端模式,这两种模式是指字节放置内存的顺序。小端模式:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。大端模式:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 低位 ----------> 高位 0x12345678 小端模式 大端模式 二、为什么要有大小端模式之分因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个 ...

Read More...

大表如何加字段?

mysql 5.5之前 表插入字段的其实很奇妙,在表添加索引修改列等操作时,竟然会锁表,这样在大表中添加列或添加索引就是灾难级的了,直接堵塞了所有操作。那么解决这种方式要怎么做? 首先新建Temp table,表结构是 ALTAR TABLE 新定义的结构 然后把原表中数据导入到这个Temp table(最好是将原表加上读锁,别让数据进来,避免数据不一致;或者是在原表加一个触发器,让在导入过程中原表的写入操作也同步到新表中) 删除原表 ...

Read More...

mysql数据迁移怎么做?(仅30万+数据而已)

最近在做一个数据库迁移,把做了的东西mark以下。 发现不管是大数据量还是小数据量,其实流程大致遵循上面的流程其实就差不多了,只不过在大数据量下可能2和3要做一次脚本才行。 1. 锁表如果贵项目是允许数据错误的话其实锁不锁都可以,不过最好在迁移数据的时候加上个只读锁,防止数据错乱。(另外千万不要断开连接,如果断开连接则表锁自然释放)123456// 全局加只读锁(软件上的所有库表)FLUSH TABLES WITH READ LOCK ...

Read More...

有趣的VIM加密操作

创建一个文件前,使用 -x选项即可vim -x [文件] 已有文件,在文件中执行:X 值得注意的是:在输入密码错误的情况下,它仅仅只能将你已经输入的字符乱码,但是也还是可以被删除和修改的。 参考自:怎样在Linux中用Vim对文件进行密码保护 ...

Read More...

简单聊一下表Select count

数据如图: 按照*方式查找 :SELECT count(*) FROM test 结果如下: 按照指定字段查询 :SELECT count(name) FROM test 结果如下: 是按照虚拟字段查询:SELECT count(1) FROM test 结果如下: 为什么会造成以上的差异呢?原因是: count(*)其实是按每个字段读一次,对比每个字段的count,最终得出最大值6 count(name)则是仅读name字段下的值 ...

Read More...