面试时所关注的实习问题

面试时所关注的实习问题

1. 实习过程的难点和解决的棘手问题

  • 难点:软件开发难点有程序代码难和业务逻辑难,这里业务逻辑更难;
  • 解决的问题:使用日志将消息处理的流程串联起来,根据消息id可快速准确定位错误所在。

2. 路由计算和调度业务逻辑说明

  • 进行路由计算时,首先调用orekit航天动力学库,得到卫星的轨道、坐出入境时间等信息,由此信息可知何时某个终端可利用该卫星与哪个地球站发送信息,终端->卫星->地球站这就是一条通信链路,将该链路涉及的卫星、终端、地球站信息写入库,产生一张路由表;
  • 当某一时刻某个终端想与地球站通信,此时恰巧有卫星覆盖,则触发路由调度,根据路由表信息进行调度,完成终端->卫星->地球站的通信,同时将调度结果入库。
  • 上述只是简单介绍,详细的细节处理,如消息大小超过卫星限制,地球站或卫星停用时该如何处理,这里就不进一步介绍了。

3. 日志串联处理链路

  • 问题:消息处理由多个服务协同完成,但当时没有建立完善的链路跟踪,无法查看完整的调用链,这样一旦出现问题,无法快速准确的定位问题;
  • 解决办法:使用日志将消息处理的链路串联起来,将消息id写入打印的日志中,这样一旦出现问题,可根据日志中的消息id找到该消息处理涉及的所有日志,修改产生问题的业务逻辑;
  • 具体步骤:利用SpringAOP原理。定义一个注解MsgId,由该注解标识一个切入点,创建通知类,写通知逻辑,消息处理开始时将消息id put进MDC,处理完成后remove消息id,这样就可以根据消息id获得整个处理流程的日志轨迹。

4. 实习收获

  • 我负责的是路由计算与决策系统的后端开发任务,该项目属于分布式项目,涉及的技术有Spring、Springboot、Springcloud、Mybatis、Redis、PostgreSql、Kafaka等;
  1. 对分布式项目开发有了一定的经验,熟悉了公司级项目的开发流程和规范等;
  2. 学习了两种新技术Redis和PostgreSql,可以使用其进行业务开发;
  3. 进一步加强了代码调试能力,能够快速定位错误;
  4. 锻炼了团队协作能力和沟通技巧;
  5. 最重要的是观念转变:应用软件开发最重要的不是写代码,而是去了解做什么、怎么做、对业务逻辑的熟悉与理解。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值