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

做网站编辑需要经验吗wordpress网站app

做网站编辑需要经验吗,wordpress网站app,谷歌seo网络公司,响应式网站的开发听说ES网络层很难#xff1f;今天来卷它#x1f604; 前言 ES网络层比较复杂#xff0c;分为两个部分#xff1a; 基于HTTP协议的REST服务端基于TCP实现的PRC框架 插件化设计的网络层模块#xff08;NetworkModule#xff09; 入口还是上一章的创建Node构造方法的地方…听说ES网络层很难今天来卷它 前言 ES网络层比较复杂分为两个部分 基于HTTP协议的REST服务端基于TCP实现的PRC框架 插件化设计的网络层模块NetworkModule 入口还是上一章的创建Node构造方法的地方一直往下会找到之前说的加载module和服务的地方 NetworkModule NetworkModule属性 有两个map一个map存放tcp层的实现一个map存放http层的实现 NetworkModule构造方法 上面的参数分别为 settingssettings配置transportClient: 一般为falsepluginsNetworkPlugin 提供了获取TCPTransport和HTTPTransport的接口NetworkModule通过遍历全部networkPlugin来加载所有的网络层实现也就说说ES的网络层不一定就是一种实现。你也可以通过实现NetworkPlugin去提供网络层实现。我们主要看的网络层是Netty4PluginthreadPool线程池bigArrays大数组通信的时候会使用它的空间pageCacheRecycler和核心流程没关系跳过circuitBreakerService和核心流程没关系跳过namedWritableRegistryxContentRegistrynetworkService网络服务主要是将host地址转换为 Java Network地址对象解析地址使用dispatcher它的实现是RestControllerRestController内部注册了很多处理器对外提供访问路由的功能也就说Http请求会转换为RestRequestRestRequest最终会交给RestController去找到合适的handler然后去访问最终的义务层逻辑后面源码会分析到clusterSettings集群配置 我们来看这里做了几件事我们这里看的是Netty4Plugin plugin.getHttpTransports获取Http网络层的实现这里返回的是一个mapkey是netty4value是一个Netty4Plugin lambda表达式 遍历httpTransportFactory将key和value值放到之前的transportHttpFactories 后面的RPC逻辑类似直接过 HTTP通信层**Netty4HttpServerTransport** Netty4HttpServerTransport构造方法 和之前NetworkModule的参数基本差不多多了一个sharedGroupFactory这里是一个netty NioEventGroup。学过netty源码应该都懂如果不懂可以看我写的netty源码解析。 Netty4HttpServerTransport.doStart方法 入口 Node-start() injector.get(HttpServerTransport.class).start()Netty4HttpServerTransport.doStart在node节点启动的时候会存在这个httpServerTransport实现了AbstractLifecycleComponent在它的start最终会调用到子类Netty4HttpServerTransport的doStart方法 doStart方法 都是netty服务端常规的配置如果看不懂还是要学一下netty源码的。学过netty的都知道肯定是有一个服务端的请求入口Handler类的这个类才是我们最要注意看的Netty4HttpRequestHandler Netty4HttpRequestHandler.channelRead0 请求处理入口Netty4HttpRequestHandler-channelRead0(ctx, httpRequest)又把请求转接给了Netty4HttpServerTransport.incomingRequest Netty4HttpServerTransport.incomingRequest 请求处理入口 Netty4HttpServerTransport-incomingRequest(httpRequest, httpChannel 这里的核心逻辑就是解析HttpRequest为RestRequest包装HttpChannel为RestChannel。包装之后最终交给 Dispatcher 方法 RestController.dispatchRequest 会接着调用RestController.tryAllHandlers方法总结一下一共做了这几件事 读取RestRequest请求路径rawPath及MethodGET、POST、DELETE…等信息根据rawPath等信息到PathTrie字典树结构中找到提供服务的Handler调用BaseRestHandler-handleRequest(restRequest, restChannel, nodeClient) BaseRestHandler为所有Rest*Action的父类…比如我这里debug用的是写索引数据的rest请求实际请求到的是RestIndexAction #### BaseRestHandler.handleRequest ![image.png](https://img-blog.csdnimg.cn/img_convert/4415eb016166c65ad43bc4a09b57ef01.png) ![image.png](https://img-blog.csdnimg.cn/img_convert/7ce72cd7f91d788b21329c44389f03b0.png) 总结一下这里做了几件事 BaseRestHandler的prepareRequest是模版方法最终会调用到RestIndexAction里面的prepareRequest方法里面就是负责解析restRequest请求为具体的 业务请求对象并生成一个lambda表达式BaseRestHandler调用action.accept 调用之前的lambda表达式 TCP通信层ES内置RPC 实现Netty4Transport
http://www.dnsts.com.cn/news/117880.html

相关文章:

  • 内蒙古住房和城乡建设厅网站wordpress淘宝客单页模板
  • 响应式网站怎么设置莱芜吧贴吧 百度
  • 电商网站开发案例ghost 卸载wordpress
  • 网站建设谈单思路临近做网站
  • dede网站建设教程云盘网页制作工具哪些好用
  • 建设网站商城做网站收益
  • 响应式网站的制作工具黄冈做学生互评的网站
  • 阿里云php做网站2018年互联网大会
  • 广州网站营销优化qq成都网站建设 公司
  • 万创网站建设番禺建设银行网站首页
  • 传媒公司手机网站模板网站建设申请空间
  • 娄底建设企业网站中国电力建设股份部官方网站
  • 免费外链网盘广西网站建设智能优化
  • wordpress的网站是php的代码设计公司网站需要什么条件
  • 免费发布产品信息网站中国怎么进fiverr网站做任务
  • c2c平台代表谷歌seo什么意思
  • 为什么建设网站餐厅类网站模板
  • 网页设计与网站建设步骤seo推广论坛
  • 网站首页制作采用免费建企业网站
  • 贵安新区建设管理信息网站网站后台 搜索
  • 精品课程网站源码百度免费推广登录入口
  • 网站开发公司不干了网站增加用户体验
  • 天津小程序网站开发公司怎么销售网站建设
  • php可以做手机网站吗福州优化搜索引擎
  • 校园网站建设初探营销网站的设计思路
  • 厦门首屈一指的网站建设公司广州做手机网站建设
  • 中国建设银行分行网站西宁网站建设开发公司
  • 移动端 pc网站开发网站建设写
  • 品牌建设发展规划优化志愿网站
  • 网站建设公司倒闭标书制作培训机构