微服务架构很流行,但本人以前从未了解过,因为实在太懒,懒得学习,技术一直菜如狗,所以想了解下,就在哔哩哔哩上找了个视频,老师讲的挺好,虽然是19年视频。主要为了学习微服务开源框架学习:ruoyi-cloud-plus,地址:https://gitee.com/JavaLionLi/RuoYi-Cloud-Plus
课程随着架构以及需要的组件引入相关技术,笔记内容如下:
1.架构:单体架构 垂直架构 分布式架构 soap(面相服务)架构 微服务架构
2.未使用注册中心,这里使用nacos为例,使用nacos前 如何调用:
借助RestTemplate,启动application里写上
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
controller:
@Autowire
private RestTemplate restTemplate;
业务模拟:订单创建 并返回商品详情(订单服务 商品详情服务 分散到两个模块)
客户端请求 请求订单创建/order/prod/{pid} ,并请求商品详情,主要是服务之间调用
即:
Product product= restTemplate.getForObject("http://localhost:8081/product" + pid,Product.class);
总结:
a.一旦服务提供者地址信息变化,就得修改服务调用者的相关代码
b.无法提供集群,服务调用者一方无法实现负载均衡的调用
c.一旦微服务变得越来越多,如何来管理这个服务清单就成了问题3.常用注册中心:Zookeeper,Eureka,consul,nacos 这里解决2的问题 主要引入nacos
主类增加注解@EnableDiscoveryClient
上边代码就可以改成如下调用方式:
private DiscoveryCDlient discoveryClient;
List<ServiceInstance> instances = dis