热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vert.x3.3.0增强了网络、微服务、测试等特性

Vert.x发布了其工具集的3.3.0版本。该工具集用于基于JVM构建反应式、分布式、多语言应用程序。\u0026#xD;\n\u0026#xD;\n该版本提供了大量的新特性和改进

Vert.x发布了其工具集的3.3.0版本。该工具集用于基于JVM构建反应式、分布式、多语言应用程序。

\u0026#xD;\n\u0026#xD;\n

该版本提供了大量的新特性和改进,下面将介绍其中最重要的内容。

\u0026#xD;\n\u0026#xD;\n

网络

\u0026#xD;\n\u0026#xD;\n

Vert.x 3.3.0内置支持HTTP2,允许开发人员创建HTTP2客户端和服务器,包括H2C和HTTP2 push。

\u0026#xD;\n\u0026#xD;\n

HTTP/2是一个帧协议,使用帧表示HTTP请求和响应。该版本允许应用程序在请求上使用customFrameHandler方法接收自定义帧,每次有自定义帧到达时,该方法都会被调用。下面是文档中提供的一个例子:

\u0026#xD;\n\u0026#xD;\n

request.customFrameHandler(frame -\u0026gt; {\u0026#xD;\n System.out.println(\"Received a frame type=\" + frame.type() +\u0026#xD;\n \" payload\" + frame.payload().toString());\u0026#xD;\n});\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n

该版本还新增了对Socks5和HTTP代理的支持,允许用户在配置TCP和HTTP客户端时配置代理设置。

\u0026#xD;\n\u0026#xD;\n

在Java中,DNS域名解析是一个阻塞事务,使用一个比较慢的DNS服务可能会长时间阻塞Vert.x事件循环,这与Vert.x的宗旨不符:“永不阻塞事件循环”。为了避免这种情况,Vert.x 3.3.0集成了一个异步DNS解析器。现在,当创建HTTP客户端或者TCP客户端时,主机名解析会异步进行。在TCP和HTTP服务器初始化时也会用到这个异步解析器。

\u0026#xD;\n\u0026#xD;\n

Vert.x事件总线是Vert.x应用程序的骨架。它允许Vert.x应用程序的不同部分通过消息进行通信。以前,用户是无法对这类通信的TCP层面进行配置的,但在3.3.0版本中,你可以配置通信的所有层面,包括SSL,因此,你可以通过事件总线安全地交换消息。

\u0026#xD;\n\u0026#xD;\n

集成

\u0026#xD;\n\u0026#xD;\n

Vert.x应用程序通常会集成进更大的系统,Vert.x 3.3.0改进了Vert.x与系统其他部分的交互方式。首先,它提供了同Apache Camel的桥接功能,后者是一个流行的集成框架,提供了超过100个组件来连接各种应用程序。

\u0026#xD;\n\u0026#xD;\n

Vert.x 3.3.0提供了一个RabbitMQ客户端、一个AMQP 1.0客户端和桥接器。AMQP 1.0是一种流行的跨平台消息协议,可以广泛应用于多种场景。

\u0026#xD;\n\u0026#xD;\n

鉴于安全是任何互联网应用程序的一个核心问题,Vert.x 3.3.0增加了对OAuth 2身份验证机制的支持,因此,你现在可以轻松地将应用程序连接到任何OAuth 2提供商,比如Google、LinkedIn、Github、KeyCloak、Twitter和Facebook。

\u0026#xD;\n\u0026#xD;\n

微服务

\u0026#xD;\n\u0026#xD;\n

自创建之初,Vert.x就成为了微服务架构的先驱,但有关微服务的实践已经发生了变化,在Vert.x 3.3.0中,我们提供了如下两个特性:

\u0026#xD;\n\u0026#xD;\n
  • 服务发现 \u0026#xD;\n\u0026#xD;\n
  • 断路器\u0026#xD;\n

服务发现是一种提升服务位置透明度的方法;服务是在运行时发现的,服务位置不需要硬编码。使用Consul或Kubernetes可以扩展服务发现的支持环境。

\u0026#xD;\n\u0026#xD;\n

Vert.x总是将故障作为一等公民,但有时候,你需要更为高级的故障管理,尤其是要避免对(故障)服务施加过大的压力。针对这种情况,Vert.x提供了自己的断路器模式实现。

\u0026#xD;\n\u0026#xD;\n

监控

\u0026#xD;\n\u0026#xD;\n

Vert.x 3.3.0还扩展了收集的指标集合。当然,这为HTTP2提供了支持,但它还让更好地监控由Vert.x管理的线程成为可能。例如,现在可以监控工作队列了,这样就可以对它的大小进行配置以满足你的需求。

\u0026#xD;\n\u0026#xD;\n

此外,为了改进调优功能,JDBC连接池还增强了反馈指标。

\u0026#xD;\n\u0026#xD;\n

使用Vert.x编程

\u0026#xD;\n\u0026#xD;\n

Vert.x 3.3.0还改进了开发模型,包括改进用于并行执行任务的Futures类的构成,简化了异步操作的链接。

\u0026#xD;\n\u0026#xD;\n

应用程序测试至关重要,经过改进的Vert.x Unit允许使用任何断言框架。你不必再局限于由TestContext提供的断言;你可以使用Hamcrest、 AssertJ或Rest-Assured。

\u0026#xD;\n\u0026#xD;\n

上述只是其中的部分特性和改进。Vert.x 3.3.0提供的其他特性和改进还有许多,包括JDBC批处理支持、Redis geo指令,等等。要了解更多信息,请查看Vertx.io网站。

\u0026#xD;\n\u0026#xD;\n

查看英文原文:Vert.x 3.3.0 Features Enhanced Networking Microservices, Testing and more


推荐阅读
  • 子类从父类继承所有的成员(字段,方法,嵌套类),构造方法不属于成员,所有子类不能继承,但是子类可以调用父类的构造方法对于private方法和属性,子类一定是继承了的,但是没有访问权 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  • Android系统启动过程分析一、Android平台架构首先贴一张Android系统架构图方便理解整个Android架构,这可以让我们从整体上对整个启动流程有个大概认知。可以看出整 ... [详细]
author-avatar
abc1733974979
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有