据悉,不久前,国内最大的精英职业发展平台猎聘,在杭州沃创空间的沃创咖啡厅举办了一场“大神教你Java新技术”的线下分享会,拥有近十年互联网研发经验的大咖觉知把多年私藏的干货分享给了与会者。通过猎聘同道精英汇线下沙龙的分享,与会者既了解了行业的最新技术,又拉近了与技术大牛的距离。

觉知,拥有近十年的互联网研发经验、蘑菇街无线应用技术专家。其做过电商核心交易系统、实时数据处理平台、服务化中间件等。目前服务于蘑菇街应用团队,主要负责会员后端&无线应用前端。

他在活动当天分享的主题是“Java异步化与高性能网络应用”。期间,以蘑菇街为例,分享了大量真实的案例和解决方案,供与会者参考和学习。以下是经过编辑和整理的精华内容。

觉知首先回顾了Web服务本身的发展,以CGI为例,其是指通用网关接口,处理比较难的操作会利用CGI来进行实现。CGI的特点从今天的角度来看,在CGI时代的一个请求发过来,我会启动一个进程,然后对它服务,之后就把进程关掉。进程对于操作系统而言,开销是比较大的,当时也会有相应配套的一些设施,如进程池应用等技术,当时也是比较流行的,它也有好处,即使有点问题,进程的请求出错,第二个请求过来重新又起了一个新进程,它们之间的独立性做得非常好,这方面有它的优势。

第二个阶段,Fast CGI,CGI是一个请求过来而进行服务的,那我是否可以启动线程对它进行服务,它也有线程池的技术来进行配套,再来完成这样的工作。Servlet是一个请求、一个线程去对应的。

做异步化改造时,大家都会面临这样一个异步化标准的问题,使用LOD的时候大家都会使用Callback Hell,那么,在请求回来时如何去处理?这个时候,它嵌套会越来越深,我们去阅读和调试这个代码时,成本非常高,这里会有一些解决方案,如Promise.JS/Async.JS,比如调用完一个接口以后,接下来会做什么,发生异常时会做什么,这样的描述方式,对于开发人员理解起来就更友好。与此同时,其中的每一个步骤的执行都是异步化可并行的。

在Java里面,JDK8很早就有,它起的作用是将原有的调用流,调用完接口A以后返回Future,在JDK8中可以用新加的Completable Future来调用。

这里就提到了RxJava,据记者了解,RxJava是基于观察者模式的异步控制流的实现,之前了解过函数式编程的开发者对这一块比较容易接受,对于大部分的开发者而言,RxJava的编程模式还是存在很大挑战的,在思维上理解起来还是比较困难,它是基于数据流的角度去设计的,平时处理的数据是处理一个对象,完了再处理另外一个对象,这一块难度还是有点大。我们在做现有系统异步化改造时,异步编程模式是最大的一个挑战。

异步网络框架的核心部件首先是EventLoop,中间是在一个单线程,会有一个EventLoop循环,它本身会有一些IO操作的处理,再委派给下一级来做。一个执行者对应到后面实际操作是一系列线程,是一个线程池进行对应,它不会马上返回其处理结果,只是将需要处理的东西堆起来。这时候需要一个对象来具体持有这一个状态,这个时候,通常会有一个Future的对象,如果处理完就会重新来唤醒。Futrue是一个数据结构,展示延后处理的一些结果。

浏览数: 次 星期日, 10月 2nd, 2016

