首页 > 编程语言 > 详细

springCloud 的简单学习

时间:2020-04-13 18:28:29      阅读:71      评论:0      收藏:0      [点我收藏+]
  1. 业务介绍:  用户模块,订单模块,库存模块,
  2. 流程如下: 

      用户付款,需要给用户增加购物积分,

      需要客户订单

      需要减少库存

   也就是说,用户模块接收到信息反馈后,自身进行相应的操作,需要通知订单和库存两个模块也进行相应的操作。      

    3.Eureka 微服务注册中心的使用

      有了注册中心,也知道各个服务在那台机器哪个端口,就需要一个可以替我们向其他服务发送请求的一个工具,而不是我们自己编写代码发送http请求了。这就是Feign.

/****
*@Description:订单实体类
*/
@Data
@NoArgsConstructor
public class Order {
    private String userId;
    private Integer count;
    private String descrpition;
}
**
 * @Description:订单服务
 * @Author:wb
 */
@RestController
@RequestMapping("orderService")
public class OrderService {
    @Value("${server.port}")
    private String port;
    @RequestMapping(value = "unifiedOrder", method = RequestMethod.POST)
    public Order unifiedOrder(@RequestBody Order order){
        order.setDescrpition("success!this is orderService,my port is " + port);
        return order;
    }
}
/**
 * @Description:库存服务
 * @Author:wb
 */
@RestController
@RequestMapping("stockService")
public class StockService {
    @Value("${server.port}")
    private String port;
    @RequestMapping(value = "reduceStock", method = RequestMethod.GET)
    public String reduceStock(@RequestParam Integer count){
        return "this is stockService,my port is " + port + ",count is " + count;
    }
}

创建FeognClient 客户端调用接口
@Component
@FeignClient(name = "service-client-stock")
public interface OrderAndStockFeignClient {
    @RequestMapping(value = "stockService/reduceStock", method = RequestMethod.GET)
    String invokeStock(@RequestParam(value = "count") Integer count);
}

/**
 * @Description:用户服务
 * @Author:wb
 */
@RestController
@RequestMapping("userService")
public class UserService {
    @Autowired
    private OrderAndStockFeignClient orderAndStockFeignClient;
    @RequestMapping(value = "pay", method = RequestMethod.GET)
    public String unifiedOrder(Integer count){
        String invokeStock = orderAndStockFeignClient.invokeStock(count);
        return invokeStock;
    }
}

  负载均衡Ribbon的使用。

下面问题来了,如果库服务器部署5在五台机器中,这时候就要用到轮询的机制了,默认的算法是Round Ribbon轮询算法,就是相同application机器一次轮询,不会出现随机现象,Ribbon原理是:

 

 

原文链接:https://blog.csdn.net/zajiayouzai/java/article/details/80612729

    

 

 

springCloud 的简单学习

原文:https://www.cnblogs.com/dousil/p/12692920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!