分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务:
优点:降低服务耦合
有利于服务升级拓展
微服务:
是一种经过良好架构设计的分布式架构方案,微服务架构特征:
●单一职责:微服务拆分粒度更小,每-一个服务都对应唯- -的业务能力,做到单一职责,避免重复业务开发。
●面向服务:微服务对外暴露业务接口
●自治: 团队独立、技术独立、数据独立、部署独立
SpringCloud:是目前国内使用最广泛的微服务框架。官网地址: Spring Cloud.
服务拆分及远程调用:
注意事项:1.不同的微服务,不能重复开发相同业务
2.微服务数据独立,不访问其他微服务的数据库
3.微服务将自己的业务暴露接口,供其他微服务调用
跨服务远程调用:
案例:
根据订单ID查询订单的功能:根据订单id查询订单的同时,将订单的用户信息一起返回
学会远程调用方式:
如何在java代码中发送HTTP请求:
在application文件中写@Bean,创建一个RestTemplate工具,创建即可。
微服务远程调用:
提供者和消费者
服务提供者: 一次业务中,被其它微服务调用的服务。( 提供接口给其它微服务) 服务消费者: 一次业务中,调用其它微服务的服务。( 调用其它微服务提供的接口)
提供者和消费者,得看相对而言(一个服务既可以是生产者也可以是消费者)
Eureka注册中心:
作用:
如果其中一个端口挂掉,则直接排除。
案例:
搭建服务步骤如下:
注册User-service
再order-service完成服务拉取:
Ribbon负载均衡:
流程:
Nacos注册中心
代码参考:
Gitee:cloudcode: Java微服务技术学习指南 - Gitee.com
GitHub:cloudcode/05-cloud-nacos at master · lexinhu/cloudcode · GitHub
SpringCloudAlibaba 推出了一个