这篇文章主要介绍了Spring Cloud如何使用Ribbon,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为了本小节的测试做准备,按顺序进行以下工作: 新建Eureka服务器端项目,命名为“cloud-server”,端口8761,代码目录codes 44.4cloud-server。 新建Eureka服务提供者项目,命名为“cloud-provider”,代码目录codes 44.4cloud-provider,该项目主要进行以下工作:1. 在控制器里面,发布一个REST服务,地址为“/person/{personId}”,请求后返回Person实例,其中Person的message为HTTP请求的URL。2. 服务提供者需要启动两次,因此在控制台中需要输入启动端口。 新建Eureka服务调用者项目,命名为“cloud-invoker”,对外端口为9000,代码目录codes 44.4cloud-invoker。本例的负载均衡配置主要针对服务调用者。以上项目准备完成并启动后,结构如图4-2所示。图4-2 准备的项目结构图注意:Eureka相关项目的建立,可参见前面章节。在前面章节讲述了负载规则以及Ping,在Spring Cloud中,可将自定义的负载规则以及Ping类,放到服务调用者中,查看效果。新建自定义的IRule与IPing,两个实现类请见代码清单4-11。代码清单4-11:codes 44.4cloud-invokersrcmainjavaorgcrazyitcloudMyRule.javacodes 44.4cloud-invokersrcmainjavaorgcrazyitcloudMyPing.java根据两个自定义的IRule和IPing类可知,实际上跟4.3章节中的自定义实现类似,服务器选择规则中只返回集合中的第一个实例,IPing实现仅仅是控制输入服务器信息。接下来,新建配置类,返回规则与Ping的Bean,请见代码清单4-12。代码清单4-12:codes 44.4cloud-invokersrcmainjavaorgcrazyitcloudconfigMyConfig.java codes 44.4cloud-invokersrcmainjavaorgcrazyitcloudconfigCloudProviderConfig.java代码清单4-12中,CloudProviderConfig配置类,使用了@R开发云主机域名ibbonClient注解,配置了RibbonClient的名称为“cloud-provider”,对应的配置类为“MyConfig”,也就是名称为“cloud-provider”的客户端,将使用MyRule与MyPing两个类。在服务调用者的控制器中,加入对外服务,服务中调用RestTemplate,如代码清单4-13。代码清单4-13:codes 44.4cloud-invokersrcmainjavaorgcrazyitcloudInvokerController.java以上的控制器中,为RestTemplate加入了@LoadBalanced修饰,与前面章节类似,在此不再赘述,关于RestTemplate的原理,将在本章后面章节讲述。进行以下操作,查看本例效果: 启动一个Eureka服务器(cloud-server)。 启动两次Eureka服务提供者(cloud-provider),分别输入8080与8081端口。 启动一个Eureka服务调用者(cloud-invoker)。 打开浏览器访问http://localhost:9000/router,可以看到调用服务后返回的JSON字符串,不管刷新多少次,最终都只会访问其中一个端口。在前面使用Ribbon时,可以通过配置来定义各个属性,在使用Spring Cloud时,这些属性同样可以配置到application.yml中,以下的配置同样生效:为cloud-provider这个客户端,配置了规则处理类、Ping类以及服务器列表,以同样的方式运行本小节例子,可看到同样的效果,在此不再赘述。代码与配置文件的方式进行配置,两种方式的效果一致,但对比起来,明显是配置文件的方式更加简便。注意:本案例的cloud-invoker模块中,默认使用了代码的方式来配置Ribbon,配置文件中的配置已被注释。Spring Cloud对Ribbon进行封装,例如像负载客户端、负载均衡器等,我们可以直接使用Spring的LoadBalancerClient来处理请求以及服务选择。代码清单4-14,在服务器调用者的控制器中使用LoadBalancerClient。代码清单4-14:codes 44.4cloud-invokersrcmainjavaorgcrazyitcloudInvokerController.java除了使用Spring封装的负载客户端外,还可以直接使用Ribbon的API,代码4-15,直接获取Spring Cloud默认环境中,各个Ribbon的实现类。代码清单4-15:codes 44.4cloud-invokersrcmainjavaorgcrazyitcloudInvokerController.java代码中使用了SpringClientFactory,通过该实例,可获取各个默认的实现类以及配置,分别输出了默认配置以及“cloud-provider”配置。运行代码清单4-15,浏览器中访问地址http://localhost:8080/defaultValue,可看到控制台输出如下:根据输出可知,cloud-provider客户端使用的负载规则类以及Ping类,是我们自定义的实现类。一般情况下,Spring已经帮我们封装好了Ribbon,我们只需要直接调用RestTemplate等API来访问服务即可。感谢你能够认真阅读完这篇文章,希望小编分享的“Spring Cloud如何使用Ribbon”这篇文章对大家有帮助,同时也希望大家多多支持开发云,关注开发云行业资讯频道,更多相关知识等着你来学习!
这篇文章主要为大家展示了“Hive中的常见问题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Hive中的常见问题有哪些”这篇文章吧。hive单表分区数过多执行查询报错(实际上分区数越多查询越慢,应控制分区数在…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。