《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
}
}
2)修改OrderController
实现基于Ribbon的形式调用远程的微服务
1、使用@LoadBalanced声明RestTemplate
2、使用服务名称替换IP地址
package cn.itbluebox.order.controller;
import cn.itbluebox.order.entity.Product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import java.util.List;
@RestController
@RequestMapping(“/order”)
public class OrderController {
//注入RestTemplate对象
@Autowired
private RestTemplate restTemplate;
/*
注入DiscoveryClient:
SpringCloud 提供的获取原数组的工具类
调用方法获取服务的元数据信息
*/
@Autowired
private DiscoveryClient discoveryClient;
/*
参数:商品ID
通过订单系统,调用商品服务
1、需要配置商品对象
2、需要调用商品服务
3、entity.Product
使用java 当中的urlconnection,httpclient,okhttp
*/
/*
实现基于Ribbon的形式调用远程的微服务
1、使用@LoadBalanced声明RestTemplate
2、使用服务名称替换IP地址
*/
@RequestMapping(value = “/buy/{id}”, method = RequestMethod.GET)
public Product findById(@PathVariable Long id) {
//如何调用商品服务?
return restTemplate.getForObject(“http://service-product/product/”+id,Product.class);
}
@RequestMapping(method = RequestMethod.POST)
public String save(@RequestBody Product product) {
restTemplate.postForObject(“http://service-product/product/”,product,Product.class);
return “保存成功”;
}
@RequestMapping(method = RequestMethod.PUT)
public String update(@RequestBody Product product) {
restTemplate.put(“http://service-product/product/”,product);
return “更新成功”;
}
@RequestMapping(value = “/{id}”, method = RequestMethod.DELETE)
public String delete(@PathVariable Long id) {
restTemplate.delete(“http://service-product/product/”+id);
return “删除成功”;
}
}
(3)运行测试
访问:http://localhost:9002/order/buy/1
=========================================================================
(1)什么是负载均衡
在搭建网站时,如果单节点的 web服务性能和可靠性都无法达到要求;
或者是在使用外网服务时,经常担心被人攻破,一不小心就会有打开外网端口的情况,通常这个时候加入负载均衡就能有效解决服务问题。
负载均衡是一种基础的网络服务,其原理是通过运行在前面的负载均衡服务,按照指定的负载均衡算法,将流量分配到后端服务集群上,从而为系统提供并行扩展的能力。
负载均衡的应用场景包括流量包、转发规则以及后端服务,由于该服务有内外网个例、健康检查等功能,能够有效提供系统的安全性和可用性。
(2)客户端负载均衡与服务端负载均衡
服务端负载均衡
先发送请求到负载均衡服务器或者软件,然后通过负载均衡算法,在多个服务器之间选择一个进行访问;
即在服务器端再进行负载均