96SEO 2026-02-20 04:50 0
用系统的吞吐能力并且可以消除系统中的单点故障提升应用系统的可用性。

传统的方式前端发送请求会到我们的的nginx上去nginx作为反向代理然后路由给后端的
服务器由于负载均衡算法是nginx提供的而nginx是部署到服务器端的所以这种方式又
假如现在有三个用户中心实例订单中心可以通过discoveryClient
请求这样也可以实现负载均衡这个算法里面负载均衡是由订单中心提供的而订单中
心相对于用户中心是一个客户端所以这种方式又称为客户端负负载均衡。
如下图所示
提供的类通过该类可以获取Nacos注册中心的服务列表*/Autowiredprivate
discoveryClient;GetMapping(/order/create)public
discoveryClient.getInstances(shop-stock);//获取目标服务地址ListString
instances.stream().map(instance
instance.getUri().toString()/stock/reduce/).collect(Collectors.toList());//随机获取服务int
ThreadLocalRandom.current().nextInt(targetUrl.size());String
targetUrl.get(index);//调用目标服务String
restTemplate.getForObject(target
Ribbon是Netflix开源的客户端侧负载均衡器更加直观说就是ribbon就是简化上边方法createOrder中的这段代码的小组件不过他比我们的代码要强大一些他给他们提供了丰富
接口作用默认值IClientConfig读取配置DefaultclientConfigImplIRule负载均衡规则选择实例ZoneAvoidanceRuleIPing筛选掉ping不通的实例默认采用DummyPing实现该检查策略是一个特殊的实现br
/实际上它并不会检查实例是否可用而是始终返回true默认认为所br
/有服务实例都是可用的.ServerListServer交给Ribbon的实例列表Ribbon:
NacosServerListServerListFilter过滤掉不符合条件的实例ZonePreferenceServerListFilterILoadBalancerRibbon的入口ZoneAwareLoadBalancerServerListUpdater更新交给Ribbon的List的策略PollingServerListUpdater
规则名称特点RandomRule随机选择一个ServerRetryRule对选定的负责均衡策略机上充值机制在一个配置时间段内当选择Server不成功则一直尝试使用subRule的方式选择一个可用的ServerRoundRobinRule轮询选择轮询index选择index对应位置ServerWeightedResponseTimeRule根据相应时间加权相应时间越长权重越小被选中的可能性越低ZoneAvoidanceRule默认是这个该策略能够在多区域环境下选出最佳区域的实例进行访问。
在没有Zone的环境下类似于轮询RoundRobinRule
!--spring-cloud-starter-netflix-ribbon
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-ribbon/artifactIdversion2.2.10.RELEASE/version
注意这一步不是必须项若没有配置Ribbon的负载均衡策略Ribbon
/*****************************************************
Configuration该类中的负载均衡策略就变成了全局的负载均衡策略*
shop-order调用任何模块都会使用该类中的负载均衡策略。
*
注意这种方式配置全局的负载均衡策略有bug不支持使用推荐使用注解RibbonClients
9:15****************************************************/
负载均衡实例哪个Ribbon负载均衡策略被实例化了RPC远程调用时就用*
哪个负载均衡策略即通过配置类手动指定Ribbon的负载均衡策略**/Beanpublic
ribbonRule(){//指定Ribbon的负载均衡策略为随机return
可以用来为某个服务指定Ribbon的负载均衡策略如shop-stock
/*****************************************************
配置类不编写什么内容用于指定调用目标服务如shop-stack时所采用的负载均衡策略**
9:55****************************************************//***
用于指定当前服务如shop-order以哪个负载均衡策略调用目标服务如shop-stack*/
RibbonClients(defaultConfiguration
GetMapping(/order/create)public
LoadBalanced即整合Ribbon使用Ribbon的负载均衡来实现*
远程调用*//**//方式1ListServiceInstance
discoveryClient.getInstances(shop-stock);//获取目标服务地址ListString
instances.stream().map(instance
instance.getUri().toString()/stock/reduce/).collect(Collectors.toList());//随机获取服务int
ThreadLocalRandom.current().nextInt(targetUrl.size());String
targetUrl.get(index);//调用目标服务String
restTemplate.getForObject(target
restTemplate.getForObject(http://shop-stock/stock/reduce/
ZoneAvoidanceRuleFeign或openfeign、RestTemplateSpring
轮询默认Feign或openfeign、RestTemplate、WebClientWebFlux
因为如果是Hoxton之前的版本默认负载均衡器为Ribbon需要移除Ribbon引用和
增加配置spring.cloud.loadbalancer.ribbon.enabled:
/*****************************************************
15:30****************************************************//***
局部的负载均衡器使用name指定目标服务configuration
LoadBalancerClientConfiguration.class)
配置全局的负载均衡器表示在当前服务中远程调用任何目标服务所使用的*
CustomRandomLoadBalancerClient*/
//LoadBalancerClients(defaultConfiguration
LoadBalancerClientConfiguration.class)
开启远程调用的负载均衡*/LoadBalancedBeanpublic
/*****************************************************
ReactorServiceInstanceLoadBalancer
15:49****************************************************/
ReactorServiceInstanceLoadBalancer
ObjectProviderServiceInstanceListSupplier
serviceInstanceListSupplierProvider;public
CustomRandomLoadBalancerClient(ObjectProviderServiceInstanceListSupplier
serviceInstanceListSupplierProvider)
{this.serviceInstanceListSupplierProvider
serviceInstanceListSupplierProvider;}Overridepublic
serviceInstanceListSupplierProvider.getIfAvailable();return
supplier.get().next().map(this::getInstanceResponse);}/***
getInstanceResponse(ListServiceInstance
EmptyResponse();}System.out.println(进行随机选取服务);//
instances.get(random.nextInt(size));return
}/*****************************************************
15:30****************************************************//***
局部的负载均衡器使用name指定目标服务configuration
CustomRandomLoadBalancerClient.class)
配置全局的负载均衡器表示在当前服务中远程调用任何目标服务所使用的*
CustomRandomLoadBalancerClient*/
//LoadBalancerClients(defaultConfiguration
CustomRandomLoadBalancerClient.class)
CustomRandomLoadBalancerClient*
LoadBalancerClientConfiguration*/
CustomRandomLoadBalancerClient.class)},defaultConfiguration
LoadBalancerClientConfiguration.class)*/
开启远程调用的负载均衡*/LoadBalancedBeanpublic
spring:cloud:loadbalancer:#以下配置为LoadBalancerProperties
表示去全局配置如要针对某个服务则填写毒地应的服务名称即可default:retry:enbled:
true#是否所有的的请求都重试false表示只有GET请求才重试retryOnAllOperation:
实际会调用4次maxRetriesOnSameServiceInstance:
3#其他实例的重试次数多节点情况下使用maxRetriesOnNextServiceInstance:
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback