GO面试题集锦快答

slice 扩容机制

GO1.17版本及之前
当新切片需要的容量cap大于两倍扩容的容量,则直接按照新切片需要的容量扩容;
当原 slice 容量 < 1024 的时候,新 slice 容量变成原来的 2 倍;
当原 slice 容量 > 1024,进入一个循环,每次容量变成原来的1.25,直到大于期望容量。

GO1.18之后
当新切片需要的容量cap大于两倍扩容的容量,则直接按照新切片需要的容量扩容;
当原 slice 容量 
    

REDIS面试问题总结

系统命令

shutdown 正常关闭服务器
redis-server 启动服务器
redis-cli 客户端连接服务器
flushall 删库跑路,一般不这么做

REDIS 持久化 RDB AOF 区别

RDB:[Redis Database] 在指定时间间隔把内存中的数据快照写入磁盘,之后可以备份快照,或者复制到其他服务器创建相同副本,或者服务器重启也会用到这个快照恢复数据,默认持久化方式

触发时机
手动执行save和bgsave时
配置文件 设置  save <seconds> <
    

GitLab 打脸“Ruby on Rails 已死”言论:我还在用呢!

Ruby语言曾在2013至2015年期间非常流行,但随后流行度下降。早在3年前就在业界传出过“Ruby及Ruby on Rails已死”的言论,然而时至今日,连GitLab的CEO Sid Sijbrandij都发文表示:Ruby on Rails仍然是GitLab的坚定选择。那么,这项正走向没落技术究竟具有何种魔力?

“两全其美”的Ruby on Rails

Ruby on Rails(官方简称为Rails,亦被简称为RoR),是一个使用Ruby语言写的开源Web应用框架。Rails的设计原则包括“不做重复的事”(Don't Repeat Yourself)和“惯例优于设定”(Convention Over Configuration,因此一经发布便被不少开发者及大厂采用。…

Webstorm是什么软件?

WebStorm 是一款由 JetBrains 开发的集成开发环境(IDE),它是专门为开发 Web 应用程序而设计的。它提供了许多功能,例如代码自动完成、错误突出显示、重构、调试、版本控制等,可以帮助开发人员提高效率和代码质量。WebStorm 支持多种前端技术,例如 HTML、CSS、JavaScriptTypeScriptReact、Angular、Vue.js 等等,还支持 Node.js 和其它后端技术。WebStorm 是一款商业软件,但是 JetBrains 也提供了学生和开源项目免费使用的许可证。…

2023 Web Components 现状

最近,我写了一篇关于如何构建你的第一个 Web 组件的文章,以及一些关于基本的 v1 Web 组件规范的历史和解释。但自 2020 年 v1 获得完全支持以来,Web Components 的世界发生了更多的变化。未来还有更多的计划。让我们看一些使用当前标准构建的值得关注的例子,以及调查一些将在 2023 年及以后推出的新的 Web Components 标准工作[1]。…

一文了解容器编排

在本文中,我们将讨论什么是容器编排,为什么它很重要,以及当今流行的一些容器编排工具。​

容器编排是现代软件开发的关键之一,它使企业能部署和管理大规模的容器化应用。在本文中,我们将讨论什么是容器编排,为什么它很重要,以及当今流行的一些容器编排工具。

什么是容器编排?

容器编排是容器应用的自动部署、扩展和管理过程。容器是轻量级、可移植的软件单元,它可以在任何地方运行,所以是现代分布式应用的理想选择。然而,管理容器化的应用非常复杂,因为应用通常由多个容器组成,但容器必须作为单个实体进行部署、配置和管理。

容器编排工具恰好为自动化任务提供了平台,能让企业轻松管理大型容器化的应用。平台可以实现自动部署、负载平衡、服务发现、扩展和监控等功能,从而更容易管理复杂的容器化应用。

最流行的容器编排工具之一是由谷歌开发的Kubernetes。Kubernetes为容器化应用自动部署、扩展和管理提供了平台,并且还有一个庞大且活跃的社区。其他流行的容器编排工具包括Docker Swarm、Apache Mesos和Nomad。

容器编排对于开发和部署现代分布式应用的企业非常重要。

容器化提高了可移植性、可扩展性和灵活性。然而,要想管理容器化应用并不容易,尤其是容器和应用数量在不断增加。容器编排工具提供了一种自动化管理容器化应用的方式,使得企业能够轻松地部署和管理复杂的应用程序;还有助于确保应用的高可用性、可扩展性和可靠性,从而更容易向客户提供高质量的服务。

为什么容器编排重要?

容器编排在许多方面都非常重要,特别是对于开发和部署现代分布式应用的企业来说。以下是容器编排重要的关键原因:

自动化

容器编排工具能够让企业自动部署、扩展和管理容器化应用程序,减少了手动干预的需求,使管理大规模应用程序更加容易。

可扩展性

容器编排工具提供了一些功能,如自动扩展和负载平衡。这样一来,无论是向上或向下扩展应用程序都变得轻松,可以随着需求的变化而变化。容器编排平台还可以根据需求添加或删除容器,从而轻松横向扩展应用程序。

可利用性

容器编排工具通过提供服务发现和自我修复等功能,确保应用程序的高可用性和可靠性。

便携性

容器是可移植的,这意味着不论是从本地开发环境到还是到公共云平台,它们可以在任何地方运行。容器编排工具能让企业跨环境和平台管理容器化应用,从而轻松在不同的基础设施供应商之间移动应用程序。容器编排平台提供了高度可移植性,能让开发人员从本地数据中心到公共云的任何环境中运行应用程序。

灵活性

容器编排工具为管理容器化应用提供了一个灵活的模块化平台,使定制和扩展平台更加容易,从而满足特定需求。

效率

容器编排平台将管理容器化应用涉及的许多任务自动化,从而为开发人员节省时间并降低出错风险。

弹性

容器编排平台提供自我修复功能,即使应用出现故障也能保证可用性和响应能力。

总的来说,容器编排对于开发和部署现代分布式应用的企业来说至关重要。将容器化应用的部署、扩展和管理自动化,不仅可以让企业向客户提供高质量的服务,还可以降低管理容器化应用的复杂性和成本。

流行的容器编排工具

目前有几种容器编排工具可供开发者用,每种工具都有自己的优势和劣势。最流行的容器编排工具是Kubernetes,它是一个用于管理容器化应用的开源平台。Kubernetes为管理容器提供了强大的功能,包括容器部署、扩展和健康监控。

其他流行的容器编排工具包括Docker Swarm和Apache Mesos,前者是一种简单而轻量级的编排工具,后者是一种高度可扩展和灵活的编排工具。

Kubernetes公司

Kubernetes是最流行的容器编排工具之一,可以广泛应用于生产环境。Kubernetes提供了丰富的功能,包括自动扩展、负载平衡、服务发现和自我修复。

Docker Swarm

Docker Swarm是一个与Docker生态系统紧密集成的容器编排工具。它为管理容器化应用提供了一个简单易用的平台,但其功能比Kubernetes少。

Apache

把PHP或php项目静态编译为二进制发行版

Swoole-Cli 或静态编译PHP 是一个 PHP 的二进制发行版,集成了 swoolephp 内核php-cliphp-fpm以及多个常用扩展。Swoole-Cli 或静态编译PHP 是全部静态编译打包的,不依赖任何操作系统的so动态链接库,具备非常好的移植性,可以在任意 Linux 系统之间复制,下载即可使用。…