Scala代码实例之Kestrel:总结
创始人
2024-06-08 07:10:13
0

Scala代码实例之Kestrel系列到了本篇就基本结束了,***再总结一下。

代码读到这里,基本上已经把核心部分的代码都已经读完了。只剩下一个KestrelHandler.scala,我们就简单地说一说。

如果对Apache Mina的API有一个简单的了解之后,阅读KestrelHandler.scala已经不会有什么问题。KestrelHandler是当Mina获得一个新的链接请求之后创建出来的对象,对象的主流程就是一个act。通过 react 的机制来处理所有往来的信息,当然除了异常处理之外,只有MinaMessage.MessageReceive(msg)是会调用到PersistentQueue的一些操作。具体的函数就是handle,这里用到了一个叫做asInstanceOf的方法,这是Scala最基础类的一个方法,用途就是强制类型转换,在做与Java接口的时候,可能会经常遇到它。

handle处理报文的格式,兼容memcached的协议,也没有太多需要解释的地方。

总结一下:

读完 Kestrel 之后,给我的感觉就是,Scala的语法非常轻盈,跟六脉神剑+凌波微步似的,有的时候还真抓不住。Scala的语法和结构相当灵活,比如有些地方需要严格地写,会有很多的 () 和 . ,但是简化的写法,就用空格隔开了。另外Scala也沿袭了Ruby的语法特点,不需要每句话的***都要;,直接用回车对语法进行判断,这些优化让程序看起来更像是一些自然语言,或者——呃——更加智能。

由于Scala弱化了变量类型,同时还强化了类的定义,所有变量都是类,所有的方法也都是类,连消息传递中,也使用了case class这样的特殊类,并且让常见的单例模式,或者常用的需要重载的函数,都由编译器自动实现,确实可以让代码大大的精简,变得很轻盈。

这种语言的设置,经过先辈语言,比如Lisp,Python证明,对于把Scala语言作为初学语言的人来说,几乎是没有门槛的,因为这无非是一套剑谱而已。而对于从C,Java这样的语言转过去的工程师来说,确实有点困难,因为打惯了横拳的人,直接告诉他,虚空一指就能让敌人动弹不得,用这样的招式多半有点心虚,担心这真气不那么靠谱。而且有的时候,因为不熟指谱,打出来的命中率也不高。所以如果可以的话,还是会坚持用自己习惯的语法来写Scala。

写惯Pascal的人,写C,总用不习惯 a++这样的语法一样,写出漂亮的Scala程序,还是需要慢慢地才会适应过来。

关于Kestrel本身,就算是不学习Scala语言,它的一些设计方式也是非常值得学习的。比如说Journal.scala对文件缓存这个机制的处理方式,非常的巧妙。而为了提高每个链接的效率,而让client等待一段时间,不是直接告诉client没有新的消息,这样的细节处理,会大大提高消息队列整体的性能。非常值得学习。

毕竟它是用在Twitter上的一个核心消息队列算法呀。

【相关阅读】

  1. 从Java走进Scala(Scala经典读物)
  2. A Scala Tutorial for Java programmers
  3. 专题:Scala编程语言
  4. 细说Kestrel.scala中的PersistentQueue
  5. Scala快速入门:从下载安装到定义方法

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...