
vertx
zyydecsdn
这个作者很懒,什么都没留下…
展开
-
vertx 异步编程指南 step2 - 把项目重构成独立的可复用的模块
上一节我们构建了wiki应用,但是还存在如下问题:1.http请求处理和数据库连接代码交错在一个相同的方法内,同时2.很多配置项硬编程写在代码里(例如 数据库连接字符串)(ps接下来应该会讲怎么写配置文件和读取配置文件,我是边看边翻译的)接下来我们将部署两个verticle,一个处理http请求,一个封装数据库持久性。这两个verticle将不会直接引用彼此,他们将通过event bus 调用彼此...翻译 2018-04-16 17:47:05 · 1896 阅读 · 0 评论 -
vertx-web 本土化
Vert.x Web解析Accept-Language来确定用户的语言。Route route = router.get("/localized").handler(rc -> { // although it might seem strange by running a loop with a switch we // make sure that the locale orde...原创 2018-05-11 11:14:41 · 526 阅读 · 0 评论 -
默认404处理
如果没有匹配到请求,vertx-web将会返回404.您可以自定义错误处理程序,如果没有的话,将会返回一个基本的404(Not Found)响应。原创 2018-05-11 11:17:17 · 639 阅读 · 0 评论 -
错误处理
可以为特定的路由设置错误处理Route route = router.get("/somepath/*");route.failureHandler(frc -> { // This will be called for failures that occur // when routing requests to paths starting with // '/some...原创 2018-05-11 11:24:51 · 251 阅读 · 0 评论 -
请求body处理
BodyHandler允许您获取请求主体,限制body sizes和处理文件上传。首先我们在路由处理的最开始添加BodyHandler.router.route().handler(BodyHandler.create());获取请求主体如果你知道主体是JSON,你可以用getBodyAsJson,如果是String,你可以用getBodyAsString,或者将它作为缓冲区getBody。限制B...原创 2018-05-11 11:40:40 · 1611 阅读 · 0 评论 -
处理cookies
路由添加cookie处理程序。router.route().handler(CookieHandler.create());原创 2018-05-11 11:42:36 · 264 阅读 · 0 评论 -
Handling sessions
vertx-web使用会话cookie来识别会话,它是临时的,关闭时将被浏览器删除。我们不会把数据写入会话cookie中,他只是一个标识来在服务器上查找实际的会话。会话id使用随机的UUID.cookie会在HTTP请求和响应中传递,因此使用HTTPS是明智的,使用HTTP vert.x会发出警告。您必须要在路由的最开始添加SessionHandler来启动。Session storesSessi...原创 2018-05-11 13:49:05 · 252 阅读 · 0 评论 -
认证/授权
Vert.x附带一些用于处理认证和授权的开箱即用的处理程序。创建一个Auth处理程序router.route().handler(CookieHandler.create());router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)));AuthHandler basicAuthHandler ...原创 2018-05-11 14:29:43 · 636 阅读 · 0 评论 -
提供静态资源
Vert.x-Web附带一个开箱即用的处理程序,用于提供静态Web资源,以便您可以非常轻松地编写静态Web服务器。服务静态资源,如.html,.css,.js或任何其他静态资源,您使用的一个实例 StaticHandler。对由静态处理程序处理的路径的任何请求都将导致文件系统上的目录或类路径中的文件被提供。默认的静态文件目录是webroot可以配置的。在以下示例中,所有对以下路径开始的请求/sta...原创 2018-05-11 14:37:20 · 656 阅读 · 0 评论 -
cors处理
跨源资源共享是允许从一个域请求资源并从另一个域进行服务的安全机制。Vert.x-Web包含一个CorsHandler为您处理CORS协议的处理程序。这是一个例子:router.route().handler(CorsHandler.create("vertx\\.io").allowedMethod(HttpMethod.GET));router.route().handler(routing...原创 2018-05-11 14:38:35 · 893 阅读 · 0 评论 -
Vert.x cluster
vertx微服务集群有四种方式我目前使用了ZK,动物园下载后进入bin,运行zKServer创建项目 mkdir hello-microservice-message cd hello-microservice-message mvn io.fabric8:vertx-maven-plugin:1.0.5:setup \ -DprojectGroup...原创 2018-04-27 16:53:51 · 1023 阅读 · 0 评论 -
vertx 直接在eclipse中运行
vertx mvn clean package后再运行没法调试,也很麻烦。首先确保你是maven项目pom.xml中的 <artifactId>vertx-wiki</artifactId>和project中的id,还有项目的文件夹名是一致的。不然会报找不到项目的错误。然后pom中还有配置 <plugin> ...原创 2018-05-14 16:45:44 · 1425 阅读 · 0 评论 -
vertx-web 子路由
/products这是一个路由,他可以由PUT,POST,GET,DELETE等这些操作Router restAPI = Router.router(vertx);restAPI.get("/products/:productID").handler(rc -> { // TODO Handle the lookup of the product.... rc.response...原创 2018-05-11 11:10:25 · 1326 阅读 · 0 评论 -
使用vertx构建响应式微服务-第五章 在OpenShift中发布响应式微服务
目前为止我们只是在本地发布了我们的微服务。把我们的微服务发布到云上怎么样?很多云平台包含了让你更容易发布和操作的服务。他们一般都有扩展和负载均衡功能,这与微服务息息相关。这一章我们来学习如何利用这些功能来部署我们的微服务。我了演示这些好处,我们将用OpenShift.然而,大多数章节最后,你将看到云服务怎么让reactivenes变得对大家都很容易。OpenShift是什么它是RedHat公司开发...翻译 2018-04-26 16:40:26 · 622 阅读 · 0 评论 -
使用vertx构建响应式微服务-第四章 系统
上一章的重点是构建 microservices, 但本章是关于构建系统的。一个微服务不能叫做系统,系统由许多微服务组成。管理越多的微服务系统越复杂。首先, 我们将学习如何使用服务发现来解决位置透明性和移动性问题。然后, 我们将讨论弹性和稳定性模式, 如超时, 断路器, 和故障转移。服务发现当你有一套微服务,第一个问题就是如果让他们发现彼此?为了和另一个微服务通信,需要知道它的地址。正如上章所见,我...翻译 2018-04-26 15:52:11 · 2185 阅读 · 0 评论 -
vertx 异步编程指南 step3-重构vert.x服务
前言:这一节主要讲把数据库暴露为异步rpc接口,然后调用, 比发送到event bus消息要方便使用一些。和第一节相比,第二节向前迈了很大一步,我们使用异步消息调用event bus上的独立的可配置的verticle.我们也看到了可以部署多个实例配置负载均衡和充分的利用多核cpu.在本节,我们将学习如何设计和使用vert.x 服务。service的主要优势是他定义了一个接口来执行verticle暴...翻译 2018-04-17 11:49:29 · 2203 阅读 · 0 评论 -
vertx 异步编程指南 step4-测试Vert.x代码
到目前为止,我们一直在开发未经测试的wiki实施。这当然不是一个好习惯,所以让我们看看如何编写Vert.x代码的测试。入门该vertx-unit模块提供了用于在Vert.x中测试异步操作的实用程序。除此之外,您可以使用您的测试框架,如JUnit。使用JUnit,所需的Maven依赖关系如下所示:<dependency> <groupId>junit</groupI...翻译 2018-04-23 09:30:31 · 1527 阅读 · 0 评论 -
vertx 异步编程指南 step6-公开一个Web API
使用我们已经介绍的vertx-web模块,公开Web HTTP / JSON API非常简单。我们将使用以下URL方案公开Web API:GET /api/pages 给出一个文档将所有维基页面名称和标识符,POST /api/pages 从文档创建一个新的wiki页面,PUT /api/pages/:id 从文档更新维基页面,DELETE /api/pages/:id 删除一个wiki页面。以下...翻译 2018-04-23 09:43:29 · 737 阅读 · 0 评论 -
vertx 异步编程指南 step7-保护和控制访问
保护和控制访问与Vert.x很容易。在本节中,我们将:从HTTP转移到HTTPS,以及使用基于组的权限将用户身份验证添加到Web应用程序,以及使用JSON Web令牌(JWT)控制对Web API的访问。证书可以存储在Java KeyStore文件中。您可能需要用于测试目的的自签名证书,以下是如何在server-keystore.jksKeyStore中创建一个密码为secret:keytool ...翻译 2018-04-23 10:39:57 · 1857 阅读 · 0 评论 -
vertx 异步编程指南 step8-使用RxJava进行反应式编程
到目前为止,我们已经使用基于回调的API探索了Vert.x堆栈的各个领域。它只是起作用,并且这种编程模型在很多语言的开发人员中都是众所周知的。然而,它可能会变得有点乏味,特别是当你结合几个事件源或处理复杂的数据流时。这正是RxJava发挥的作用,Vert.x可以无缝集成它。注意在本指南中,使用了RxJava 2.x,但Vert.x也适用于RxJava 1.x. RxJava 2.x在Reactiv...翻译 2018-04-23 13:15:32 · 2943 阅读 · 0 评论 -
vertx 异步编程指南 step9-使用AngularJS的客户端Web应用程序
到目前为止,我们的Web界面使用传统的HTML内容服务器端呈现。某些类型的应用程序可以利用客户端呈现来避免整页重新加载以及接近本机应用程序的体验,从而改善用户体验。为此目的存在许多流行的框架。我们为本指南选择了流行的AngularJS框架,但可以同时选择React,Vue.js,Riot或其他框架/库,而不会损失一般性。单页面应用程序我们正在构建的维基编辑应用程序允许选择一个页面,并将其前半部分作...翻译 2018-04-23 13:26:37 · 370 阅读 · 0 评论 -
vertx 异步编程指南 step10-在事件总线上使用跨界消息的实时网络功能
在本指南的较早部分,我们看到事件总线正在使用Vert.x应用程序中的消息传递进行通信。开发人员只需注册消费者即可接收消息并发送/发布消息。SockJS事件总线桥将这些功能在Web浏览器中扩展到客户端。它创建了一个分布式事件总线,它不仅跨越集群中的多个Vert.x实例,还包括在(许多)浏览器中运行的客户端JavaScript。因此,我们可以创建包含许多浏览器和服务器的大型分布式事件总线,从而在分布式...翻译 2018-04-23 13:37:05 · 1180 阅读 · 0 评论 -
使用vertx构建响应式微服务-第一章 简介
近年来Microservices很流行,主要有两个原因:云计算的兴起和应用对伸缩的需求。云计算可以让我们快速部署成千上万的微服务,对伸缩的需求需要我们尽可能多的使用微服务。这个系列主要讲如何使用Vert.x构建响应式微服务。Vert.x是一个用来构建响应式和分布式系统的工具集。Vert.x有不可思议的灵活性。它可以构建一般的网络实用工具,流行的网站应用,巨量消息处理系统,REST服务,当然还有微服...翻译 2018-04-24 10:43:28 · 1098 阅读 · 0 评论 -
vertx 异步编程指南 step5-与第三方Web服务集成
现代应用程序很少生活在孤立的岛上,因为它们需要与其他(分布式)应用程序和服务集成。通常使用通过HTTP协议公开的API来实现集成。本节介绍如何使用Vert.x的HTTP客户端API与第三方Web服务进行集成。场景:备份到GitHub Gist在GitHub的要点服务是广受欢迎的共享代码段到世界各地。其他服务可以使用它,例如中等发布平台,其中指向Gist的链接允许将代码片段嵌入到发布中。GitHub...翻译 2018-04-20 15:35:47 · 1111 阅读 · 0 评论 -
使用vertx构建响应式微服务-第二章 理解响应式微服务和Vert.x
微服务不是一个新事物,1970年就出现了,如今右变得流行。因为它可以快速构建或修改出有价值的产品。我们都知道分布式系统很复杂很难构建,于是响应式应运而生。但是什么是响应式(reactive)呢?牛津词典解释是“对刺激的反应”.所以响应式系统根据外界变化调整自己的表现。(例如bootstrap根据屏幕的大小改变布局)响应式编程-数据驱动响应式系统-异步消息 让我们看看RxJava(Reactive...翻译 2018-04-25 11:13:29 · 3471 阅读 · 0 评论 -
Vert.x Web
Vert.x-Web是一组使用Vert.x构建Web应用程序的构建块。把它看作是瑞士军刀,用于构建现代的,可扩展的网络应用程序。Vert.x核心为处理HTTP提供了一个相当低级的功能集,并且对于某些应用程序来说足够了。Vert.x-Web构建在Vert.x内核上,可以更轻松地为构建真实Web应用程序提供更丰富的功能。它是Vert.x 2.x中Yoke的继承者,它从Node.js世界中的Expres...翻译 2018-05-09 15:47:06 · 1527 阅读 · 0 评论 -
使用vertx构建响应式微服务-第三章 创建响应式微服务(Building Reactive Microservices)
在这一章我们将用Vert.x创建我们的第一个微服务。由于大多数微服务使用HTTP交互,我们也从学习制作HTTP微服务开始。但是, 由于系统包含多个通信 microservices, 我们将构建另一个 microservice, 它将消耗第一个。然后, 我们将展示为什么这样的设计不完全 被响应式 microservices接受。最后, 我们将实现基于消息的 microservices, 以了解消息传...翻译 2018-04-25 17:31:09 · 1412 阅读 · 0 评论 -
vert.x core
前言最近翻译了vert.x官网的两篇pdf,一个讲的的是做一个web应用-wiki,使用了数据库连接,自动生成服务代码,生成多个实例,verticle通过event loop通信,这些我们经常用到的知识。另一个讲的是微服务,讲了集群,服务注册,event loop调用,等。虽然我也按示例把代码运行起来了,但是还是感觉到迷茫。通过那两篇教程,我知道了Vert.x的一些特性,比如不能阻塞event l...翻译 2018-05-03 17:34:03 · 2073 阅读 · 0 评论 -
vertx instance
在-cluster模式下如果consumer启动多个实例,每次处理的实例都会不同$ java -jar hello-microservice-message-1.0-SNAPSHOT.jar -ha -instances 5如果HTTP启动多个实例,请求只会发到同一个实例上...原创 2018-05-08 11:51:03 · 730 阅读 · 0 评论