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

新做的网站如何备案怎么把网站排名到百度前三名

新做的网站如何备案,怎么把网站排名到百度前三名,西宁网站制作多少钱,张店制作网站#x1f44f;作者简介#xff1a;大家好#xff0c;我是爱吃芝士的土豆倪#xff0c;24届校招生Java选手#xff0c;很高兴认识大家#x1f4d5;系列专栏#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理#x1f525;如果感觉博主的文章还不错的话#xff… 作者简介大家好我是爱吃芝士的土豆倪24届校招生Java选手很高兴认识大家系列专栏Spring源码、JUC源码、Kafka原理、分布式技术原理如果感觉博主的文章还不错的话请三连支持一下博主哦博主正在努力完成2023计划中源码溯源一探究竟联系方式nhs19990716加我进群大家一起学习一起进步一起对抗互联网寒冬 文章目录 Dubbo进阶多序列化支持性能优化参数Dubbo缓存文件Dubbo是如何实现的Dubbo模块说明Dubbo 流程分析及扩展 Dubbo进阶 对于我们使用这个框架来说如果会用了以后更多的可能是需要关心一下为什么要使用这个功能 它是怎么实现服务的注册怎么实现服务的发现以及怎么去动态的更新服务、怎么去负载均衡。 对于一个技术的使用来说我们可以不去了解这个技术本身原理性的东西就可以去使用了对于实际的应用开发来说可能只有项目开始的时候才会去搭建这些技术的整合配置这些组件和各种工具类等等。搭建好之后后面大部分的开发都是 ctrl cv的动作在框架整合来说都是可以复制粘贴的但是对于业务来说Controller、Service本质上没什么变化。 多序列化支持 Dubbo支持多种序列化方式包括Hessian、Java原生序列化、JSON、FastJSON、Kryo等。用户可以根据自己的需求选择合适的序列化方式来进行数据交换。这样可以提高系统的灵活性和性能使得Dubbo可以适应不同的应用场景。 添加jar包支持 dependencygroupIdcom.esotericsoftware/groupIdartifactIdkryo/artifactIdversion4.0.2/version /dependency dependencygroupIdde.javakaffee/groupIdartifactIdkryo-serializers/artifactIdversion0.45/version /dependency添加序列化支持 dubbo.protocol.serializationkryo客户端在调用的时候也需要加入以上操作。 多序列化的支持意味着Dubbo可以根据不同的应用场景和需求选择合适的序列化方式从而提高系统的灵活性和性能。不同的序列化方式有不同的特点比如Hessian序列化速度快但占用内存较多而JSON序列化则占用内存较少但速度可能稍慢。因此通过支持多序列化方式Dubbo可以根据具体情况选择最合适的序列化方式从而提高系统的性能和效率。另外支持自定义序列化方式也意味着用户可以根据自己的需求实现自己的序列化方式从而更好地满足特定的业务需求。因此多序列化的支持可以使Dubbo更加灵活、高效地应对不同的应用场景和需求。 性能优化参数 dubbo服务里有很多性能优化的参数这些参数无非就是线程、连接客户端和服务端建立的连接是长连接还是短连接是共享连接还是非共享连接因为这些比较基础的点可能会影响整体的性能。 对应参数在实际链路中起作用的环节 首先当客户端发起一个请求的时候针对每个服务消费者每服务每方法最大并发调用数进行了设置当超过最大并发数的时候会被拒绝掉这里是采用一个原子计数器去实现的。 紧接着会对连接数量做限制这个对于很多的池化的技术组件比如数据库连接池等都会这样做限制这个限制本质上就是控制资源的使用。Dubbo协议是长连接协议当客户端和服务端建立这个连接之后这个连接不会关一直会处于一个打开状态后续的请求如果发现Dubbo里已经有打开的连接那就用这个连接的通道去进行数据传输。 经过请求之后到了服务端判断总的连接数是否超过限制。 接着到了线程层面消耗的是cpu资源而连接层面消耗的是内存 和 网络通信延迟。其实际的调优就像普遍的线程池调优一样最后还有executes 对服务提供者每服务每方法最大可并行执行请求数进行限制。 Dubbo缓存文件 配置服务地址的缓存避免注册中心挂了之后对于服务通信的影响 dubbo.registries.shanghai.zoneshanghai dubbo.registries.shanghai.weight100 dubbo.registries.shanghai.file${user.home}/dubbo_shanghai.cachedubbo.registries.hunan.addressnacos://192.168.216.128:8848 dubbo.registries.hunan.weight10 dubbo.registries.hunan.preferredtrue dubbo.registries.hunan.file${user.home}/dubbo_hunan.cacheDubbo是如何实现的 对于一个技术的使用来说使用的多了以后会更加的熟练但是使用的过程中如果出现了问题能不能快速的定位到问题其次就是在用这个技术的时候能不能去了解其底层是怎么实现的。 图中左侧蓝色区域表示服务消费者右侧表示服务提供者它们都是基于Interface。 消费服务的时候会经过这几个层首先经过服务层 Service然后到了配置层Config该层主要是为了加载Dubbo配置的属性文件。 紧接着到了代理层其中代理类对进行远程调用所以代理类要去 Registry 注册层去得到具体要调用哪个服务。 而 Registry 注册层 中 RegistryProtocol 基于注册中心的协议因为 Registry 层中有不同的注册中心该层通过 RegistryFactory 去获得注册中心的地址然后通过 NotifyListener去动态的监听具体要调用哪个服务的地址变化该地址以目录的方式存储在 RegistryDirectory中里面存储了多个地址。 然后到了 Cluster 集群层集群容错是在这里面做的在 Registry 层拿到地址了需要去调用调用之前会进行容错的调用、负载均衡等。LoadBalance是基于上一个环节所拿到的地址通过LoadBalance 进行 select 之后这时候得到一个最终的 Invoker 是Dubbo里面的核心机制可以基于此做远程调用 此时拿到了 Invoker 去进行调用调用的过程中会有一系列的过滤器形成链式进行过滤当过滤器链处理完成后会通过协议去处理。 而协议中有个很关键的类叫做 DubboProtocol 在这里是可以去扩展的Protocol是一个扩展点我们在使用的时候在这个扩展点用什么协议取决于 RegistryDirectory 列表中url 中的协议该url会一直沿着链路传递直到Protocol来选择要使用的协议然后进行转发。 转发之后通过 Exchange 交换层 该层主要负责服务的通信这一块 Transport 就是 交换的协议主要基于Netty在协议以后要在 Serialize中做序列化 和 反序列化在这之后会拿到数据进行处理最终会去调用我们的服务提供者。 而服务提供者这边其基于Interface首先会去发布一个服务exprot首先也是先从config 去加载服务端的配置然后把这个配置信息组装成一个url 去添加到注册中心上这也是我们能够在zk或者nacos上看到的基于服务发布的注册中心地址的一个原因。 然后紧接着到了 MoiniorFactory 这里面就是服务监控然后就是 Exporter 发布了发布是以什么协议发布出去同样也会根据当前config里所配置的信息去选择一个对应的协议去发布。 在我们整个框架中不管是注册中心也好不管是LoadBalance也好其都有一个核心的东西叫做扩展点其基于SPI的机制进行选择包含三种扩展点自适应扩展点、激活扩展点、指定名字的扩展点 最终发布会通过 Netty Server去注册一个监听。 整体串起来的话就是客户端去发起请求会通过前面讲的消费者的链路最终去调用 服务发布者的 Implement。 Dubbo模块说明 Dubbo-bom 版本管理清单Dubbo-build-tools 版本构建工具Dubbo-cluster 路由层包含负载均衡、容错等Dubbo-Common 提供一些公共包Dubbo-Compatible 解决兼容问题解决com.alibaba.dubbo 升级到 org.apache.dubbo所产生的变化其实就是将一些com.alibaba.dubbo 老的功能单独拎出来Dubbo-Config 加载配置然后提供统一的对外配置的类Dubbo-ConfigCenter 动态配置中心通过第三方配置中心来统一管理dubbo的配置Dubbo-Container 容器 Main.main(args) //启动dubbo启动Dubbo首先加载spring 的配置或者注解, applicationContextnew …();再去根据配置的信息来启动一个NettServer。Dubbo-Filter 过滤Dubbo-Metadata 元数据配置数据Dubbo-Monitor 监控模块针对服务的调用会产生监控的数据然后将这些数据上报Dubbo-Plugin 插件 auth授权 qosDubbo-Registry 注册中心Dubbo-Remoting 远程协议支持包括http、nettyDubbo-RPC rpc协议/通信的支持Dubbo-Serialization 序列化支持 Dubbo 流程分析及扩展 此图为上面图的简化版本纯粹的面向整个调用链去工作的。 其中深绿色部分统一叫做扩展点Dubbo的每一个点其实都可以扩展。 整个过程还是一样蓝色部分表示消费者绿色部分表示服务提供者这张图的通信部分就更加清晰了。 首先Proxy是生成一个动态代理动态代理有两种方式 jdk、javassist 这个是可扩展的。 然后是filter 会进行过滤其中有缓存、权限等这些过滤主要是针对这些请求里面进行的拦截其可扩展。 然后就是Invoker是Dubbo内部封装的对象其表示远程通信的对象对Invoker会有 Cluster里面对应的操作包括failover、failsafe等当然其本身也是一个扩展点。 然后会去拿到注册中心上的 Directory其表示的是服务的地址列表所有的注册中心都是基于 Directory进行交互。 当拿到这个列表以后会去调用LoadBalance进行负载均衡其也是可扩展的。 后面又经过Filter会进行另外一个层次的过滤比如泛化、计数器、限制等。 接下来就是针对具体远程通信的Invoker其会根据不同的协议去发起通信根据服务端是那种协议就用那种协议去通信。 然后到了传输层发起远程通信其也进行了扩展可以采用的远程通信有 netty mina传输层的客户端会建议远程通信其地址是通过前面在 Directory中在由 LoadBalance 获取到的。 然后根据 codec 进行编码然后进行 Serialization 序列化。 以上就是在客户端完成的动作。 首先是先线程池这个在前面的性能优化参数图上能够很好的看出来。 然后是服务这边接收到请求主要是netty 和 mina因为前面也是使用这两个进行远程通信然后就是进行各种协议的处理最后其服务端也会有一个过滤链。 然后服务端的Invoker在进行一个通信通过动态代理去完成一个调用当完成后在返回。
http://www.zqtcl.cn/news/921299/

