SpringCloud:ribbon项目搭建(Gradle项目)

我们在前面创建了EreukaClient ,注解为@EnableEurekaClient

现在我们将这个client引入ribbon变成负载均衡,首先把它变为可发现的,@EnableDiscoveryClient

关于两者的区别:

SpringCLoud中的“Discovery Service”有多种实现,比如:eureka, consul, zookeeper。

1,@EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现; 

2,@EnableEurekaClient注解是基于spring-cloud-netflix依赖,只能为eureka作用;

如果你的classpath中添加了eureka,则它们的作用是一样的。

其实用更简单的话来说,就是如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。

为了让它变成负载均衡,先创建一个兄弟服务。两者端口号,分别为8762和8763,并拥有同一个应用名称:cloud-service。

扫描二维码关注公众号,回复: 5103572 查看本文章
eureka:
    client:
        serviceUrl:
            defaultZone: http://localhost:8761/eureka/
server:
    port: 8762
spring:
    application:
        name: cloud-service

两者都提供一个请求接口,返回的字符串显示各自的端口号。

@RestController
	@RequestMapping(value = "/ribbon")
	public class RibbonTestApi {

		/**
		 * 获取博客名称API
		 *
		 * @return 相关信息
		 */
		@RequestMapping(value = "name", method = RequestMethod.GET)
		public String getMyBlogNameApi() {
			return "111111111111111"+"该服务器端口号:8762"; // or 8763
		}
	}

  

 接下来创建一个调用这个/ribbon/name的请求的服务端。

@SpringBootApplication
@EnableDiscoveryClient
public class CloudRibbonApplication {

	private static final Logger logger  = LogManager.getLogger(CloudRibbonApplication.class.getName());

	public static void main(String[] args) {
		SpringApplication.run(CloudRibbonApplication.class, args);
	}


	/**
	 * Spring提供的用于访问Rest服务的客户端
	 * @return
	 */
	@Bean
	@LoadBalanced
	RestTemplate restTemplate() {
		logger.info("LoadBalanced restTemplate from ribbon client");
		return new RestTemplate();
	}
}

  

创建一个TestRibbonApi类:

@RestController
@RequestMapping(value = "/test")
public class TestRibbonApi {
    /**
     * 注入RestTemplate
     */
    @Autowired
    RestTemplate restTemplate;

    @RequestMapping(value = "/name" ,method = RequestMethod.GET)
    public String testGetNameOfBlog(){
        String url="http://CLOUD-SERVICE/ribbon/name";
        return restTemplate.getForObject(url,String.class);
    }
}

  

 将它们分别启动可以看到:




猜你喜欢

转载自www.cnblogs.com/bensonlim/p/10330334.html
今日推荐