• SpringCloud入门(二)


    ribbon实现负载均衡

    上文只是将服务注册到eureka上,但是consumer还是硬编码调用,前文也有提到这种硬编码方式肯定是不合理的,一来服务上线之后,IP地址肯定是变动的, 再则,采用硬编码的方式是无法实现负载均衡的。

    ribbon便是一个用来做负载均衡的组件。

    ribbon是一个负载均衡客户端 类似nginx反向代理,可以很好的控制htt和tcp的一些行为。Feign默认集成了ribbon。
    在server-order项目的pom.xml里加上:

    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-ribbon</artifactId>
    		</dependency>
    

    在加载restTemplates的方法上添加@LoadBalanced注解,使其具有负载均衡的能力,然后将硬编码的ip地址换成服务提供者的应用名字(application.name属性的值),修改之后controller便变成了下面的样子,其他地方不做修改。

    在server-order项目下的启动类里改成这个样子:

    @SpringBootApplication
    @EnableEurekaClient
    public class OrderApp {
    	public static void main(String[] args) {
    		SpringApplication.run(OrderApp.class, args);
    	}
    	
            //做负载均衡
    	@Bean
    	@LoadBalanced
    	RestTemplate restTemplate() {
    		return new RestTemplate();
    	}
    
    }
    

    @LoadBalanced注解表明这个restRemplate开启负载均衡的功能。
    启动两个会员服务工程,也就是把server-number项目的application,端口号分别为8762、8763,分别启动一次,订单服务 使用负载均衡策略轮训到会员服务接口。
    启动完毕的效果:

    浏览器访问server-order项目接口,效果:

    服务消费者(Feign)

    什么是Feign

    Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。
    简而言之:
    • Feign 采用的是基于接口的注解
    • Feign 整合了ribbon
    创建service-order-feign工程
    在像之前的pom.xml文件一样,加多一个依赖包

    	<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-feign</artifactId>
    	</dependency>
    

    application.yml的配置文件:

    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8888/eureka/
    server:
      port: 8765
    spring:
      application:
        name: service-order-feign
    

    编写service,调用service-number

    @FeignClient("service-number")
    public interface MemberFeign {
    	@RequestMapping("/getUserList")
    	public List<String> getOrderByUserList();
    }
    

    效果图:

  • 相关阅读:
    RMAN还原时注意set newname时文件名不要有空格
    注意Vietnamese_CI_AS排序规则下的特殊字符大小敏感问题
    ORA-04028: cannot generate diana for object xxx
    Linux传统Huge Pages与Transparent Huge Pages再次学习总结
    SQL Server 死锁的告警监控
    PlateSpin备份服务器时SQL Server的一些活动信息
    MS SQL xp_instance_regwrite设置注册表疑惑
    AutoAudit研究学习
    The Windows account sa does not exist and cannot be provisioned as a SQL Server system administrator
    Innotop简单介绍
  • 原文地址:https://www.cnblogs.com/Libbo/p/11587544.html
Copyright © 2020-2023  润新知