认识微服务
- 单体架构
将业务的所有功能集中在一个项目中开发,打成一个包部署。
优点:
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的区别如上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)