跳至主要內容
代码小郭的技术博客

代码小郭的技术博客

我们一起来搬砖

Netty权威指南读书笔记

一、I/O基础概念

1、文件描述符

对文件的读写操作会调用内核提供的系统命令,并返回一股file descriptor ,简称fd, 是一个数字,指向内核中的一个结构体(文件路径,数据区等一些属性)。 类似的,对一个socket的读写也会产生相应的描述符(socketfd)。

2、5种I/O模型

UNIX网络编程提供的5种I/O模型:

1)阻塞I/O模型:

最常用,默认情况所有文件操作都是阻塞的。


代码小郭...大约 21 分钟开源框架NIO
MySQL

1、说一说三大范式

  • 「第一范式」:数据库中的字段具有**「原子性」**,不可再分,并且是单一职责
  • 「第二范式」「建立在第一范式的基础上」,第二范式要求数据库表中的每个实例或行必须**「可以被惟一地区分」**。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主键
  • 「第三范式」「建立在第一,第二范式的基础上」,确保每列都和主键列直接相关,而不是间接相关不存在其他表的非主键信息

代码小郭...大约 10 分钟技术题库MySQL
Zookeeper

1. 什么是Zookeeper

Zookeeper是个数据库,文件存储系统,并且有监听通知机制(观察者模式)。

ZooKeeper主要服务于分布式系统,可以用ZooKeeper来做:统一配置管理、统一命名服务、分布式锁、集群管理。

使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),ZooKeeper能够通用解决这些问题的中间件。

2. Zookeeper的节点分类

zk的节点类型有4大类

  • 持久化节点(zk断开节点还在)
  • 持久化顺序编号目录节点
  • 临时目录节点(客户端断开后节点就删除了)
  • 临时目录编号目录节点

代码小郭...小于 1 分钟技术题库服务发现与注册
Dubbo

1、解释一下RPC

RPC 的出现就是为了让你调用远程方法像调用本地方法一样简单。

2、说说对dubbo的了解

从历史发展的角度来答:阿里巴巴开源的一个基于 Java 的 RPC 框架,在2017年重新开始维护,并且在 2018 年和当当的 Dubbox 进行了合并,进入 Apache 孵化器,在 2019 年毕业正式成为 Apache 顶级项目。 Dubbo 社区主力维护的是 2.6.x 和 2.7.x 两大版本,2.6.x 版本主要是 bug 修复和少量功能增强为准,是稳定版本。最新的 3.0 版本往云原生方向上探索着。


代码小郭...大约 4 分钟技术题库Dubbo
消息组件

1、常见的消息中间件有哪些

目前在市面上比较主流的消息中间件主要有,Kafka、ActiveMQ、RabbitMQ、RocketMQ 等这几种。

消息中间件一般用来在分布式系统中实现异步、削峰、解耦

2、消息模型

消息模型有队列模型和发布订阅模型。

队列模型每条消息只能被一个消费者消费,而发布/订阅模型就是为让一条消息可以被多个消费者消费而生的,当然队列模型也可以通过消息全量存储至多个队列来解决一条消息被多个消费者消费问题,但是会有数据的冗余。


代码小郭...大约 4 分钟技术题库消息组件
Netty知识点

1、Netty 是什么?

👨‍💻面试官 :介绍一下自己对 Netty 的认识吧!小伙子。

🙋 :好的!那我就简单用 3 点来概括一下 Netty 吧!

  1. Netty 是一个 基于 NIO 的 client-server(客户端服务器)框架,使用它可以快速简单地开发网络应用程序。
  2. 它极大地简化并优化了 TCP 和 UDP 套接字服务器等网络编程,并且性能以及安全性等很多方面甚至都要更好。
  3. 支持多种协议 如 FTP,SMTP,HTTP 以及各种二进制和基于文本的传统协议。

代码小郭...大约 12 分钟技术题库Netty
SpringCloud

1、什么是SpringCloud

Spring Cloud就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如服务发现注册配置中心消息总线负载均衡断路器数据监控等操作,而 Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。

2、SpringCloud的组件架构


代码小郭...大约 5 分钟技术题库
基础组件的docker离线部署

本文总结了如何在linux环境下通过docker compose离线部署各种基础应用组件,后续会增加更多的应用组件部署说明,有需要的朋友可以关注我!

一、离线部署 minio(单机)

1、离线安装包获取

  • 先在有网络的机器环境下安装并导出minio镜像
#拉取最新的minio(需要网络)
docker search minio
docker pull minio/minio
#查看已安装的minio镜像
docker images
#导出minio镜像的安装包
docker save minio/minio -o minio.tar

代码小郭...大约 10 分钟容器化docker
容器化docker技术-Docker Compose

Docker Compose 官方文档

一、简介

自 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/

    不建议使用此安装方案,仅出于向后兼容性目的而支持此安装方案


代码小郭...大约 4 分钟容器化docker
Python学习笔记

本文是小郭在学习Python时按个人习惯总结的学习笔记,记录在此,方便后续查阅。

官网中文文档:Python 教程 — Python 3.12.1 文档

1、起源

python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。


代码小郭...大约 64 分钟Python

参与贡献😄

  1. 如果你对本博客有任何建议或发现内容有误的,欢迎提交 issues 进行指正。
  2. 对于文中我没有涉及到知识点,欢迎提交 PR。
  3. PR和issues提交入口:点击网页右上角github图标进入。