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

广州企业网站制作公司品牌网站建设有哪些方面

广州企业网站制作公司,品牌网站建设有哪些方面,官方网站建设的方法有哪些方面,做图片可以卖给那些网站回顾 在前面的章节中#xff1a;通过阐述sentinel简单使用、滑动窗口、核心流程源码分析把sentinel限流、熔断等主要功能说明清楚了#xff0c;但我们在实际使用的过程中#xff0c;不可能通过硬编码的方式设置规则#xff0c;且规则也没法直观的维护#xff0c;为此肯定…回顾 在前面的章节中通过阐述sentinel简单使用、滑动窗口、核心流程源码分析把sentinel限流、熔断等主要功能说明清楚了但我们在实际使用的过程中不可能通过硬编码的方式设置规则且规则也没法直观的维护为此肯定是需要通过sentinel dashboard维护限流熔断规则 交互桥梁 在前面的章节中也提到过。如果在单独的springboot项目中想要和dashbaord做交互需要引入如下依赖 该依赖就是和dashbaord实现数据交互的桥梁查看该模块的代码包情况 其中重点需要关注的是  com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter 服务端命令接收 com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender 维护心跳 源码分析 应用端 心跳 在 SimpleHttpHeartbeatSender中有看到发送心跳的代码。但是心跳是需要一直间隔发送的此处只有发送的逻辑未见间隔发送逻辑 所以肯定有个地方调用了该sendHeartbeat方法跟踪代码发现在HeartbeatSenderInitFunc中有定时调度该方法 再详细的分析调用接口地址和uri uri 至此应用client到sentinel dashboard的心跳部分已经分析完成既 HeartbeartSenderInitFunc中定时调度HeartbeartSender#sendHeartbeat方法完成心跳功能dashbaord的ip和端口是由应用启动时-Dcsp.sentinel.dashboard.server参数指定的(具体的属性逻辑可以自己跟踪一下源码) 应用client端和dashbaord的命令交互 试想一下在dashbaord上怎么获取到对应接入的应用的限流、熔断配置规则的 在com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter中可以看到大量的关于网络通信的代码 从代码中可以看到CommandCentre中启动了一个本地服务器用于监听连接。同样的跟踪 com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter#start方法发现在 com.alibaba.csp.sentinel.transport.init.CommandCenterInitFunc#init方法完成初始化和调用同时注意到在正式调用start之前做了一些初始化操作 处理器和请求类型的映射关系 当接收到来自dashboard的http请求后会组装一个HttpEventTask交由线程池处理 最后根据请求类型分配不同的处理完成处理过程 以上是命令中心的核心逻辑。总结一下就是 com.alibaba.csp.sentinel.transport.init.CommandCenterInitFunc#init调用com.alibaba.csp.sentinel.transport.command.SimpleHttpCommandCenter#beforeStart方法完成处理器注解名称和处理器的映射列表然后启动BIO(依赖不同服务类型不同)的服务器监听 dashboard端 在应用client端有2个待处理的问题 1 应用client发送的心跳到dashbaord如何处理的 2 client启动的tpc服务器dashboard是怎么连接并发送请求到应用client端的 心跳响应 在上面的client段心跳中有提到过请求的uri是/registry/machine在dashboard的源码中查找到对应的http接口 接收到心跳信息之后是将数据存储在appManagement中 而AppManagement是MachineDiscovery的一个装饰器真正干活的是  com.alibaba.csp.sentinel.dashboard.discovery.SimpleMachineDiscovery 到这里心跳的逻辑已经梳理完成 应用client端通过HeartbeatSenderInitFunc启动定时调度任务调用SimpleHttpHeartbeatSender#sendHeartbeat 方法往dashboard的/registry/machine接口请求最终数据存储在com.alibaba.csp.sentinel.dashboard.discovery.SimpleMachineDiscovery的一个ConcurrentMap中完成数据统计dashboard请求client的规则数据 通过跟踪dashboard的页面请求规则接口/v2/flow/rules/v1/flow/rules 最终数据请求委托给了com.alibaba.csp.sentinel.dashboard.rule.FlowRuleApiProvider 而FlowRuleApiProvider最终真正获取数据是委托给了SentinelApiClient直连到对应的机器上完成规则内容获取的 一路跟踪最后来到发起http请求的入口 到此dashbaord想应用client端发送命令的过程总结一下 CommandCenterInitFunc在初始化时调用SimpleHttpCommandCenter#beforeStart方法完成处理器的初始化最终组装成一个以处理器的CommandMapping注解的name属性为key处理器为value的map对象。然后调用SimpleHttpCommandCenter#start()方法启动一个tcp服务器监听tcp请求。dashbaord在获取规则内容时通过com.alibaba.csp.sentinel.dashboard.client.SentinelApiClient向应用client端发起http请求(应用client端的ip和端口通过心跳数据获取)完成整个过程 填坑 在第一章关于sentinel的简单使用中有提到一个问题为什么应用client端已经添加依赖添加启动命令并且启动成功之后在dashboard的面板上无法看到对应的应用信息 而且在做源码分析的时候也留了个坑 在上面分析应用client端心跳时有提到HeartbeatSenderInitFunc#init方法会启动定时调度功能完成心跳注册。而Env的这段静态代码块就是实现该功能的 这里就是通过SPI机制读取配置中实现了InitFunc接口的类完成初始化任务。间接的完成HeartbeatSenderInitFunc的处理化从而往dashboard注册心跳。 而Env要运行静态代码块是在SphU#entry方法触发的。 当然如果你在启动应用时初始化一下Env类肯定也是可以和dashboard完成心跳注册的 以上就是sentinel和dashbaord完成交互的全过程。关于sentinel的集群限流和数据持久化的问题在关于sentinel运用的第五章中会完全解释。 创作不易点赞、收藏、关注
http://www.tj-hxxt.cn/news/133421.html

相关文章:

  • 为什么做的网站预览出来什么都没有网站建设办公软件销售技巧
  • odoo 12 网站开发怎么做网页html
  • 有哪些可以做调查的网站濮阳做网站推广的公司
  • 徐州建站互联网营销模式
  • 潍坊网站建设SEO优化做流量任务的试用网站
  • 采购网站大全app设计欣赏网站
  • 如何百度搜索到自己的网站网站被黑了
  • 全国新农村建设中心网站怎样做同城配送网站
  • 网站备案完成后品牌设计logo
  • 平面设计专用网站网站建设 选择题
  • 可以做砍价活动的网站如何用源代码提取网页的图片
  • 网站图片展示代码最新新闻事件摘抄
  • 空间网站wordpress底部漂浮
  • 大连开发区做网站投广告的平台有哪些
  • 电子商务网站建设训练总结seo搜索优化服务
  • 信息科技公司网站怎么做做网站开发公司
  • 河南省住房与城乡建设部网站电子商务企业网站的推广方式
  • 网站开发开票内容专业网站制作公司地址
  • 网站的建设费计入什么科目中职网页设计与制作教材
  • 福田网站设计公司做海外网站推广
  • 网站开发英文论文网站开发需要学
  • 忻州网站制作动漫设计学校
  • 网站开发师培训创建网站论坛
  • 浙江省工程建设质量管理协会 网站天元建设集团有限公司商票兑付情况
  • 深圳建筑设计平台网站信息流广告创意
  • 榆林做网站网站建设公司盈利分析
  • 网站底部图标wordpress打赏按钮
  • 漳州网站建设哪家好天津免费建网站
  • 做年报的网站怎么登不上去了互联网企业公司简介
  • 网站建设首选九零后网络昆明网页建站平台