【Golang开发面经】奇安信(两轮技术面)

写在前面

奇安信一顿面试下来感觉很一般。被面试官嘲讽了一波(
不是搞安全的就不要去奇安信了。。

笔试

一面

项目问的比较多

说一下TCP的三次握手和四次挥手

TCP和UDP的区别

TCP 是可靠传输,面向连接,基于流,占用资源多,效率低。

UDP是尽最大努力交付,基于无连接,基于报文,UDP 占用系统资源较少,效率高。

怎么让UDP变得可靠

可以的,我们只需要仿照TCP的可靠传输机制就可以了,比如说设置ACK确认机制,一旦没有收到,或是收到三次上一个报文的ACK,我们就立即重传丢失的报文。再比如说设置滑动窗口来保证数据传输的安全性等等…

写一下sql的查询语句,比如说我要查询id=3的user。

说一下 InnoDB 的特性

讲讲mysql的索引

如何创建索引?

画过流程图吗?我们工作要经常画这些图。

算法:给你一个字符串 s 和一个整数 m ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 m 。返回这一子串的长度。

二面

有一道概率论的问题卡住了,被面试官嘲讽。
“就你这还xx学校,xx专业啊?”

不想写了,别去什么奇安信了,睿智公司。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 以下是一个基于 Golang开发技术栈案例: 1. Golang 语言 Golang 是 Google 推出的一门编程语言,它具有静态类型、高效性能、垃圾回收等特性,被广泛用于构建高性能、可靠的后端服务。 2. Gin 框架 Gin 是一个轻量级的 Web 框架,它基于 Golang 标准库实现,提供了路由、中间件、模板引擎等功能,可以帮助开发者快速构建 Web 应用。 3. GORM ORM 框架 GORM 是一个基于 Golang 的 ORM 框架,它提供了丰富的查询 API 和关系映射功能,可以让开发者更加方便地操作数据库。 4. Redis 数据库 Redis 是一个高性能的内存键值数据库,它支持多种数据结构和丰富的操作命令,可以用于缓存、消息队列等场景。 5. Docker 容器化技术 Docker 是一种流行的容器化技术,它可以将应用程序及其依赖打包成容器镜像,并在不同的环境中快速部署和运行。 6. Kubernetes 容器编排平台 Kubernetes 是一种开源的容器编排平台,它可以自动化地管理和调度多个容器实例,支持容器的弹性伸缩、容错等功能,可以大大简化应用程序的部署和运维工作。 7. Grafana 监控工具 Grafana 是一个流行的开源监控工具,它支持多种数据源和图表展示方式,可以帮助开发者实时监控应用程序的运行状态,快速发现和解决问题。 以上是一个基于 Golang开发技术栈案例,可以用于构建高性能、可靠的后端服务,并实现容器化部署和自动化运维。 ### 回答2: Golang开发技术栈是指用于开发Golang应用程序的技术工具集合。在Golang开发中,常用的技术栈包括以下几个方: 1. Golang语言Golang是一种开源的编程语言,具有高效、简洁、并发性强等特点。通过使用Golang语言进行开发,可以快速构建高性能的应用程序。 2. Gin框架:Gin是一个轻量级的Web框架,适用于快速开发RESTful API。借助Gin框架,可以方便地创建路由、中间件,处理HTTP请求和响应等。 3. GORM:GORM是Golang中的ORM(对象关系映射)库,用于处理应用程序与数据库之间的数据映射关系。它提供了简单的API,使得开发者可以通过代码对象操作数据库,而不需要直接编写SQL语句。 4. Redis:Redis是一种开源的内存数据库,用于缓存和存储应用程序的数据。在Golang开发中,可以使用Redis作为缓存层,提高应用程序的性能和响应速度。 5. MySQL:MySQL是一种广泛使用的关系型数据库,用于存储和管理应用程序的数据。Golang开发技术栈中,可以使用MySQL作为主要的持久化存储层。 6. Docker:Docker是一种容器化平台,用于快速部署和管理应用程序。通过使用Docker,可以将应用程序及其依赖的环境打包成容器,并在不同的环境中快速部署和运行。 通过使用以上的Golang开发技术栈,可以快速构建高性能、可扩展和易维护的应用程序。其中,Golang语言提供了高效的编程能力,而Gin框架、GORM、Redis、MySQL和Docker等技术工具则提供了丰富的功能和支持,使得开发者可以更加便捷地进行开发工作。 ### 回答3: Golang是一种快速、高效、并发、可靠的编程语言,它非常适合用于构建大规模、高并发的网络服务。下是一个关于Golang开发技术栈的案例: 我们公司在构建一个在线购物平台,决定采用Golang作为我们的开发技术栈。以下是我们的技术架构。 1. Web框架:我们选择使用Gin框架作为我们的后端服务框架。Gin是一个轻量级、高性能的Web框架,具有快速路由和中间件支持,能够帮助我们快速地搭建起我们的后端服务。 2. 数据库:我们使用MySQL作为我们的主要数据库存储引擎。Golang提供了许多MySQL的驱动程序,我们选择了go-sql-driver/mysql作为我们的数据库驱动。 3. 缓存:我们使用Redis作为我们的缓存服务。Golang提供了一些很好的Redis客户端库,我们选择了go-redis作为我们的Redis客户端库。 4. 消息队列:我们使用RabbitMQ作为我们的消息队列服务,用于处理我们的高并发消息传递需求。Golang提供了一些很好的RabbitMQ客户端库,我们选择了streadway/amqp作为我们的RabbitMQ客户端库。 5. 身份验证和授权:我们使用JWT(JSON Web Token)作为我们的身份验证和授权机制。Golang提供了一些很好的JWT库,我们选择了dgrijalva/jwt-go作为我们的JWT库。 这个技术栈使得我们能够高效、快速地构建起一个高并发、可靠的在线购物平台。Golang简洁的语法、高效的并发模型以及丰富的开发库,使我们的开发工作变得更加便捷和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小生凡一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值