Java微服务学习Day1
文章目录
- 认识微服务
- 服务拆分及远程调用
- 服务拆分
- 服务远程调用
- 提供者与消费者
- Eureka注册中心
- 介绍
- 构建EurekaServer
- 注册user-service
- order-service完成服务拉取
- Ribbon负载均衡
- 介绍
- 原理
- 策略
- 饥饿加载
- Nacos注册中心
- 介绍
- 配置
- 分级存储
- 负载均衡
- 环境隔离
- nacos注册中心原理
认识微服务
注册中心(Service Registry):
注册中心是微服务架构中的一个核心组件,用于管理和维护所有微服务实例的注册信息。
- 微服务启动时会将自己的网络位置(例如 IP 地址、端口号)以及其他元数据(如服务名称、版本号等)注册到注册中心。
- 当其他微服务需要调用某个服务时,它们会向注册中心查询该服务的实例信息,然后直接调用其中一个实例。
- 注册中心通常实现了服务发现机制,使得微服务能够动态地发现和调用其他微服务,从而实现服务之间的通信。
配置中心(Configuration Center):
配置中心用于集中管理微服务应用的配置信息,包括各种环境下的配置项、属性值、特性开关等。
- 微服务在启动时可以从配置中心动态获取配置信息,而不需要硬编码在代码中,这样可以实现配置的集中管理和动态更新。
- 配置中心通常提供了版本管理、变更通知、安全性等功能,以便对配置进行有效管理和控制。
- 配置中心可以帮助微服务应用实现动态的配置更新,从而减少了重新部署的需要,提高了系统的灵活性和可维护性。
服务拆分及远程调用
服务拆分
服务远程调用
java启动类
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
/**
* 创建RestTemplate并注入Spring容器
*/
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
Service实现类
@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注册中心
介绍
构建EurekaServer
注册user-service
order-service完成服务拉取
Ribbon负载均衡
介绍
原理
策略
第二种方法根据yml的名称只针对某一个微服务。
饥饿加载
Nacos注册中心
介绍
配置
启动
分级存储
负载均衡
环境隔离
nacos注册中心原理