首页 > 其他分享 >go面试题总结

go面试题总结

时间:2022-12-05 15:36:04浏览次数:45  
标签:总结 面试题 协程 多个 ack go 分布式 客户端


1. tcp/ip3次握手和4次挥手

3次握手需要客户端确认,因为服务器端不确定对方是否收到,所以客户端必须发送ack确认一下

为什么需要4次挥手,客户端发起fin+ack到服务器,服务端发起ack,同时再发起fin+ack最终确认,客户端最后在ack回复。因为可能还存在未发送完毕的数据

2.堆是动态的,大小动态变化的,由程序管理。 栈是静态的,不同函数之间的栈线程不能共享,栈是先进后出,由Cpu管理

3.什么时候会造成go协成阻塞?管道满了 还写  空了  还读,空查询会导致阻塞

4.一个用户线程通过协程调度器绑定多个协程,每个协程最高操作10毫秒,另一个协程会去抢占这个CPU去执行,context优雅的通知go协成退出

5.解决数据库缓存双写不一致的方案是加锁,redis的分布式锁,分布式锁把并行的操作变成串行化了读写锁,读可以多个执行,写和读是互斥的,读可以并行执行,分布式锁Setnx解决多个大V同时推多个商品的问题,突发性的热点数据,使用双重监测锁,缓冲穿透,解决返回一个空值,或者空串,数组传递是值传递,切片是引用指针传递,通道就是队列,先进先出

6.如何保证消息消费有序性?让我们的消息投递放到同一个分区里面,最终被同一个消费者消费

如何解决消息堆积? 做成集群的形式进行消费,每一个消费者批量形式来消费

标签:总结,面试题,协程,多个,ack,go,分布式,客户端
From: https://blog.51cto.com/u_15902893/5912431

相关文章

  • go 面试题
    go空结构体可以三种使用场景:实现方法接收者。实现集合类型。实现空通道。select可以用作协程的退出。context可以用来跟踪goroutine,取消掉所有goroutinewaitgroup和con......
  • Android基础面试题
    1. 转屏时候Activity的生命周期1.1新建一个Activity,并把各个生命周期打印出来1.2运行Activity,得到如下信息onCreate-->onStart-->onResume-->1.3按crtl+f12切换成横屏......
  • redis底层数据结构总结
    hash:是一维数组加链表 ziplink:压缩列表相当于数组,链表查询速度快,查找慢跳表:是个有序的链表,实现有序数组的二分查找,缺点是占用更多的内存空间。跳表是每隔2个元素选出一......
  • angular 用法总结
    架构:1.一个总页面,然后用组件组成2.每个组件又由三个文件组成,html,css,ts,三种不同的语言放在三个不同的文件中,3.ts是总配置文件,里面联合各个其他文件(html,css)语法规则:1......
  • WebBrowser用法总结
    简单用了一下记录一下:privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show(webBrowser1.Document.Body.InnerHtml);......
  • python django shell 更新代码后需要重启
    pythondjango 使用pythonmanage.py shell练习时更改代码后,需要重新打开窗口进行练习TRANSLATEwithxEnglishArabicHebrewPolishBulgarianH......
  • 车载测试系列:车载常见面试题
    自我介绍项目介绍项目具体是怎么测试的?CANoe是怎么使用的?台架是怎么搭建的?台架怎么测试的?诊断服务是怎么测试的?功能寻址和物理寻找的区别10服务有什么会话?11服务怎么确定软......
  • 我要涨知识——TypeScript 常见面试题(二)
    又是一个年底来了,好大一批人可能又准备跑路了,最近回家待产话不多说,赶紧开干,给自己整了一个前端面试小助手——微信小程序内搜索“WEB学习学习加油站”,整理了前端经典高频......
  • 【开源代码、数据集】大尺度场景下使用时间图优化的多传感器融合定位 onlineFGO
    以下内容来自从零开始机器人SLAM知识星球每日更新内容点击领取学习资料→机器人SLAM学习资料大礼包论文#onlineFGO:OnlineContinuous-TimeFactorGraphOptimiza......
  • js中filter过滤用法总结
    定义和用法filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。注意:filter()不会对空数组进行检测。注意:filter()不会改变原始数组......