Ribbon
修改默认的负载均衡
复制order-nacos 重命名 order-ribbon
删除order-nacos.iml文件
更改order-ribbon 中的yml中的artifactId
<parent>
<artifactId>sunflower</artifactId>
<groupId>com.yc</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>order-ribbon</artifactId>
加入父工程
<modules>
<module>order</module>
<module>stock</module>
<module>order-nacos</module>
<module>stock-nacos</module>
<module>order-ribbon</module>
</modules>
刷新Maven
进行编写负载均衡配置类
值得注意的是 配置类不能创建在能被@ComponentScan 扫描到的类,如果被扫描到,负载均衡配置了将适用于这个模块中的所有入口
编写配置类
package com.yc.ribbon;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.context.annotation.Bean;
@Configurable
public class RibbonRandomRuleConfig {
@Bean
public IRule getIrule(){
return new RandomRule();
}
}
更改主启动类
@SpringBootApplication
@RibbonClients(value = {
// 访问stock-service 服务 使用RibbonRandomRuleConfig 负载均衡类
@RibbonClient(name = "stock-service",configuration = RibbonRandomRuleConfig.class)
})
//也可以使用此注释 配置单个服务 负载均衡
//@RibbonClient(name = "stock-service",configuration = RibbonRandomRuleConfig.class)
public class OrderNacosMain8011 {
public static void main(String[] args) {
SpringApplication.run(OrderNacosMain8011.class,args);
}
}
修改order-ribbon的启动端口8030
server:
port: 8030
# 服务名称
spring:
application:
name: order-service
cloud:
nacos:
server-addr: localhost:8848
discovery:
username: nacos
password: nacos
namespace: public
启动stock-nacos8022 和 8023
启动stock-nacos8022 和 8023、order-nacos、order-ribbon
访问http://localhost:8030/order-nacos/orderAdd 是端口随机访问的