- 博客(21)
- 收藏
- 关注
原创 如何理解select、poll、epoll?
特性selectpollepoll事件通知机制轮询方式轮询方式事件驱动方式文件描述符限制有限制(通常为 1024)没有固定限制没有固定限制性能文件描述符数量较小时较好适中,但仍有性能瓶颈高效,适合大量并发连接适用场景文件描述符较少的简单应用中等规模的应用高并发网络服务、大规模 I/O触发方式无法控制无法控制支持边缘触发和水平触发内存使用高(需要复制文件描述符集)高(需要复制文件描述符集)低(只需传递事件信息)select:简单易用,适用于少量连接的场景。poll。
2025-01-12 21:09:04
890
原创 操作系统的IO模型有哪些?
阻塞 I/O:简单,但效率较低,适合单线程应用。非阻塞 I/O:提高并发性,但编程复杂。I/O 多路复用:适合高并发应用,如服务器,能通过少量线程处理大量连接。信号驱动 I/O:通过信号通知 I/O 完成,减少轮询,但编程复杂。异步 I/O:无需等待 I/O 操作完成,适合高度并发的场景。直接 I/O:绕过缓存,提高性能,适合大数据量操作。根据具体需求选择适当的 I/O 模型,可以显著提高应用程序的性能和响应能力。
2025-01-12 21:07:12
1064
原创 同步、异步、阻塞、非阻塞怎么理解?
同步 vs 异步:同步是顺序执行,异步是允许并行执行。同步会等待操作完成后再执行下一个操作,异步则可以在等待时做其他任务。阻塞 vs 非阻塞:阻塞会使调用者等待任务完成,非阻塞会立即返回,不会阻塞调用者的执行。
2025-01-12 21:05:26
798
原创 计算机打开电源操作系统做了什么?
电源开启;自检(POST);引导程序加载操作系统;操作系统内核加载并初始化硬件资源;系统服务启动;用户空间程序启动并提供登录界面;用户登录后,操作系统开始接受用户输入并运行应用程序。整个过程通常被称为计算机的启动或引导过程,在传统的 BIOS 系统中需要几秒钟,而在 UEFI 系统中,启动速度会更快,并且支持更多的功能。
2025-01-12 21:03:16
836
原创 Linux查看指定目录下文件所占磁盘空间大小
du -h *:列出当前目录下所有文件和目录的大小。du -ah:列出目录及其中所有文件的大小。du -sh:显示目录的总大小。:显示指定目录及其第一层子目录的大小。
2025-01-12 20:48:03
724
原创 Java中阻塞与等待的区别?
阻塞是指线程由于外部条件(如等待 I/O 操作、获取资源等)无法继续执行,线程会被挂起,直到外部条件满足。等待是指线程主动进入等待状态,通常是因为它在等待其他线程的通知或某个条件的变化。这两个概念的关键区别在于谁控制线程的暂停:阻塞通常是由外部事件(如 I/O 操作)控制的,而等待是由线程自身决定并等待其他线程的唤醒。
2025-01-12 20:45:30
440
原创 什么是callback hell
(回调地狱)是指在编程中,尤其是在处理异步操作时,回调函数嵌套过深而导致代码难以阅读和维护的现象。回调函数是指传递给另一个函数,并在某个时刻被调用的函数。回调地狱的主要问题是,当多个异步操作依赖于回调函数并且这些回调函数彼此之间嵌套时,代码的结构会变得层级化、冗长且难以管理。
2025-01-12 20:37:13
284
原创 zkServer.sh脚本
zkServer.sh 脚本是启动 ZooKeeper 最常用的方法,但其他选项针对不同的部署场景提供了灵活性。最常见的启动 ZooKeeper 的方式是使用提供的 zkServer.sh 脚本。在某些云环境和容器编排平台中,可以将 ZooKeeper 设置为受管服务,通过平台的控制面板或命令行工具启动和管理 ZooKeeper 实例。3.使用 zkServer.sh 脚本或运行 zkServer.sh 命令以适当的参数启动 ZooKeeper。也可以手动启动 ZooKeeper 而不使用提供的脚本。
2025-01-12 20:33:22
391
原创 Kafka安全服务搭建(SASL-SCRAM)
zookeeper和kafka在默认情况下,是没有开启安全认证的,那么任意客户端可以在不需要任何身份认证的情况下访问zookeeper和kafka下的各节点,甚至可以进行节点的增加,修改以及删除的动作。除了最基本的身份认证以外,还有针对每个节点的权限访问,但本文不涉及该话题。如果是集群模式,那么只需要对单机模式的配置文件做相应的修改即可:确保集群中每个broker的broker.id配置参数的值不一样,以及listeners配置参数也需要修改为与broker对应的IP地址或域名,之后就可以各自启动服务。
2024-08-26 18:12:03
1269
2
原创 df命令是什么?
df 命令在Unix和类Unix操作系统中用于显示文件系统的磁盘空间使用情况。它可以提供挂载点的总空间、已使用空间、可用空间以及挂载点的文件系统类型等信息。这将显示所有挂载的文件系统的使用情况,以KB、MB、GB等易于理解的单位表示。df 命令对于诊断磁盘空间不足的问题或者仅仅是为了了解各个分区的使用情况非常有帮助。如果没有指定文件或目录,df 会显示所有当前挂载的文件系统的磁盘空间使用情况。如果指定了文件或目录,df 会显示包含这些文件或目录的文件系统的磁盘空间使用情况。
2024-03-15 14:17:48
540
1
原创 free命令是什么?
free 命令是在Unix和类Unix操作系统中使用的,它用于显示系统中空闲、使用中和交换的内存情况,包括物理内存和交换空间。free 提供了一个快速的概览,帮助你理解当前系统的内存使用情况。这将以易于阅读的格式(如M表示兆字节,G表示吉字节)显示内存信息。free 命令提供的信息非常有用,特别是在监控系统性能或调试可能的内存问题时。
2024-03-15 14:13:46
536
1
原创 常见的位运算技巧
这些技巧在处理复杂问题时尤其有用,尤其是那些涉及集合、数字处理或需要高效运算的情况。在算法竞赛和技术面试中,位运算常常被用于优化解决方案,减少计算时间和空间复杂度。在实际应用中,正确使用这些技巧需要对问题有深入的理解和适当的判断。在算法和编程笔试中,位运算是一个常见且强大的工具。由于位运算通常比其他算术运算更高效,熟悉它们可以在解决问题时带来显著优势。
2024-03-14 16:28:04
570
原创 kube-proxy是什么?
kube-proxy 是 Kubernetes 集群中的一个关键组件,负责为服务提供网络代理和负载均衡。它运行在每个节点上,确保节点内和跨节点的通信。kube-proxy 使得外部用户和服务可以通过统一的接口访问集群内的应用,即便这些应用可能分布在不同的节点上。
2024-03-12 17:38:57
524
1
原创 客户端连接超时,报connection reset by peer问题解决方案
原生ES无keepalive参数,依赖的是系统自带的tcp_keepalive,检查宿主机和pod内核参数,net.ipv4.tcp_keepalive_time=7200,即系统默认tcp探活时间 为7200,大于ipvs的900S,链接被IPVS重置回收。修改宿主机node系统参数net.ipv4.tcp_keepalive_time < 900S 如果ES client是容器部署的,也可以考虑容器使用initContainer单独配置容器的net.ipv4.tcp_keepalive_time。
2024-03-12 16:46:15
4061
1
原创 kafka安全机制(SASL_SCRAM)
zookeeper和kafka在默认情况下,是没有开启安全认证的,那么任意客户端可以在不需要任何身份认证的情况下访问zookeeper和kafka下的各节点,甚至可以进行节点的增加,修改以及删除的动作。除了最基本的身份认证以外,还有针对每个节点的权限访问,但本文不涉及该话题。如果是集群模式,那么只需要对单机模式的配置文件做相应的修改即可:确保集群中每个broker的broker.id配置参数的值不一样,以及listeners配置参数也需要修改为与broker对应的IP地址或域名,之后就可以各自启动服务。
2024-03-07 11:07:21
2956
1
原创 XPath是什么?
这些是一些基本的 XPath 规则,你可以根据实际情况和网页结构编写更复杂的规则。在 Scrapy 中,你可以在 Spider 的回调函数中使用 response.xpath() 方法,传入相应的 XPath 表达式,以提取你感兴趣的数据。XPath 规则(XPath expressions)用于在 XML 或 HTML 文档中选择元素或节点。在 Scrapy 中,response.xpath() 方法用于根据这些规则从网页响应中提取数据。选择所有元素://*
2024-03-06 16:46:16
377
1
原创 robots.txt是什么?
Sitemap(网站地图)是一个XML文件,用于向搜索引擎提供网站的结构化信息,以帮助搜索引擎更有效地抓取和索引网站的页面。它是一个包含了网站中重要页面URL的列表,通常还包括这些页面的相关信息,例如最后修改时间、更新频率和优先级等。通过提交 Sitemap,网站管理员可以更主动地引导搜索引擎抓取和索引网站的内容,提高网站在搜索结果中的可见性和排名。这个示例文件告诉网络爬虫不要访问 private 和 admin 目录,等待10秒后再发送下一个请求,并指定了网站的 XML Sitemap 文件的位置。
2024-03-06 16:43:55
1226
1
原创 QEMU是什么?
它允许您在一个平台上运行一个或多个操作系统,这些操作系统与宿主机(即运行 QEMU 的机器)的原生操作系统完全隔离。QEMU 可以在没有硬件加速支持的情况下通过解释执行指令来模拟整个计算机系统,也可以在支持虚拟化技术(如 Intel VT 或 AMD-V)的硬件上运行,提供接近原生的性能。QEMU 可以独立使用,也经常与其他虚拟化和模拟工具一起使用,如 VirtualBox 或 VMware 提供的用户界面,或者与 libvirt 这样的虚拟化管理库配合使用,以简化虚拟机的管理和操作。
2024-03-06 16:32:12
1867
1
原创 apt-get是什么?
随着时间的推移,apt 命令被引入作为 apt-get 和其他 apt-* 工具的更友好的前端,提供了更简洁的命令行选项和输出格式,但 apt-get 仍然在很多情况下被广泛。apt-get 是 Linux 系统中的一个命令行工具,用于处理基于 Debian(包括 Ubuntu 和其他 Debian 衍生版本)的软件包的安装、更新和移除。它是 Advanced Packaging Tool (APT) 系统的一部分,旨在自动化下载、安装、配置软件包的过程,以及处理软件包之间的依赖关系。
2024-03-06 16:30:08
961
1
原创 Docker 系统资源清理
这条命令的作用是清理Docker环境中不再需要的资源,以节省存储空间。这些资源包括已停止的容器、未使用的网络、悬挂的镜像以及构建缓存。它用于删除未使用的数据(如未使用的镜像、容器、网络和存储卷)以释放磁盘空间。该命令将提示确认是否要清理未使用的镜像、容器、网络和存储卷。这将清理所有未使用的镜像、容器、网络和存储卷,释放更多磁盘空间。这将自动清理未使用的镜像、容器、网络和存储卷,而无需手动确认。如果只想清理特定的资源,例如只删除已停止的容器,可以使用其他更具体的命令,如。如果想跳过确认提示,可以使用。
2023-10-27 18:38:00
2355
1
原创 Maven中一些不同版本后缀的含义
在Maven项目中,版本号的末尾可能会带有不同的后缀,如Final、Beta、Alpha和CR,这些后缀通常表示软件的开发阶段和稳定性水平。这些后缀帮助开发者了解软件版本的稳定性和可靠性,从而更好地选择适合其需求的版本。在Maven的依赖管理中,可以根据项目的需求选择适当稳定性水平的依赖版本。例如:1.0.0-Final。例如:3.5.0-Alpha。例如:2.3.0-Beta。例如:4.2.0-CR。
2023-10-27 18:19:29
789
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人