Linux磁盘、文件系统管理 2020-01-07 磁盘接口类型 并口的同一个线缆上可以接多个设备。 串口的同一个线缆上可以接一个设备。 IDE:并口,133MB/s、IOPS=100、非企业级 SCSI:并口,Ultrascsi320,320MB/S,Ultrascsi640,640MB/S。 IOPS=150 企业级 SATA:串口,6gbps。 IOPS=100 非企业级 SAS:串口(SCSI),6gbps。 IOPS=150 企业级 USB:串口,480MB/s 普通 SATA 固态硬盘:IOPS=9W PCI-E 固态硬盘:IOPS=10W~50W 一切皆文件 设备类型 块(block):随机访问、数据交换单位是“块”。 字符:线性访问,数据交换单位是“字符”。 设备文件 一切皆文件,设备也需要以文件的形式存在:/dev/*,设备文件主要作用是关联至设备的驱动程序。 设备号 major:主设备号,区分设备类型;用于标明设备所需要的驱动程序。 minor:次设备号,区分同种类型下的不同的设备;是特定设备的访问入口。 创建(申请)设备文件 # 创建字符类型设备,主版本号 111 次版本号 1 [root@loc....
RocketMQ集群高可用之双主双从 2020-01-07 机器列表 server1 ssh root@192.168.159.133 部署nameServer Broker-a server2 ssh root@192.168.159.130 部署nameServer Broker-a-s server3 ssh root@192.168.159.131 Broker-b server4 ssh root@192.168.159.132 Broker-b-s 修改 RocketMQ 启动内存配置 4 个机器都要修改, 其中 runbroker.sh 修改 4 个,runserver.sh 修改 2 个 # 解决NameServer内存不满足4G的报错:修改2个 vim /test/rocketmq/distribution/target/apache-rocketmq/bin/runserver.sh #修改JAVA_OPT JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" #....
CentOS系统启动流程 2020-01-07 Linux 系统的组成部分 Linux 系统主要由内核、根文件系统组成。 # 内核的功能 进程管理、内存管理、网络协议栈、文件系统、驱动程序、安全功能 运行中的系统环境可分为两层 用户空间:应用程序(进程或线程) 内核空间:内核代码(系统调用) 内核设计流派 单内核设计:把所有功能集成于同一个程序。Linux 微内核设计:每种功能使用一个单独的子系统实现。Windows、Solaris 内核的组成部分 核心文件:/boot/vmlinuz-3.10.0-957.21.3.el7.x86_64 ramdisk:临时根文件系统。/boot/initramfs-3.10.0-957.21.3.el7.x86_64.img 模块文件:/lib/modules/3.10.0-957.21.3.el7.x86_64/* .* Filesystem Hierarchy Standard 文件系统层级结构标准 所有 Linux 发行版遵循的根文件系统结构的标准规范,明确规范了根下所有目录的命名规范与职能。 系统分区规划的意义 BIOS Boot (标准分区):Boot Loa....
分布式事务消息 2020-01-07 分布式事务 单体应用被拆为分布式应用,一个借口需要调用多个服务,且操作不同的数据库,数据一致性难以保障。 常见解决方案 2PC : 两阶段提交, 基于 XA 协议 TCC : Try、Confirm、Cancel 框架 GTS -> 开源 Fescar 链接 LCN 链接 RocketMQ4.X 分布式事务消息架构 RocketMQ 事务消息 RocketMQ 提供分布事务功能,通过 RocketMQ 事务消息能达到分布式事务的最终一致。 半消息 Half Message 暂不能投递的消息(暂不能消费),Producer 已经将消息成功发送到了 Broker 端,但是Broker 端未收到 Produce 对该消息的二次确认,此时该消息被标记成“暂不能投递”状态,处于该种状态下的消息即半消息。 消息回查 由于网络闪断、生产者应用重启等原因,导致某条事务消息的二次确认丢失,消息队列 RocketMQ 服务端通过扫描发现某条消息长期处于“半消息”时,需要主动向消息生产者询问该消息的最终状态(Commit 或是 Rollback),该过程即消息回查。 整体交互流程 ....
Offset、CommitLog、ZeroCopy 2020-01-07 消息偏移量 Offset 一个 Topic 下面有多个 message queue,message queue 是无限长的数组,一条消息进来下标就会涨 1,下标就是 offset(索引的位置),消息在某个 MessageQueue 里的位置,通过 offset 的值可以定位到这条消息,或者指示 Consumer 从这条消息开始向后处理。 message queue 中的 maxOffset 表示消息的最大 offset, maxOffset 并不是最新的那条消息的 offset,而是最新消息的 offset+1,minOffset 则是现存在的最小 offset。 fileReserveTime=48 默认消息存储 48 小时后,消息会被物理地从磁盘删除,message queue 的 min offset 也就对应增长。(1-5000,消息删除之后,1001-5000)所以比 minOffset 还要小的那些消息已经不在 broker 上了,就无法被消费。 Offset 的存储类型 本地文件类型:DefaultMQPushConsumer 的 BROADCASTING 模式,各....
RocketMQ消费者核心概念 2020-01-07 常见核心配置 consumeFromWhere 配置 参考 CONSUME_FROM_FIRST_OFFSET: 初次从消息队列头部开始消费,即历史消息(还储存在broker的)全部消费一遍,后续再启动接着上次消费的进度开始消费 CONSUME_FROM_LAST_OFFSET: 默认策略,初次从该队列最尾开始消费,即跳过历史消息,后续再启动接着上次消费的进度开始消费 CONSUME_FROM_TIMESTAMP : 从某个时间点开始消费,默认是半个小时以前,后续再启动接着上次消费的进度开始消费 allocateMessageQueueStrategy:负载均衡策略算法,即消费者分配到 queue 的算法,默认值是 AllocateMessageQueueAveragely 即取模平均分配。 offsetStore:消息消费进度存储器 offsetStore 有两个策略: * LocalFileOffsetStore : Consumer记录消息的消费进度。 * RemoteBrokerOffsetStor : Broker记录消息的消费进度。 广播模式默认使用Lo....
Docker引擎 2019-08-24 简介 Docker引擎是用来运行和管理容器的核心软件。基于开放容器计划(OCI)相关标准要求,Docker引擎采用了模块化的设计原则,其组件是可替换的。 Docker引擎主要组件构如下: Docker客户端 Docker守护进程 containerd runc 摆脱LXC LXC提供了对诸如:命名空间、控制组、等基础工具的操作能,他们是基于Linux内核的容器虚拟化技术。 因为LXC是基于Linux,这不利于Docker实现跨平台,其次,如果核心的组件依赖于外部工具,会给Docker项目带来巨大的风险。因此,Docker公司开发了名为Libcontainer的自研工具,用于替代LXC。Libcontainer的目标是成为与平台无关的工具,可基于不同内核为Docker上层提供必要的容器交互功能。在Docker 0.9版本中,Libcontainer取代 拆分大而全的Docker daemon 随着时间的退役,Docker daemon的整体性带来了越来越多的问题。 难于变更。 运行越来越慢。 Docker公司意识到这些问题,开始努力着手拆解大而全的Docker da....