相关文章:

  • 台州seo网站排名优化外包服务公司
  • 汉川网站推广服务网页站点不安全
  • wdcp网站搬家嘉兴做网站优化的公司
  • 网站规划和建设度假区网站建设方案
  • 做网站前端用什么软件好在线种子资源网
  • 怎样修改网站关键词昌平做网站的公司
  • 网站建设调研文档网站最下面版权模板
  • 建外贸网站有效果吗开发电商平台需要多少钱
  • 成都网站建设维护网页制作价格私活
  • 建设银行网站登陆不上做本地的分类信息网站
  • 公司网站建设哪里实惠网页设计作业百度网盘
  • 如何seo网站挣钱不同企业的网络营销网站
  • 自己做网站有什么用网站怎样设计网址
  • 做任务的网站有那些wordpress链接在哪里
  • 免费建站模板网站招聘网站哪个好
  • 网站建站推广是啥意思高端网站建设浩森宇特
  • 长治电子商务网站建设中国建设银行总行官方网站
  • 整站营销系统厚街镇网站仿做
  • 舆情分析网站wordpress文章聚合
  • 中国建设银行网站在哪上市cpa自己做网站
  • 网站建设服务支持jquery插件 wordpress
  • 最有效的100个营销方法seo工作室
  • wordpress o2o主题嘉兴网站优化联系方式
  • 网站建设最基础的是什么网站怎么做架构
  • 网站底部怎么修改网站服务器是干什么的
  • 网络营销是营销的网络化吗广州推广seo
  • 茌平做网站推广网站刷链接怎么做的
  • 东莞网站优化推广Wordpress的根目录在哪
  • 备案的网站建设书是什么意思跨境电商代运营公司十强
  • 网站建设的功能要求wordpress typo3