一、I/O基础概念
1、文件描述符
对文件的读写操作会调用内核提供的系统命令,并返回一股file descriptor ,简称fd, 是一个数字,指向内核中的一个结构体(文件路径,数据区等一些属性)。 类似的,对一个socket的读写也会产生相应的描述符(socketfd)。
2、5种I/O模型
UNIX网络编程提供的5种I/O模型:
1)阻塞I/O模型:
最常用,默认情况所有文件操作都是阻塞的。
我们一起来搬砖
对文件的读写操作会调用内核提供的系统命令,并返回一股file descriptor ,简称fd, 是一个数字,指向内核中的一个结构体(文件路径,数据区等一些属性)。 类似的,对一个socket的读写也会产生相应的描述符(socketfd)。
UNIX网络编程提供的5种I/O模型:
最常用,默认情况所有文件操作都是阻塞的。
Zookeeper是个数据库,文件存储系统,并且有监听通知机制(观察者模式)。
ZooKeeper主要服务于分布式系统,可以用ZooKeeper来做:统一配置管理、统一命名服务、分布式锁、集群管理。
使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),ZooKeeper能够通用解决这些问题的中间件。
zk的节点类型有4大类
RPC 的出现就是为了让你调用远程方法像调用本地方法一样简单。
从历史发展的角度来答:阿里巴巴开源的一个基于 Java 的 RPC 框架,在2017年重新开始维护,并且在 2018 年和当当的 Dubbox 进行了合并,进入 Apache 孵化器,在 2019 年毕业正式成为 Apache 顶级项目。 Dubbo 社区主力维护的是 2.6.x 和 2.7.x 两大版本,2.6.x 版本主要是 bug 修复和少量功能增强为准,是稳定版本。最新的 3.0 版本往云原生方向上探索着。
目前在市面上比较主流的消息中间件主要有,Kafka、ActiveMQ、RabbitMQ、RocketMQ 等这几种。
消息中间件一般用来在分布式系统中实现异步、削峰、解耦
消息模型有队列模型和发布订阅模型。
队列模型每条消息只能被一个消费者消费,而发布/订阅模型就是为让一条消息可以被多个消费者消费而生的,当然队列模型也可以通过消息全量存储至多个队列来解决一条消息被多个消费者消费问题,但是会有数据的冗余。
👨💻面试官 :介绍一下自己对 Netty 的认识吧!小伙子。
🙋 我 :好的!那我就简单用 3 点来概括一下 Netty 吧!
Spring Cloud
就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等操作,而 Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。
本文总结了如何在linux环境下通过docker compose离线部署各种基础应用组件,后续会增加更多的应用组件部署说明,有需要的朋友可以关注我!
#拉取最新的minio(需要网络)
docker search minio
docker pull minio/minio
#查看已安装的minio镜像
docker images
#导出minio镜像的安装包
docker save minio/minio -o minio.tar
自 2023 年 7 月起,Compose V1 停止更新,不再出现在新的 Docker Desktop 版本中。Compose V2 是目前最新的版本。
官方提供了三种方式:
安装Docker Desktop(window、linux、macos)
获取 Docker Compose 的最简单和推荐的方法是安装 Docker Desktop。Docker Desktop 包括 Docker Compose 以及 Docker Engine 和 Docker CLI,后两个组件是 安装运行Compose 的前提条件。
如果已经安装了 Docker Desktop,则可以通过从 Docker 菜单中选择 About Docker Desktop 来检查当前的 Compose 版本。
安装Compose插件(仅支持linux)
如果已经安装了 Docker 引擎和 Docker CLI,则可以通过以下任一方式从命令行安装 Compose 插件:
1)使用docker repository命令在线安装
2)下载Compose安装包离线安装
安装Compose单机版(linux、window)
可以在 Linux 或 Windows Server 上安装 Compose 单机版。详情参考:https://docs.docker.com/compose/install/standalone/
不建议使用此安装方案,仅出于向后兼容性目的而支持此安装方案
本文是小郭在学习Python时按个人习惯总结的学习笔记,记录在此,方便后续查阅。
官网中文文档:Python 教程 — Python 3.12.1 文档
python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。