目录
什么是微服务
微服务是一种经过良好架构设计的分布式架构方案,微服务特征:
单一职责:微服务拆分粒度更小,每一个服务对应唯一的业务能力,做到单一职责,避免重复业务开发
面向服务:微服务对外暴露业务接口
自治:团队独立、技术独立、数据独立、部署独立
隔离性强:服务调用做好隔离、容错、降级、避免出现问题
服务拆分注意事项
实现跨服务的远程调用:
1、注册 RestTemplate:在order-service服务的OrederApplication中注册RestTemplate
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
/**
* 创建RestTemplate并注入spring容器
* @return
*/
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
2、在OrderService类里利用RestTemplate的getForObjectfan方法远程查询user服务
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
public Order queryOrderById(Long orderId) {
// 1.查询订单
Order order = orderMapper.findById(orderId);
//2.利用RestTemplate发起HTTP请求,查询用户
//2.1url路径
String url = "http://localhost:8081/user/"+order.getUserId();
//2.2发送http请求,实现远程调用
User user = restTemplate.getForObject(url, User.class);
//3.封装user到ORDER
order.setUser(user);
// 4.返回
return order;
}
}
提供者和消费者
Eureka注册中心
eureka的作用
搭建EurekaServer
服务注册:注册user-service
在order-service完成服务拉取
Ribbon负载均衡
Ribbin的懒加载、饥饿加载
Nacos注册中心
服务注册到nacos
Nacos服务分级存储模型
根据集群负载均衡
环境隔离-namespace
Nacos和Eureka对比