vertx的学习总结1
一. vertx是什么? 答:lib工具包
二. 为什么要使用vertx
答:
异步和非阻塞:Vert.x 采用了事件驱动和非阻塞的编程模型,可以处理大量并发请求而不会阻塞线程,提供更好的响应性能和吞吐量。
多语言支持:Vert.x 支持多种语言,包括 Java、Kotlin、Scala、Groovy 和 JavaScript,使开发人员可以使用他们熟悉的语言来构建应用程序。
响应式编程:Vert.x 基于响应式编程模型,可以更容易地处理异步操作和数据流,帮助开发人员构建高效的并发应用程序。
内置网络支持:Vert.x 提供了强大的网络支持,包括 TCP、UDP、HTTP 和 WebSocket 等协议,开发人员可以方便地构建网络应用程序和微服务。
模块化设计:Vert.x 提供了模块化的设计和丰富的插件生态系统,开发人员可以选择所需的功能模块,以满足自己的需求。
当然以上5点都是百度的,对于我而言就是无所事事,就单纯玩着
三、异步和响应式的关系
1.响应式必定是异步的,而异步不一定是响应式
异步指的是在程序执行过程中,某个操作可以独立于主程序的执行进行。异步操作不会阻塞主程序的执行,可以提高程序的并发性和响应性能力。在异步操作中,程序可以继续执行其他任务,而不必等待当前任务完成。
响应式指的是系统对事件的即时响应能力。在响应式编程中,应用程序通过观察(订阅)事件流并定义响应逻辑来实现高效的事件处理。响应式编程使应用程序能够根据事件的到达和发生,实时地做出反应。
四、为什么无法避免使用分布式系统
可扩展性:分布式系统可以通过增加计算机节点来提高处理能力和吞吐量。在大规模的数据处理和高并发请求的情况下,单个计算机往往无法满足需求,需要采用分布式系统来分担负载。
容错性:分布式系统可以通过冗余备份和容错机制来提高系统的可靠性和容错能力。当某个节点发生故障时,系统可以自动将任务切换到其他正常的节点上,从而保证系统的连续性和可用性。
数据局部性:分布式系统可以将数据分布存储在不同的节点上,使得数据更加接近于使用它的计算节点。这样可以减少数据传输的成本和延迟,并提高系统的性能。
地理分布:分布式系统可以将计算资源部署在不同地理位置的节点上,实现多地域的协同工作。这对于全球化企业、跨国合作和应对灾难恢复等方面都具有重要意义。
五、vertx的替代方案
Spring Boot:Spring Boot 是一个用于构建 Java 应用程序的开发框架。它提供了简化的配置和开发流程,并且具有丰富的生态系统和良好的社区支持。
Node.js:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可用于构建高性能的网络应用程序。它采用事件驱动、非阻塞IO模型,非常适合构建实时应用和高并发系统。
Akka:Akka 是一个构建高并发、分布式和容错应用程序的工具包和运行时环境。它使用 Actor 模型来处理并发和消息传递,并提供了强大的容错机制。
Django:Django 是一个用于构建 Web 应用程序的 Python 开源框架。它提供了强大的模型-视图-控制器(MVC)架构、ORM(对象关系映射)和丰富的功能插件。
Express.js:Express.js 是一个简洁、灵活的 Node.js Web 应用程序框架,它提供了一组强大的功能和中间件,可用于构建灵活的 Web 应用程序。
vertx的学习总结1的更多相关文章
- vert.x学习(八),用JDBCClient配合c3p0操作数据库
今天学习了下vert.x的JDBCClient,我这里将今天的学习笔记记录下来.这次学习中使用了c3p0. 用使用JDBCClient和c3p0得现在pom.xml文件里面导入对应的依赖,下面贴出xm ...
- vert.x学习(七),使用表单获取用户提交的数据
在web开发中,用的最多的就是表单了,用户通过表单提交数据到系统后台,系统又可以通过表单传递的数据做业务分析.那么这章就学习在vert.x中怎么使用表单,获取表单的参数值. 编写一个表单模板代码res ...
- vert.x学习(六),动态模板与静态文件的结合
这篇学习在动态模板里面引入css,把动态模板与静态文件结合起来使用. 编写DynamicReference.java package com.javafm.vertx.helloworld; impo ...
- vert.x学习(五),用StaticHandler来处理静态文件
做web开发,css.js.图片等静态资源是必不可少的,那么vert.x又是怎么来加载这些静态资源呢.请看StaticHandler 编写HelloStaticResource.java packag ...
- vert.x学习(四),使用模板解析器ClassLoaderTemplateResolver
在vert.x中使用模板解析,可以为我们带来很多方便.我这里学习了一下ClassLoaderTemplateResolver的简单使用.这次工程配置与上篇一样,不需要做任何多的配置.直接编写代码就可以 ...
- vert.x学习(一),开篇之hello world
今天决定学习下vert.x这个框架,记录下学习笔记. 下面列下我的开发环境: Java版本 1.8 maven版本 3.3 IDEA版本 2016 在idea中使用vert.x不用下载或安装其他东西了 ...
- 学习Spring框架等技术的方向、方法和动机
学习Spring框架最早学习Spring框架是在大二的时候,当时看了几本书,看了一些视频,主要是传智播客的.更多的,还是写代码,单独写Spring的,也有与Struts和Hibernate等框架整合的 ...
- Vertx Future 异常处理
Vertx Future 异常处理 异常发生 在使用Vertx进行开发的时候,必不可免使用Future异步编程框架.通过Future的 compose ,可以轻松实现不同异步任务的组合. 但是 ...
- Vert.x(vertx) 认证和授权
每个线上系统几乎都是离不开认证和授权的,Vert.x提供了灵活.简单.便捷的认证和授权的支持.Vert.x抽象出了两个核心的认证和授权的接口,一个是 AuthProvider,另一个是User.通过这 ...
- Vert.x学习第一天
昨天看了下异步,然后就开始了Vert.x相关知识的学习. Vert.x是当下非常流行的一套全异步框架,其优势在于轻量级.高效.非常适合作为移动端后台或是企业应用. 当然对于第一天接触这个框架的人(没错 ...
随机推荐
- 开源Word文字替换小工具更新 增加文档页眉和页脚替换功能
ITGeeker技术奇客发布的开源Word文字替换小工具更新到v1.0.1.0版本啦,现已支持Office Word文档页眉和页脚的替换. 同时ITGeeker技术奇客修复了v1.0.0.0版本因替换 ...
- CodeForces 1367D Task On The Board
题意 给一个字符串\(t\),和一个长度为\(m\)的数组\(b[]\),要求构造一个字符串\(s\),\(s\)中的字符都出现在\(t\)中,对于\(s[i]\)而言,对于任意\(j\),如果有\( ...
- 在 RedHat Enterprise、CentOS 或 Fedora Linux 上安装 MongoDB
在 RedHat Enterprise.CentOS 或 Fedora Linux 上安装 MongoDB 1.大纲 备注:采用yum安装后,所有进程将自动在/usr/bin下,如下的mongo.mo ...
- 升讯威在线客服系统的并发高性能数据处理技术:高性能TCP服务器技术
我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可. 客户组 ...
- jQuery获取select选中值的文本
实际代码:var checkUserSelect=$("#checkUserSelect option:selected").text();//执法人员姓名 jQuery中获得选中 ...
- Binary String Copying
Smiling & Weeping ----第一次见你的时候, 在我的心里已经炸成了烟花, 需要用一生来打扫灰炉. 题目链接:Problem - C - Codeforces 题目大意不难,就 ...
- Ds100p -「数据结构百题」11~20
11.P3203 [HNOI2010]弹飞绵羊 某天,\(Lostmonkey\) 发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏. 游戏一开始,\(Lostmonkey ...
- strimzi实战之一:简介和准备
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于strimzi strimzi是一个开源项目,已加 ...
- 彻底解决Chrome“请停用以开发者模式运行的扩展程序”提示(亲测整合)
本站有大佬已写较全的解决方案(修改dll文件法) 原文链接 但是本人Chrome76版本不适用,匹配不到提示语,在知乎中找到修改注册表的方法可以解决 原文链接 最后附上一个谷歌访问助手吧 链接: ht ...
- Dubbo3应用开发—Dubbo3注册中心(zookeeper、nacos、consul)的使用
Dubbo3注册中心的使用 zookeeper注册中心的使用 依赖引入 <dependency> <groupId>org.apache.dubbo</groupId&g ...