认识微服务
- 单体架构
将业务的所有功能集中在一个项目中开发,打成一个包部署。
优点:
1.架构简单
2.部署成本低
缺点:- 耦合度高
- 分布式架构
根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
优点:
1.降低耦合。
2.有利于服务升级拓展。 - 微服务
- 微服务结构
微服务这种方案需要技术框架来落地,目前最知名的就是SpringCloud和阿里巴巴的Dubbo。
服务拆分及远程调用
案例:根据订单id查询订单功能
步骤:
1)注册RestTemplate
在order-Service的OrderApplication中注册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
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
2)服务远程调用RestTemplate
修改Order-Service的OrderService的queryOrderById方法:
@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请求,查询用户
String url = "http://userservice:8081/user/" + order.getUserId();
User user = restTemplate.getForObject(url, User.class);
order.setUser(user);
// 4.返回
return order;
}
}
- 提供者与消费者
- Eureka注册中心
eureka主要提供如上的功能。 - Ribbon负载均衡
Ribbon的一些配置
- Nacos注册中心
Nacos注册中心细节分析
Nacos与eureka的区别如上