基于上篇文章 重新创建一份 eureka client 设置端口为 8573 其余不变。启动控制台显示 有两个同名服务已经注册到服务中心.
开始创建服务消费中心.
新建springboot工程 添加 eureka,ribbon,web
修改配置文件
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
server:
port: 8764
spring:
application:
name: service-ribbon
将该服务器同样注册到服务中心.
在工程的启动类中,通过@EnableDiscoveryClient向服务中心注册;并且向程序的ioc注入一个bean: restTemplate;并通过@LoadBalanced注解表明这个restRemplate开启负载均衡的功能。
@SpringBootApplication
@EnableDiscoveryClient
public class RibbonApplication {
public static void main(String[] args) {
SpringApplication.run(RibbonApplication.class, args);
}
@Bean
@LoadBalanced
public RestTemplate initBean() {
return new RestTemplate();
}
}
新建controller 和service
@RestController
public class RibbonController {
private Logger logger= LoggerFactory.getLogger(RibbonController.class);
@Autowired
private HelloService helloService;
@RequestMapping(value = "/ribbon")
public Object ribbonTestRequest(){
return helloService.ribbonTest();
}
}
@Service
public class HelloService {
private Logger logger= LoggerFactory.getLogger(HelloService.class);
@Autowired
RestTemplate restTemplate;
public Object ribbonTest(){
return restTemplate.getForObject("http://service-hi/hello?say=大家好",Object.class);
}
}
服务已经注册到中心
这时我们重复请求 http://admin_pc:8764/ribbon
请求已经通过ribbon 发送到 eurake client
ribbon 负载均衡策略配置
配置文件中添加:
#ribbon 负载均衡策略配置
service-hi:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
参考地址:
spring-cloud-ribbon
csdn
热门评论
为什么我切404 那个ribbon 已经在服务注册了 但却访问不到