谈到企业应用,就得谈分布式、低耦合、模块化、面向服务、可扩展性等等。早些时候的技术有CORBA和EJB,后面兴起的有WebService和MDB。但是这些技术不是学习、开发门槛高就是不那么轻量化。我现在已经想不起10年前去面试时,别人问我的任何关于EJB (EJB2)的问题,可见它对于初学者来说有多少让人困惑。至于CORBA,就更不用说了,直到后来写研究生论文我才查了查关于它的资料,到现在已经全都记不起来了。随着Web技术的进步和移动应用的大量需求的出现,人们更倾向于轻量化、易部署的基于HTTP的RESTful服务,这种服务不是传统意义的WebService,而是单传的HTTP请求和相应,相应的形式主要是结构化的文档,如XML和JSON,后者尤甚。这种HTTP服务脱离了特定的技术框架,具有良好的兼容性,无论是BS结构还是CS结构,无论是PC上还是在移动客户端上,都可以享受这种技术带来的便利性。

  恰逢其时,Node.js的出现将这种技术潮流推到了顶峰,人们一方面可以在google的光环下进行一种全新技术手段、架构的尝试,因为node.js采用的是google的javascript v8引擎,google在浏览器短的所向披靡和良好口碑给了那些技术选型人或者架构这最好的信心或借口,而不用劳神费力去说服上司或大小别人的顾虑;另一方面,JavaScript技术在BS体系中大行其道为其在服务端的应用提供了良好的土壤,人们不必像写传统的Java服务端程序一样需要规规矩矩的定义接口和类,创建对象,而是更多地享受这种语言的随意性带来的好处。当然,我在这里并不是说在JavaScript里我们并不需要良好的设计,相反,充分利用JavaScript语言的各种特性进行良好的分离、封装更能体现这门语言的强大,这在各种客户端JavaScript框架中已经得到了验证。另外不得不提的是,JavaScript在服务端的发展与MongoDB这类伴随互联网兴起的NoSQL数据库是分不开的,毕竟它省去了不少人对使用JavaScript进行持久化的烦恼。

  这边厢人们争相恐后地向JavaScript靠拢,抛弃各种应用服务器,纷纷采用node.js,更有LinkedIn的成功案例在前。Java社区的焦虑和迫切可想而知,前途和方向的不确定性在开发者中蔓延开来。要知道Java社区从来不是一个自甘寂寞的群体,凭借着其强大的基础以及各个领域的深耕细作,提供一种类似甚至超越node.js的解决方案近在咫尺。就在大家彷徨和疑惑之际,VERT.X横空出世了,一举夺得Jax 2014最佳Java创新大奖。VERT.X以Netty NIO为基础,实现了在JVM中的事件回调机制。对于传统的Java程序员来讲,这虽然意味着编程方式的变化,但是为他们面向事件编程,基于线程的多任务并行处理提供了很好的编程模型,避免陷入多线程的数据同步的陷阱。同时,得益于VERT.X的模块化、集群部署和HA,分离已有系统和新构建的HTTP服务模块,它充分发挥了Java构建服务端的优势,比如采用spring框架传统的业务层和持久层。要知道,Java资源的丰富是JavaScript所远远不能比拟的。而且,VERT.X通过Rihon JavaScript (VERT.X 2.x)等引擎,已经允许人们根据业务场景选择适用的语言编写程序。一言以蔽之,VERT.X一举打通了HTTP服务提供层通向浩瀚的Java资源海洋的道路。但就JavaScript来讲,JDK8对它的实现足以给我们一种信心,那就是Oracle官方的支持,足以让VERT.X与node.js在使用JavaScript构建服务上相抗衡。不可否认,node.js已经具有相当的规模,但VERT.X凭借其与Java的天然优势足以弥补JavaScript类库不足的短板。要知道,今天很多系统都是基于Java创建的,断然抛弃现有的Java系统,采用JavaScript在node.js上重新开发对企业来讲实在不算一笔额算的买卖。

  总而言之,采用VERT.X既能保证对既有资源的合理利用,又能实现满足不同客户端需求的HTTP服务的快速开发,对企业来讲,不可谓不是一种两全其美的方法。在后面我将会阐述我对使用VERT.X构建企业应用的架构和设计。

