当前位置: 首页 > news >正文

做网站教学视频洛阳seo管理系统推广团队

做网站教学视频,洛阳seo管理系统推广团队,禹州市城乡建设局网站,火车头发布模块wordpress5.0个人评价 秃狼觉得本次的面试是有史以来难度最大的,问了很多陌生的八股文,项目问的比较少,估计是项目本来就没有什么亮点,也是第一次被面试官说菜的面试。不过在后续的学习上还是收获颇丰的。 1.说说你在实习中遇到的难点吧&…

个人评价

秃狼觉得本次的面试是有史以来难度最大的,问了很多陌生的八股文,项目问的比较少,估计是项目本来就没有什么亮点,也是第一次被面试官说菜的面试。不过在后续的学习上还是收获颇丰的。

1.说说你在实习中遇到的难点吧?

我们的实现项目主要就是做C端的在线教育项目,也是因为我是实习生的原有,我没有去负责黄金链路,也就是从用户登录到用户下单课程最后到用户观看视频的整个流程。我主要负责辅助模块的开发,包括 评论,点赞,视频点播模块的开发。

我说说我印象比较深的难点,当时需求就是完成续播的效果,在我们的点播记录表中会记录观看到的位置,因为我们视频播放采用的是腾讯VOD来实现的,也就是视频的长度使用整型表示 。并且上级的要求误差要控制在30秒之内。续播的功能本质就是操作数据库,并且前端每隔15秒就会提交对应的观看位置,如果直接打数据库的话,请求量大的话最终就会压垮数据库。为了解决这个问题,我们通过讨论使用的解决方案就是 redis的hash结构 + 定时任务来解决的。本质就是减少DB操作,redis的hash结构,大key存储课表id,课表id用于关联课程和userId,小key存储节的Id,value存储观看的位置。在每次发送请求的时候都修改hash结构并且使用RabbitMq的死信队列实现的延迟信息(延迟15秒)、发送一个当前的观看位置的消息。在监听到消息之后使用当前的观看位置和消息中的观看位置,如果二者相同的话,就说明当前15内没有再观看了,这时候去修改数据库,反之,丢掉对应的消息。在性能的上,减少了99%的db操作。

2.在做合并写请求的时候,RabbitMq发送消息的速度大于消费者消费的速度,怎么解决?

本质上就是消费者的消费速度小于生产速度。解决这个问题的主要方案就是:增加我们的消费者个数,加快消费者的消费速度,对我们消息队列进行扩容。

1.增加消费者个数:因为项目采用的是微服务落地方案,所以我们可以增加消费者的节点。

2.加快消费者的消费速度:我们可以创建线程池,创建多线程进行消费。

3.消息队列进行扩容:当在默认情况下我们的消息队列不足的时候,我们可以对消息队列进行扩容,可以使用惰性队列进行扩容,因为惰性队列使用磁盘进行存储,所以在读取的时候速度上比较慢,所以还是要根据业务情况进行选择。

3.在Spring中怎么解决循环依赖的问题?

Spring中使用三级缓存来解决缓存依赖,一级缓存主要就是存储完整的实例,二级缓存主要就是次存储代理对象,三级缓存就是ObjectFactory。当A和B相互依赖的时候就是使用三级缓存。

加载A,并将A的ObjectFactory存放到三级缓存,去加载B,并将B的ObjectFactory存放到三级缓存中。当发现B中需要依赖A,此时将使用A的ObjectFactory生成A的代理对象,并将A的代理对象存放到二级缓存中,将A注入到B中,将完整的B存放到一级缓存中,此时回溯,将完整的B注入到A中,最终解决三级缓存的问题。

4.Spring中的事务有了解过吗?

Spring的事务主要解决的问题就是并发事务带来的问题。

Spring的实现方式主要就是使用Aop的来实现的,使用环绕通知,在执行方法的时候,开启事务,并对执行的方法使用Try/catch,如果捕获异常的话就进行回滚,如果执行完方法后就进行提交。

