Go面试看这里了~(十六)

161 篇文章 12 订阅

原文地址:Go面试看这里了~(十六)

1、常用负载均衡算法?

负载均衡建立在现有网络结构上,提供一种廉价、有效、透明的方法扩展网络设备和服务器带宽,增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性,本质上是将大批量的网络请求分摊到多个操作单元上进行执行,操作单元指的是像web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务,大白话来说就是请求太多,将其分摊到多台服务器处理,之后来看下实现负载均衡常用的几种算法,介绍如下:

  1. 轮询法:将请求按顺序轮流地分配到后端服务器上,均衡地对待后端的每一台服务器,不关心服务器实际的连接数和当前的系统负载。

  2. 加权轮询法:各服务器配置不一样,有些性能好,处理请求多, 有些性能较差,处理请求较少,其抗压能力不同,因此按顺序分配服务器会导致性能好的服务器无法发挥最大作用,性能差的服务器压力太大,给性能好的服务器分配较高权重,性能差的服务器分配较低权重则可很好的解决此问题。

  3. 随机法:通过随机算法从服务器列表中随机地选取一台服务器进行访问,随着客户端调用服务器次数增加到一定数量级别,每台服务器的平均访问次数跟轮询法的次数相近,也就是说趋近于轮询法。

  4. 加权随机法:根据后端机器的配置和系统的负载分配不同的权重,按权重进行随机选取,与加权轮询法相似。

  5. 源地址哈希法:根据请求来源地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号,采用源地址哈希法进行负载均衡,同一源地址的请求,当服务器列表不变时,每次都会映射到同一台服务器进行访问。

  6. 最小连接数法:根据服务器当前的连接情况进行负载均衡,当请求到来时,会选取当前连接数最少的一台服务器来处理请求,由此也可根据服务器CPU占用率,也就是单位时间内处理请求的效率高低等进行服务器选择。

2、多台服务器session怎么存储?

  1. mysql使用memory存储引擎,设计数据表(sessionid、sessionValue 、过期时间),重写session_set_save_handler方法。

  2. Redis存储。

3、TCP如何确保可靠性?

  1. 数据包校验,发送方计算校验和,接收方结算校验和,进行对比。

  2. 应答机制,seq序列号与ack确认号。

  3. 超时重传机制,发送后启动定时器,进行重传。

  4. 连接管理,三次握手和四次挥手。

  5. 对失序数据包重排序。

  6. 流量控制和拥塞控制,使用滑动窗口协商大小。

至此,本次分享就结束了,后期会慢慢补充。

以上仅为个人观点,不一定准确,能帮到各位那是最好的。

好啦,到这里本文就结束了,喜欢的话就来个三连击吧。

扫码关注公众号,获取更多优质内容。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

luyaran

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

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

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

打赏作者

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

抵扣说明:

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

余额充值