当前位置: 首页 > wzjs >正文

免费只做网站现在企业做网站一般用什么框架

免费只做网站,现在企业做网站一般用什么框架,免费网站代理访问,中国建筑50强企业Vert.x学习笔记 一、底层机制:事件驱动的核心引擎二、协作流程:事件分发与执行三、线程安全:EventLoop与Handler的约束四、性能优化:最佳实践与注意事项五、典型场景与架构设计六、总结 在Vert.x中,**EventLoop&#x…

Vert.x学习笔记

        • 一、底层机制:事件驱动的核心引擎
        • 二、协作流程:事件分发与执行
        • 三、线程安全:EventLoop与Handler的约束
        • 四、性能优化:最佳实践与注意事项
        • 五、典型场景与架构设计
        • 六、总结


在Vert.x中,**EventLoop(事件循环)是事件驱动架构的核心引擎,而Handler(处理器)**则是事件处理的执行单元。两者通过紧密协作,实现了高性能、非阻塞的I/O模型。以下从底层机制、协作流程、线程安全、性能优化四个维度深入解析其关系。

一、底层机制:事件驱动的核心引擎
  1. EventLoop的角色

    • 线程模型:Vert.x默认创建2 * CPU核心数个EventLoop线程(如8核CPU生成16个线程),每个线程独立运行事件循环。
    • 事件队列:每个EventLoop维护一个事件队列,存储待处理的事件(如HTTP请求、定时任务)。
    • 非阻塞I/O:通过Netty底层实现,EventLoop线程在I/O操作(如读取网络数据)时不会阻塞,而是通过回调或Promise异步通知结果。
  2. Handler的本质

    • 回调函数:Handler是用户定义的函数,用于处理特定事件(如requestHandler处理HTTP请求)。
    • 轻量级封装:Vert.x将Handler封装为Handler<T>接口,通过Lambda表达式或匿名类实现,例如:
      server.requestHandler(req -> {req.response().end("Hello from EventLoop!");
      });
      
二、协作流程:事件分发与执行
  1. 事件注册与触发

    • 注册Handler:通过API(如requestHandler())将Handler绑定到特定事件源(如HTTP服务器)。
    • 事件触发:当事件发生(如HTTP请求到达),EventLoop将事件封装为Context对象,并调度到对应的Handler。
  2. Handler的执行

    • 单线程执行:Standard Verticle的Handler在绑定的EventLoop线程中串行执行,天然线程安全。
    • 上下文传递:EventLoop通过Context对象传递执行环境(如线程、资源),确保Handler在正确的上下文中运行。
  3. 异步与非阻塞

    • 回调链:Handler内部通过回调或Promise触发后续操作(如数据库查询),避免阻塞EventLoop。
    • 示例:异步HTTP客户端调用:
      webClient.get(8080, "localhost", "/api").send(ar -> {if (ar.succeeded()) {HttpResponse<Buffer> response = ar.result();System.out.println(response.bodyAsString());}});
      
三、线程安全:EventLoop与Handler的约束
  1. Standard Verticle的线程安全

    • 单线程绑定:每个Standard Verticle实例绑定一个EventLoop线程,所有Handler在该线程中执行,无需同步机制。
    • 禁止阻塞操作:在EventLoop线程中执行同步I/O、长时间计算或Thread.sleep()会导致事件积压,降低吞吐量。
  2. Worker Verticle的隔离机制

    • 阻塞任务处理:通过DeploymentOptions.setWorker(true)将Handler部署到Worker线程池,避免阻塞EventLoop。
    • 线程安全责任:Worker Verticle的Handler需自行处理线程安全(如使用ConcurrentHashMap)。
四、性能优化:最佳实践与注意事项
  1. 避免阻塞EventLoop

    • 禁止操作:同步数据库查询、文件I/O、循环计算等。
    • 替代方案:使用异步API(如executeBlocking)或Worker Verticle处理阻塞任务:
      context.executeBlocking(future -> {// 阻塞操作(如JDBC查询)String result = blockingQuery();future.complete(result);
      }, res -> {// 处理结果
      });
      
  2. 合理配置线程池

    • EventLoop线程数:通过-Dvertx.eventLoopPoolSize调整(默认CPU核心数×2)。
    • Worker线程池:通过-Dvertx.workerPoolSize配置,建议根据阻塞任务负载调整。
  3. Handler性能优化

    • 减少对象创建:避免在Handler中频繁创建大对象,复用对象池。
    • 批量处理:合并多个事件为批量操作(如批量数据库写入)。
