08 2021 档案
摘要:一、IO模型 IO在计算机中指Input/Output,也就是输⼊和输出。 (一)内核空间与用户空间 在计算机中,将空间分为内核空间(Kernel-space)和⽤户空间(User-space)。 在 Linux 系统中,内核模块运⾏在内核空间,对应的进程处于内核态;⽽⽤户程序运⾏在⽤户空间,对应的
阅读全文
摘要:一、零拷贝和NIO (一)零拷贝综述 零拷⻉是⽹络编程的关键,很多性能优化都离不开。 零拷⻉(Zero-copy)技术指在计算机执⾏操作时,CPU 不需要先将数据从⼀个内存区域复制到另⼀个内存区域,从⽽可以减少上下⽂切换以及 CPU 的拷⻉时间。它的作⽤是在数据从⽹络设备到⽤户程序空间传递的过程中,
阅读全文
摘要:一、Broker启动 当每个 broker 启动时,会在 ZooKeeper 中的 /brokers/ids 路径下创建⼀个节点来注册⾃⼰,节点 ID 为配置⽂件中的 broker.id 参数,后注册的 broker 会报 NodeExists 的错。如果不指定 broker.id 或者指定成 -1
阅读全文
摘要:一、配置维护 配置维护也就是配置中心,目前市面上比较常见的配置中心(注册中心)有spring cloud config、Nacos、Apollo等 zk可以通过发布订阅模式实现对集群文件的管理和维护。发布订阅模式分为推模式和拉模式,而zk的发布订阅模式采用的是推拉结合的方式实现的。 实现原理: 首先
阅读全文
摘要:一、重要理论 (一)数据模型 zk 数据存储结构与标准的 Unix 文件系统非常相似,都是在根节点下挂很多子节点。zk 中没有引入传统文件系统中目录与文件的概念,而是使用了称为 znode 的数据节点概念。 znode 是 zk 中数据的最小单元,每个 znode 上都可以保存数据,同时还可以挂载子
阅读全文
摘要:一、单机安装 1、安装RocketMQ需要使用JDK,首先需要配置好JDK,安装JDK 2、下载并启动RocketMQ # 下载RocketMQ wget https://mirrors.bfsu.edu.cn/apache/rocketmq/4.9.0/rocketmq-all-4.9.0-bin
阅读全文
摘要:一、互联网架构遇到的问题 随着大型互联网公司业务的多元化发展,就拿滴滴、美团等大厂来讲,如滴滴打车、单车、外卖、酒店、旅行、金融等业务持续高速增长,单个大型分布式体系的集群,通过加机器+集群内部拆分(kv、mq、Mysql等),虽然具备了一定的可扩展性。但是,随着业务量的进一步增长,这个集群规模琢渐
阅读全文
摘要:一、原生代码小Demo pom: <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.9.0</version> </dependency> producer: //
阅读全文
摘要:一、RabbitMQ安装 (一)安装erlang # 安装依赖 yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel # 下载erlang w
阅读全文
摘要:一、AMQP架构原理 Rabbit是使用Erlang语言开发的,其是基于AMQP协议模型开发的一款MQ(AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计)。 AMQP的结
阅读全文
摘要:一、Helm (一)Helm简介 Helm 是 Kubernetes 的软件包管理工具。在K8S部署时,有deployment、service、rs、pv、pvc等等很多资源需要管理,就非常的麻烦,Helm就是来解决这个问题的。Helm类似于yum安装指令,统一对安装服务进行管理,使得用户不需要关系
阅读全文
摘要:一、PV&PVC (一)说明 对于有状态服务,使用Volume挂载,会存在数据丢失的问题,因此K8S使用数据持久卷(PV、PVC)来做容器的编排。 PV(PersistentVolume--持久卷)是一种特殊的Volume,其是一种Volume插件,其存在与集群内,是由管理员提供存储的一部分。它的生
阅读全文
摘要:一、资源控制器 K8S中内建了很多的控制器,这些控制器都是用来空指Pod的具体状态和行为。从控制器的角度来说,Pod可以分为自主式Pod和控制器管理的Pod。自主式的Pod一旦退出,该类型的Pod就不会被重新创建,而控制器管理的Pod,在控制器的生命周期里,始终要维持Pod的副本数量。 常用的控制器
阅读全文
摘要:一、Volumes Voumes是用来挂在数据的,其生命周期独立于pod中容器的生命周期,容器可能会被销毁或重建,但是Volumes会被保留,但是如果Pod不存在,Volumes也会随即消失。 对于可以挂在的卷其实有很多的选择,例如可以选择本地卷、网络卷、云盘、K8S自身资源等。 本地卷:直接挂载到
阅读全文
摘要:安装docker:yum -y install yum-utils device-mapper-persistent-data lvm2 配置一个稳定的仓库,仓库配置会保存到/etc/yum.repos.d/docker-ce.repo文件中 更新yum安装的相关Docker软件包&安装docker
阅读全文