很多同学都想得到搜狐的实习或者校招机会。那从过来人的角度谈谈,要通过搜狐的实习、校招面试,都有哪些经验和注意事项呢?今天就跟大家分享一下。
【一面】
针对笔试和简历提问了一些基础问题
【二面】
总体情况:面试官技术经理就比较偏架构和中间件的应用,提问了项目,主要考察了服务治理和消息队列等中间件 使用的问题。
1、消息中间件如何解决消息丢失问题
生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,因为网络问题啥的,都有可能。此时可以选择用 RabbitMQ 提供的事务功能,就是生产者发送数据之前开启 RabbitMQ 事务channel.txSelect,然后发送消息,如果消息没有成功被 RabbitMQ 接收到,那么生产者会收到异常报错,此时就可以回滚事务channel.txRollback,然后重试发送消息;如果收到了消息,那么可以提交事务channel.txCommit。
2、Dubbo 的服务请求失败怎么处理
对于Dubbo服务请求失败的场景,默认提供了重试的容错机制,也就是说,如果基于Dubbo进行服务间通信出现异常,服务消费者会对服务提供者集群中其他的节点发起重试,确保这次请求成功,默认的额外重试次数是2次。
3、重连机制会不会造成错误
dubbo在调用服务不成功时候,默认会重试两次。
Double的路由机制,会把超时的请求路由到其他机器上,而不是本机尝试,sodbbo的重试机器也能一定程度的保证服务的质量。
但是如果不合理的配置重试次数,当失败时候惊醒多次进行,这样在某个时间点出现性能问题,调用方再连续重复调用,系统请求变为正常值的retries倍,系统压力会大增,容易引起服务雪崩,需要根据业务情况规划好如何进行异常处理,何时进行重试。
4、对分布式事务的理解
分布式事务是指一次大的操作由不同的小操作组成的,而这些小的操作分布在不同的 服务器 上,分布式事务需要保证这些小操作要么完全地执行,要么完成地不执行。
5、深入分析几个设计模式
6、不定长字符串转为定长字符串
如果 被转换的 字符串的长度为a,转换后的长度为b
那么由字符的范围c可知,a能表示的各种组合为 c的a次方,b能表示的各种组合为c的b次方
当 a>b 的时候,将所有可能出现的字符串都进行转化,无论转换的方式为什么
那么必然有超过2个源字符串指向了同一个目标,那么目标还原的时候就不知道是哪一个了
所以说 MD5本身不是加密算法,是签名算法!!这个很重要!
总结:面试过程中要保持清醒,不要有思 维定式。
想要更多搜狐实习、校招的机会,请点击这里