使用VERT.X构建分布式企业级应用的更多相关文章

  1. 利用Vert.x构建简单的API 服务、分布式服务

    目前已经使用Vertx已经一年多了,虽然没有太多的造诣,但也已在项目中推广了下:从最初的vertx搭建web服务,到项目上线运营,还算比较稳定.再到后来尝试搭建基于vertx的分布式服务,一路下来也积 ...

  2. 使用Vert.x构建Web服务器和消息系统

    如果你对Node.js感兴趣,Vert.x可能是你的下一个大事件:一个建立在JVM上一个类似的架构企业制度. 这一部分介绍Vert.x是通过两个动手的例子(基于Vert.x 2.0). 当Node.j ...

  3. Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇

    目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...

  4. Netty构建分布式消息队列实现原理浅析

    在本人的上一篇博客文章:Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇 中,重点向大家介绍了AvatarMQ主要构成模块以及目前存在的优缺点.最后以一个生产者.消费者传递消息的例子, ...

  5. 基于Dubbo框架构建分布式服务(一)

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  6. 基于Dubbo框架构建分布式服务

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  7. Redis构建分布式锁

    1.前言 为什么要构建锁呢?因为构建合适的锁可以在高并发下能够保持数据的一致性,即客户端在执行连贯的命令时上锁的数据不会被别的客户端的更改而发生错误.同时还能够保证命令执行的成功率. 看到这里你不禁要 ...

  8. selenium结合docker构建分布式测试环境

    selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的 ...

  9. [转载] 基于Dubbo框架构建分布式服务

    转载自http://shiyanjun.cn/archives/1075.html Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务 ...

随机推荐

  1. 编译vo-aacenc遇到的问题

    sourceforge更新了vo-aacenc到0.1.3,就把自己的编码器也更新到最新.编译过程中无聊多测试了一下 发现一个小问题http://sourceforge.net/projects/op ...

  2. [OC Foundation框架 - 19] 练习遇到的Bugs

    1.没有权限读取文件夹 The file “Homework2” couldn’t be opened because you don’t have permission to view it.   ...

  3. 转载 https协议和http协议的区别

    转载原地址: http://aajs800.blog.51cto.com/519255/109555 什么是HTTPS: HTTPS(Secure Hypertext Transfer Protoco ...

  4. other

    1.http://handlebarsjs.com/ 2.grunt

  5. 剑指OFFER之丑数(九度OJ1214)

    题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 输入: 输 ...

  6. ThinkPHP中URL解析原理,以及URL路由使用教程!

    几个概念: THINKPHP 是一个MVC框架,使用PATHINFO解析出分组名,模块名,方法名,以及参数. PATHINFO:就是 http://localhost/index.php/Home/I ...

  7. 教你50招提升ASP.NET性能(十二):在生产环境,仔细考虑你需要记录哪些日志

    (18)When in production, carefully consider what you need to log 招数18: 在生产环境,仔细考虑你需要记录哪些日志 Many peopl ...

  8. ASP终极防下载(转)

    自从搞ASP+ACCESS没少为避免数据库下载而伤过神,网上的奇淫技巧更是数不胜数,本文就是同大家共同探讨各路前辈的留下的秘笈并指中其中的优劣,最后为大家提供一种最佳的解决方案. 一.开篇 自从搞AS ...

  9. 利用sqlmap和burpsuite绕过csrf token进行SQL注入 (转)

    问题:post方式的注入验证时遇到了csrf token的阻止,原因是csrf是一次性的,失效导致无法测试. 解决方案:Sqlmap配合burpsuite,以下为详细过程,参照国外牛人的blog(不过 ...

  10. Android手机监控软件设计实现

    一.需求分析: 随着IT信息技术的飞速发展,手机的普及,伴随着智能手机的出现及快速的更新换代,手机已不仅仅是一个通信工具,更是一个多功能的应用平台. 手机监控软件则是基于电脑监控软件的原理,植入手机平 ...