- Introducción al negocio: módulo de usuario, módulo de pedido, módulo de inventario,
- El proceso es el siguiente:
Pago del usuario, necesita aumentar los puntos de compra para los usuarios,
Pedido del cliente requerido
Necesidad de reducir inventario
Es decir, después de recibir la información de retroalimentación, el módulo de usuario realiza las operaciones correspondientes por sí mismo y necesita notificar a los módulos de pedido e inventario para realizar las operaciones correspondientes.
3. Uso del centro de registro de Eureka Microservices
Con el centro de registro y sabiendo en qué puerto se encuentra cada servicio en esa máquina, necesitamos una herramienta que pueda enviar solicitudes a otros servicios para nosotros en lugar de escribir código para enviar solicitudes http nosotros mismos. Este es Fingir.
/ **** * @ Descripción: 订单 实体 类 * / @Data @NoArgsConstructor public class Order { private String userId; recuento de enteros privados; descripción de cadenas privadas; } ** * @Description: 订单 服务 * @Author: wb * / @RestController @RequestMapping ("orderService") clase pública OrderService { @Value ("$ {server.port}") puerto de cadena privado; @RequestMapping (valor = "unificadoOrder", método = RequestMethod.POST) orden pública unificadoOrder (@RequestBody Orden de pedido) { order.setDescrpition ("éxito! Este es orderService, mi puerto es" + puerto); orden de devolución; } } / ** * @Descripción: 库存 服务 * @Author: wb * / @RestController @RequestMapping ("stockService") clase pública StockService { @Value ("$ {server.port}") Puerto de cadena privado; @RequestMapping (value = "reduceStock", method = RequestMethod.GET) public String reduceStock (@RequestParam Integer count) { return "este es stockService, mi puerto es" + port + ", count es" + count; } } 创建 FeognClient 客户 端 调用 接口 @Component @FeignClient (name = "service-client-stock") interfaz pública OrderAndStockFeignClient { @RequestMapping (value = "stockService / reduceStock", method = RequestMethod.GET) String invokeStock (@RequestParam (value = "count " } / ** * @Descripción: 用户 服务 * @Author: wb * / @RestController @RequestMapping ("userService") clase pública UserService { @Autowired private OrderAndStockFeignClient orderAndStockFeignClient; @RequestMapping (value = "pay", method = RequestMethod.GET) public String unifiedOrder (número entero) { String invokeStock = orderAndStockFeignClient.invokeStock (count); devolución invokeStock; } }
Equilibrio de carga el uso de la cinta.
La siguiente pregunta viene, si el servidor de la biblioteca se implementa en cinco máquinas, el mecanismo de sondeo se utilizará en este momento. El algoritmo predeterminado es el algoritmo de sondeo de cinta redonda, que es el mismo sondeo de máquina de aplicación una vez, no aleatorio El fenómeno, el principio de la cinta es:
Enlace original: https://blog.csdn.net/zajiayouzai/java/article/details/80612729