蘑菇街java,猎聘邀请蘑菇街觉知分享Java异步化与高性能网络应用相关推荐

  1. Java基础小白入门教程-----百知教育java基础学习1---胡鑫喆

    Java基础小白入门教程(胡大大出品,彩蛋请自寻) 胡鑫喆 https://www.bilibili.com/video/BV1wE411V7Zo?from=search&seid=38511 ...

  2. Java面试题:热情盛夏,分享Java大厂面试百题

    Java是编程语言中的王者,在未来也依旧稳坐霸主,是IT行业的发展趋势,学习Java已经是一个不可阻挡的趋势. 大多数人选择Java可能只是因为听说Java前景好.Java比较好找工作.Java语言在 ...

  3. java发送会议邀请邮件模板_使用java发送每封电子邮件的日历邀请

    我正在尝试使用 java发送每封电子邮件的日历邀请.收件人收到电子邮件,但该活动不会显示接受或拒绝的邀请,而是自动添加到他的日历中. 我正在使用ical4j.jar构建活动/邀请 private Ca ...

  4. java socket分包粘包 代码_分享java中处理socket通信过程中粘包情况的实例代码

    本篇文章主要介绍了java中处理socket通信过程中粘包的情况,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 这两天学习了java中处理socket通信过程中粘包的情况,而且很重要,所以,今天添 ...

  5. 飞机大战java代码_[源码和文档分享]Java飞机大战游戏设计与实现

    1 概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是Swing编程 ...

  6. 猎聘 大街_大街开放时

    猎聘 大街 我们在4月21日的Twitter聊天中探讨了开放式组织思维对"大街"企业的影响. 超过40位社区成员参与其中. 您会在下面找到要点. 阅读,享受并准备下一个#OpenO ...

  7. 【招聘内推】猎聘网招聘推荐算法工程师

    同道猎聘(北京)科技有限公司招聘推荐算法工程师,Base北京.感兴趣的小伙伴可以发邮件至cuipeng1@liepin.com.联系. 岗位职责: 1 .负责搜索/推荐系统底层架构到上层应用的设计和开 ...

  8. 求职招聘平台(脉脉、BOSS、拉钩、猎聘)之功能体验

    文章目录 1.背景概述 2.体验感受 2.1 PC端 2.1.1 猎聘 2.1.2 BOSS 2.1.3 拉钩 2.1.4 脉脉 2.2 APP端 2.2.1 猎聘 2.2.2 BOSS 2.2.3 ...

  9. 猎聘公司管理系统 ——需求规格说明书

    猎聘公司管理系统 需 求 规 格 说 明 书 学    号: 姓    名: 指导教师: 软件学院 2018年5月30 修改记录 版本号 修改人 修改日期 修改说明 审核人 目录 1.        ...

最新文章

  1. C#中的类02:构造对象
  2. hdu 5631 Rikka with Graph(无向图的割边)
  3. css background-position
  4. Go语言实战 : API服务器 (8) 中间件
  5. 挑战练习10.6 实现高效的RecyclerView刷新
  6. 机器学习笔记-基于逻辑回归的分类预测
  7. java 自定义注解 生成json_Java使用@JsonDeserialize注解实现自定义反序列化器
  8. 理正深基坑弹性计算方法_【干货】关于深基坑计算的几点思考(一个实际项目的总结)...
  9. asp.net开源资料——国内.NET论坛源代码
  10. 木马手工查杀和隐藏控制技术分析
  11. 解决Logitech G HUB卡在一直在加载问题解决方法
  12. 2014年校园招聘IT公司工资列表
  13. linux命令之ls
  14. 【转载】正交实验法表格
  15. 清除目录下的SVN信息
  16. 来自 Qt 官网的呐喊
  17. 自学神经网络要多久,神经网络要训练多久
  18. [旭日X3派] 初识篇 - 01
  19. android在线播放儿歌源码,亲宝儿歌播放器手机版
  20. 不断压抑情绪会我们失去什么?

热门文章

  1. 未来交通最大的阻碍就是人类
  2. 谈谈区块链:深入理解软硬分叉
  3. ChinaSkills全国职业院校技能大赛Debian样题六||本专栏基于此试题,订阅前必读!!!
  4. 个人电脑硬件介绍(2021-09-07)
  5. 世上无难事,只怕有心人!
  6. matlab 模块mex,[转载]MATLAB的mex接口
  7. 第十五模块 kafka 可以脱离 zookeeper 单独使用吗、 kafka 有几种数据保留的策略、kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G、怎么处理
  8. 企业重大危险源评估分级[分级标准]
  9. 星际密码(矩阵快速幂)
  10. 一个niubility的Vue游戏,真厉害!