定制开发java ribbon配置

概念:
定制开发是一种客户端负载平衡器,可让您对HTTP和TCP定制开发客户端的行为进行大量控制。Feign已使用Ribbon,因此,如果使用@FeignClient,定制开发则本节也适用。Ribbon定制开发中的中心概念是指定客户的概念。定制开发每个负载均衡器都是组件的一部分,这些组件可以一起工作以按需联系远程服务器,并且该组件具有您作为应用程序开发人员提供的名称(例如,使用@FeignClient批注)。根据需要,Spring Cloud通过使RibbonClientConfiguration为每个命名的客户端创建一个新的集合作为ApplicationContext。其中包含ILoadBalancer,RestClient和ServerListFilter。


1引入jar
pom.xml

org.springframework.cloud spring-cloud-starter-netflix-ribbon
2.数据库easy code插件生成各个层


3添加application.yml配置

4

5

6.设置接口内容

@Service(“carService”)
public class CarServiceImpl extends ServiceImpl<CarDao, Car> implements CarService {
//依赖注入
@Resource
private RestTemplate restTemplate;

/** * 根据订单编号查询订单对象 * @param orderId * @return */public R  getOrderById(Integer orderId){    //注意: 1, http后的服务名称必须是想调用的服务名称    //      2,服务名称后的路径必须和远程方法的路径    //      3,请求方式必须和远程资源方式一致    //      4,  返回值也必须和远程方法返回值一致    /*restTemplate.postForObject();    restTemplate.delete();    restTemplate.put();*/    return  restTemplate.getForObject("http://MemberServer/order/selectOne?id="+orderId,R.class);}/** * 重写的根据编号获取Car对象方法 * @param id * @return */@Overridepublic Car getById(Serializable id) {    Car car = this.baseMapper.selectById(id);    //  int orderId = car.getOrderID;    //this.getOrderById(orderId);    R resultR = this.getOrderById(1);    car.setR(resultR);    return car;}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

7.,随机配置

@Configuration
public class RibbonConfiguration {
//实例化bean,交给容器管理
@Bean//相当于过去的
@LoadBalanced //当使用RestTemplate调用远程接口的时候使用负载均衡
public RestTemplate restTemplate(){
return new RestTemplate();
}
//实例化IRule的实现类,指定负载均衡策略
@Bean
public IRule iRule()
{
//随机
//return new RandomRule();
//轮询
return new RoundRobinRule();
}
}

8.客户端controller修改


@GetMapping("/")
public R selectOne(Integer id) {
Order order = this.orderService.getById(id);
order.setCarId(14221);
order.setOrderno(“服务器member_server_a”);
return success(order);
}

10.登陆客户端localhost:http://localhost:14222/swagger-ui/index.html
F服务注册中心:http://localhost:8848/nacos

ribbon:localhost:14231/car/selectOne/1

观察轮询随机即可

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发