go语言面试真题及解析 golang语言面试

golang面试题2之判断字符串中字符是否全都不同请实现 个算法,确定 个字符串的所有字符【是否全都不同】 。这 我们要求【不允
许使 额外的存储结构】 。给定 个string,请返回 个bool值,true代表所有字符全都
不同,false代表存在相同的字符 。保证字符串中的字符为【ASCII字符】 。字符串的
度 于等于【3000】 。
这 有 个重点,第 个是 ASCII字符 , ASCII字符 字符 共有256个,其中128个是常
字符,可以在键盘上输。128之后的是键盘上 法找到的 。
然后是全部不同,也就是字符串中的字符没有重复的,再次 , 不准使 额外的储存结
构,且字符串 于等于3000 。
如果允许其他额外储存结构,这个题 很好做 。如果不允许的话 , 可以使 golang内置
的 式实现 。
通过 strings.Count 函数判断:
使 的是golang内置 法 strings.Count ,可以 来判断在 个字符串中包含
的另外 个字符串的数量
还有不同的方法同样可以实现,你了解吗?
推荐go相关技术 专栏
gRPC-go源码剖析与实战_带你走进gRPC-go的源码世界-CSDN博客
Kubernetes 面试题干货集锦简述 etcd 及其特点?
答:etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现
(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)
数据库 , 基于 Go 语言实现 。
特点:
l 简单:支持 REST 风格的 HTTP+JSON API
l 安全:支持 HTTPS 方式的访问
l 快速:支持并发 1k/s 的写操作
l 可靠:支持分布式结构,基于 Raft 的一致性算法,Raft 是一套通过选举主节点来
实现分布式系统一致性的算法 。
简述 etcd 适应的场景?
答:etcd 基于其优秀的特点,可广泛的应用于以下场景:
l 服务发现(Service Discovery):服务发现主要解决在同一个分布式集群中的进程
或服务 , 要如何才能找到对方并建立连接 。本质上来说,服务发现就是想要了解
集群中是否有进程在监听 udp 或 tcp 端口,并且通过名字就可以查找和连接 。
一些配置信息放到 etcd 上进行集中管理 。
l 负载均衡:在分布式系统中,为了保证服务的高可用以及数据的一致性,通常都
会把数据和服务部署多份,以此达到对等服务 , 即使其中的某一个服务失效了 , 
也不影响使用 。etcd 本身分布式架构存储的信息访问支持负载均衡 。etcd 集群化
以后,每个 etcd 的核心节点都可以处理用户的请求 。所以,把数据量小但是访问
频繁的消息数据直接存储到 etcd 中也可以实现负载均衡的效果 。
通过注册与异步通知机制,实现分布式环境下不同系统之间的通知与协调 , 从而
对数据变更做到实时处理 。
l 分布式锁:因为 etcd 使用 Raft 算法保持了数据的强一致性,某次操作存储到集
群中的值必然是全局一致的,所以很容易实现分布式锁 。锁服务有两种使用方式 , 
一是保持独占,二是控制时序 。
l 集群监控与 Leader 竞?。和ü?etcd 来进行监控实现起来非常简单并且实时性强 。
简述 Kubernetes 和 Docker 的关系?
答:Docker 提供容器的生命周期管理和 , Docker 镜像构建运行时容器 。它的主要优
点是将将软件/应用程序运行所需的设置和依赖项打包到一个容器中,从而实现了可移
植性等优点 。
Kubernetes 用于关联和编排在多个主机上运行的容器 。
简述 Kubernetes 中什么是 Minikube、Kubectl、Kubelet?

推荐阅读