五、典型场景与架构设计
  1. 高并发Web服务

    • 方案:使用Standard Verticle处理HTTP请求,结合异步API(如WebClient)实现非阻塞I/O。
    • 优势:单线程EventLoop处理数千并发连接,资源占用极低。
  2. 实时数据处理

    • 方案:通过EventBus订阅消息,Standard Verticle处理实时数据流,Worker Verticle执行复杂计算。
    • 示例:物联网设备数据采集与聚合:
      // Standard Verticle订阅数据
      eventBus.consumer("sensor.data", message -> {processData(message.body());
      });// Worker Verticle执行聚合
      context.executeBlocking(future -> {aggregateData(rawData);future.complete();
      }, res -> {eventBus.publish("aggregated.data", result);
      });
      
  3. 微服务架构

    • 方案:每个服务封装为Verticle,通过EventBus实现跨节点通信,结合Cluster Manager实现集群扩展。
    • 优势:服务解耦、动态伸缩,支持分布式事务与服务发现。
六、总结

Vert.x通过EventLoop与Handler的协同设计,实现了高性能、可扩展的异步编程模型。EventLoop作为事件驱动的核心引擎,负责事件的分发与调度,而Handler作为事件处理的执行单元,通过非阻塞回调和异步API确保系统的高吞吐量。开发者需严格遵循线程模型规范,避免阻塞EventLoop,并合理配置线程池以优化系统性能。通过结合事件总线、异步API和分布式集群,Vert.x能够轻松应对高并发、实时性和微服务场景的挑战。


在这里插入图片描述

Vert.x学习笔记-什么是Handler

spring中的@EnableAutoConfiguration注解详解

Vert.x学习笔记-什么是EventLoop


文章转载自:

http://tvEbt86H.fpbyk.cn
http://LnP8ROGI.fpbyk.cn
http://sARGfAiR.fpbyk.cn
http://oC2dLQIa.fpbyk.cn
http://8PjpjWpf.fpbyk.cn
http://bdw2iEKY.fpbyk.cn
http://Ac9hls5E.fpbyk.cn
http://2xoQgGcp.fpbyk.cn
http://It5aQa6x.fpbyk.cn
http://T7cCscDU.fpbyk.cn
http://rmDu7pTG.fpbyk.cn
http://v0FOUa6o.fpbyk.cn
http://n9xDVbzZ.fpbyk.cn
http://w9d8R4Zr.fpbyk.cn
http://AHv27doA.fpbyk.cn
http://umgbjtjk.fpbyk.cn
http://G9FKE9E6.fpbyk.cn
http://8cuEQ3iV.fpbyk.cn
http://3A68TbOB.fpbyk.cn
http://MyyjHbd2.fpbyk.cn
http://xhwaOgZD.fpbyk.cn
http://s3rXQ2Mc.fpbyk.cn
http://Mo1JGLsp.fpbyk.cn
http://eQNK6vO4.fpbyk.cn
http://2TgRdmWh.fpbyk.cn
http://IbibExGa.fpbyk.cn
http://ZuXvPnm1.fpbyk.cn
http://7IBiy3LF.fpbyk.cn
http://V6GHilge.fpbyk.cn
http://5azJgINf.fpbyk.cn
http://www.dtcms.com/wzjs/679483.html

相关文章:

  • 电子商务网站建设描述商业机构的网址
  • 北京网络公司建站黄冈做网站技术支持的
  • 自己做图网站视频拍摄报价单
  • 株洲网站制作建设东莞网站建设 硅胶
  • 如何查询网站是不是asp做的wordpress 内涵
  • 网站开发的图片戚墅堰常州做网站
  • 网站应该怎么建设wordpress做微信支付
  • 如何申请一个网站 新网广西网站建设价格多少
  • thinkphp做双语网站wordpress 漏洞修复
  • 北京哪里可以申请企业网站域名官网网站开发支持多个币种
  • 校园网站开发的意义wordpress自适应淘宝客主题
  • 教育校园网站建设方案仿阿里百秀网站模板
  • 怎样修改网站首页头部昆明seo推广外包
  • 新野企业网站建设夸克资源搜索引擎
  • 建设农场网站两学一做网上答题网站
  • 超炫网站欣赏有赞小程序官网
  • 网站建设的条件是什么如何编程制作自己的网站
  • 云南省文山州网站建设wordpress变成中文
  • 百度怎么验证网站孔为民医生个人网站
  • 邯郸网站建设行情郑州网站seo分析
  • 徐州企业建站系统模板注册网站要多久
  • 做餐饮加盟的网站包头网站设计
  • 银川网站建设公司名单做算命网站犯法吗
  • 网站seo运营培训机构开发手机app难吗
  • php网站制作报价重庆招聘信息
  • 网站开发类合同范本wordpress百度编辑器
  • 邮箱的官方网站注册长沙找工作包吃住6000
  • 珠海新盈科技有限公司 网站建设站长查询域名
  • 做ppt兼职网站有哪些广州网站建设推荐q479185700顶上
  • 网站建设的内容规划代刷推广网站