vertx系列

vertx系列第一节
1:谈下博主如何解除到vertx,目前大多公司用到的都是spring体系,但是博主在工作中,,感觉spring体系特别笨重,无论是国内,出的spring alibaba等。不可否认,他们对java生态的分布式,做了很多。但是用起来还是特别重,性能比较低,有人说,用java就不要谈性能。java的性能不如go,很重要在于他的线程模型,后来,博主感觉,想自己去实现一套异步的分布式架构,核心是利用线程池,来实阻塞代码的异步处理,比如代码57行去查询数据库,那么原来的执行体系,该线程会阻塞,无法去做其他事情。如果把57行以后的代码封装成一个task放入线程池,,那么该线程就无需阻塞,可以一直取线程池的任务执行。在这个异步的道路中,我发现了mysql的异步驱动,,我在看源码的过程中,发现了vertx…从这一刻起,,博主深深的爱上了vertx,,无法自拔。
2:谈下,对vertx的理解,,他对标的是spring体系,他目前也有自己的生态,他号称是为分布式而生。他的高性能在于,他基于netty来做事件驱动,让线程无阻塞。其实线程在内存里面做运算,一个handler的处理,其实1毫秒都用不到的。当你的系统不再因为访问外部请求而阻塞的时候,1个线程可以处理大量的并发。他给的worker线程数的设定,最好是cpu核心数的2倍。这样,就几乎没什么线程上下问切换了。
2:说道vertx大家都很想知道,如何用他来实现高并发的系统。博主带来自己的思路。
2.1:博主使用的是vertx-hazelcast来做集群,每个服务是一个verticle。服务之间调用使用service-proxy,谈下博主为什么使用service-proxy,因为使用他,比较符合我们现在使用微服务的方式。A服务提供一个sdk,sdk包含传参,入参,接口的访问。其他service-proxy的底层是vertx提供的注解,生成了代理类,底层还是使用eventBus来进行服务通信,eventBus在vertx-hazelcast集群环境下,他能获取到每个服务的实例并且进行通信。当我们应用使用vertx-hazelcast的情况下,我们不在需要单独去做服务发现,缓存,分布式锁,分布式map,分布式计数等等操作。关于hazelcast这个可以大家去百度,他的性能目前比redis还要高一个量级。配置中心,可以使用consul.
博主目前的简单结构如下
web–调用–server----调用db层—每个应用启动都调用–config配置服务。这样的话,新增的服务,只需要关心业务,不需要去关心其他与自己无关的第三方应用。比如明显感觉数据库的服务并发支撑不够,,那就多起几个db服务。当然,数据库的处理能力,也要强才行,,个人比较建议使用mycat等类似的数据库代理中间件。这样开发比较简单。后面,博主会找时间去b站做视频,讲到博主目前使用vertx的方式,与过程中,遇到的问题。
3:博主后续想要解决的问题,把vertx应用部署到k8s中。这个目前只是有理论上的设想。按道理是可以的。

### 回答1: Vertx是一种基于事件驱动的应用程序框架,而MyBatis是一种流行的Java持久层框架。Vertx是轻量级的,可扩展的,适用于构建高性能的网络应用程序,而MyBatis则提供了一种优雅的方法来管理应用程序与数据库之间的交互。 Vertx与MyBatis的结合可以在构建Web应用程序时提供更好的开发体验和性能。Vertx通过异步IO和事件驱动的方式,可以快速地处理来自Web客户端的请求。而MyBatis可以通过提供有针对性的SQL语句,方便地对数据库进行操作。 Vertx提供了一个轻量级的Web服务器,可以处理HTTP请求和Websocket连接。而MyBatis可以方便地将数据库查询结果映射为Java对象。通过使用Vertx和MyBatis,我们可以将数据库查询和处理请求的逻辑解耦,使代码更易于理解和维护。 使用Vertx和MyBatis的组合,我们可以轻松地构建可扩展的,高性能的Web应用程序。我们可以使用Vertx的事件总线机制来处理不同组件之间的消息传递,同时利用MyBatis的缓存机制提高数据库查询的性能。 总的来说,Vertx和MyBatis是一对强大的组合,可以帮助我们构建高性能、可扩展的Web应用程序。通过将异步事件驱动的编程模型与优雅的数据库交互方式结合起来,我们可以更轻松地开发复杂的应用程序。 ### 回答2: Vert.x是一个基于JVM的高性能、非阻塞、事件驱动的应用框架,它可以用于构建轻量级、可伸缩、可扩展的分布式系统。而MyBatis是一个流行的Java持久化框架,它能够帮助我们方便地进行数据库访问。 Vert.x和MyBatis可以结合使用,以实现高效的数据库访问和处理。通常情况下,我们可以使用Vert.x的事件驱动机制来处理Web请求,而MyBatis则用于执行数据库操作。 首先,我们可以使用Vert.x的路由器来处理HTTP请求,并在请求处理程序中调用MyBatis执行数据库查询或更新操作。通过这种方式,我们可以确保数据库的访问是非阻塞的,避免了阻塞其他请求的情况发生。 其次,Vert.x的事件总线机制可以用于将不同模块之间的消息进行传递和处理。我们可以在MyBatis的映射器接口中定义观察者,当数据库发生变化时,MyBatis会向事件总线发布消息,其他模块可以根据需求来订阅这些消息进行相应的处理。 另外,Vert.x的异步特性与MyBatis的异步API结合使用,可以进一步提升应用程序的性能。我们可以使用Vert.x的异步回调机制来执行MyBatis的异步数据库操作,从而避免线程阻塞和资源浪费。 总而言之,Vert.x和MyBatis的结合使用可以为我们提供一个高性能、可伸缩的应用程序架构。通过将事件驱动的非阻塞处理与灵活的数据库访问相结合,我们可以构建出更好的分布式系统。 ### 回答3: Vertx是一个开源的、响应式的应用程序平台,可用于构建高性能、可伸缩的微服务和分布式系统。MyBatis是一个Java持久层框架,用于管理数据库访问,并且可以将数据库操作与应用程序逻辑分离。那么,Vertx和MyBatis可以结合使用吗? 答案是可以的。Vertx提供了异步的、非阻塞的I/O操作,而MyBatis则可以将I/O操作,例如数据库查询和更新,封装成简洁易用的API。Vertx和MyBatis的结合可以提供高效的数据库访问和管理,并且保持系统的响应性和可伸缩性。 在Vertx中使用MyBatis非常简单。首先,需要在Vertx应用程序的依赖中添加MyBatis的库。然后,可以通过MyBatis的配置文件来配置数据库连接和SQL映射。接下来,可以在Vertx的事件处理器中使用MyBatis的API来执行数据库操作。 在Vertx中使用MyBatis可以享受到Vertx的优势,例如事件驱动的架构和高性能的I/O操作。此外,Vertx还提供了丰富的异步编程模型和工具,可以方便地与MyBatis结合使用,例如使用Vertx的Future和Promise来处理异步的数据库操作结果。 总而言之,Vertx和MyBatis的结合可以提供高效的数据库访问和管理,并且保持系统的响应性和可伸缩性。这是一种强大的组合,可以用于构建高性能、可伸缩的微服务和分布式系统。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值