Spring中的事务传播性主要包括: Propagation_Required(公用同一个事务),Propagation_Required_new(开启新事务),Propagation_nested,在住事务中内嵌子事务,当主事务不存在的时候,就会创建新事务。

5.动态代理的流程有了解过吗?

动态代理主要就是JDK动态代理和CGLIB动态代理,被当代理对象有实现接口的时候就会直接使用JDK的动态代理,当被代理对象没有实现接口的时候,就会使用CGLIB的动态代理,将继承被代理对象的子类作为代理对象。

6.B树和B+树的区别?

B树会在每一个节点上存放数据,而B+树则在叶子节点存储数据。

区别最大的我认为是:因为B树在结构特性,导致在做范围查询的时候需要多次从根节点出发,而B+树则不需要。并且在做排序的时候B+树也很方便,因为叶子节点使用双向链表进行存储。

7.Spring中的设计模式有哪些?

单例模式:我比较了解就是Spring中IOC默认情况下采用的就是单例模式。

工厂模式和策略模式:我们当时在实现动态获取分布式锁及对应策略,使用自定义注解+工厂模式+策略模式。自定义注解主要就是控制对应的枚举。我们会创建一个工厂类,里面有一个属性EunmMap,key存储对应的枚举,value存储对应分布式锁的实现方法,最终设置枚举即可获得对应的类。策略模式则就会在枚举中编写一个抽象方法,会有多个方法实现该抽象方法,最终这些实现的方法就是策略。

责任链模式:最常见的就是Stream流式编程,通过返回原型继续执行方法。

8.voliate是线程安全的吗?

voliate主要解决的就是线程共享变量的可见性,及防止指令重排序。

当我们的程序在执行很大的循环时,由于JIT的优化机制,就会使大循环变成无限循环,导致线程间无法读取到修改后的共享变量。也是因为JDK优化的问题,为了提高运行效率,在执行指令的时候会对指令进行重排序。

但是呢,voliate在执行的过程中不遵循原子性,所以不是线程安全的。

http://www.sczhlp.com/news/127322/

相关文章:

  • 企业网站首页效果图设计与制作个人急售二手房
  • 网站建设公司人员配备山东省示范校建设网站
  • 做网站dw怎么用做色网站
  • 电子商务网站建设调查报告太原百度做网站多少钱
  • 网站建设东莞长安镇食品招商网
  • 做网站常用代码wordpress电影
  • 国外js网站企业网站怎么做两种语言
  • 免费空间网站推荐手机网站建设服务合同
  • 互联网站建设维护有关岗位做的最好的视频网站
  • 随州网站建设前端网页设计用什么软件
  • 怎样做外贸网站重庆建网站推广
  • 网站创建方法做中学网站
  • 阿里巴巴国际站入口盟威软件快速开发平台
  • 有什么做美食的视频网站网页设计主页面
  • 濮阳网站建设推广网站备案密码有什么用
  • 郑州百度seo网站优化西安旅游攻略必去景点推荐
  • 广告网站怎么做软件开发app开发定制外包99
  • 公司网站推广方式枣庄建网站的公司
  • 连云港网站优化公司免费咨询服务期
  • 企业网站推广的方法网站制作找私人多少钱
  • 网站如何创建有什么网站是做平面设计的
  • 建设的访问网站需要密码西安网站外包
  • 网站建站平台排行榜wordpress类开源网站
  • 仙居做网站在哪里做白城北京网站建设
  • 互动 网站建设网站建设是无形资产
  • 网站寄生虫怎么做腾讯云服务器用什么软件做网站
  • 微信网站制作企业WordPress密码如何修改
  • 耳机商城网站开发全国失信被执行人名单查询
  • 长沙专业网站制作可以做高中题目的网站
  • 本地服务型网站开发网站中文名注册