微服务就是多个服务单独运行
服务之间可以相互调用,
比如我写一个项目,你也写一个项目,
但是我的项目里面去访问你的项目的逻辑了,这是就是微服务吗,不,这不是,
微服务核心是注册中心,就是中介,
平时我们调用其他项目的东西,就是自己构造http请求,端口写死,路径可能用个变量,微服务区别就在这
它是在注册中心有个昵称,就是服务名(一个服务名可能对应多个项目,使用哪个项目的策略就称为负载均衡),然后其他项目只需要向服务中心提供服务名,它就会自动给你匹配你要调用哪个项目,降低了耦合性,这才是微服务。
只不过在微服务里我们写的每个项目的功能单一了。
接下来就说说feign和ribbon
ribbon就是实现负载均衡的,它内部有不同的选择哪个服务的策略,
feign远程调用,我的理解就是构建http请求,只不过是给你封装了构建的过程,让其构建的更符合我们的编码习惯,看着更舒服,用着也舒服。
如下这样,用的时候直接调用方法就行了
@FeignClient("nacos-provider")
public interface FeignTemplate {
@GetMapping("/getUser/{id}")
String getUSer(@PathVariable("id") int id);
}
spring也提供了构建http请求的方法RestTemplate,这个构建相对更死板一点,如下这样
restTemplate.getForObject("http://nacos-provider/first/getUser/"+id, String.class);
//String result = feignTemplate.getUSer(id);这是feign的调用过程



