继续上次的内容,我们知道,我们为什么要使用微服务架构呢?因为我们需要把各个服务拆分开来,这样在单个项目中的代码复杂度,把庞大的项目拆分成一个一个的细粒度的小模块来进行管理,从而减轻开发的难度。这是其一,其次,应用了微服务体系的概念之后,我们可以使用springcloud框架为我们提供的可以自动管理各个服务之间通信的工具(Nacos)
注:未来有空的话,需要再补一下Nacos是如何实现模块之间的通信的。
在上一篇文章中,我们可以通过springcloud为我们封装的RestTemplate对象并给它加上@Balanced注解,但我们还是需要写上用来实现组件之间通信的代码,如下:
@GetMapping("/consumer/doRestEcho3")
public String doRestEcho03(){
String url=String.format("http://%s/provider/echo/%s","sca-provider",appName);
//向服务提供方发起http请求,获取响应数据
return loadBalancedRestTemplate.getForObject(
url,//要请求的服务的地址
String.class);//String.class为请求服务的响应结果类型
}
那如果我们连这些代码都不想写的话,需要怎么做呢?答案是,用Feign
1.Feign是什么,怎么用?
Feign 是一种声明式Web服务客户端,底层封装了对Rest技术的应用,通过Feign可以简化服务消费方对远程服务提供方法的调用实现。如图所示:
这里已经说的很明白了,我们看上面被加粗的文字,“简化服务消费方对远程服务提供方法的调用实现”,说白了,就是用来方便我们更快的实现组件之间通信的工具。那,怎么用呢?
怎么用我们就直接在百度过程中学习吧,简单的调用,这里不再赘述了。。。
2.我们现在已经掌握了实现组件之间的通信了,接下来说一个比较分支的知识点:配置中心
2.1为什么要学配置中心?换而言之,配置中心是啥?用来干嘛滴?
我们来先看一个场景:比如说我们现在有一个项目已经接近尾声,客户测试基本通过,而且已经投入上线前的最后测试阶段,或者说项目已经投入正式使用,而现在客户变更了一些基础的配置,例如,服务器的地址,那我们可以暂停一下项目的使用,重新编辑后台的配置信息后再打包上传,这个过程太繁琐也没有太大的实际意义,如此复杂的打包上传过程仅仅是为了修改一项配置信息,更重要的是,客户在你修改期间,没法使用了,客户体验就不好,那意味着,可能甲方爸爸就生气了。
那怎么去解决这样一个问题呢------->配置中心,就产生了
这里配置中心的配置过程,无非就是引入依赖和编辑配置信息的过程,最后我们在Nacos的配置中心编辑配置信息的时候,需要注意Data ID的值要与bootstrap.yml中定义的spring.application.name的值相同(服务名-假如有多个服务一般会创建多个配置实例,不同服务对应不同的配置实例)。