1.远程调用
订单模块属于服务消费者
用户模块属于服务提供者
2.Eureka注册中心
注意:一个微服务,既可以是服务提供者,又可以是服务消费者,因此eureka将服务注册、服务发现等功能统一封装到了eureka-client端
3.Ribbon负载均衡
负载均衡策略:
4. Nacos注册中心和配置管理(Eureka只有注册中心)
(1)Nacos需要进行解析安装包进行使用,本机解压到D:/softseting下面
启动命令:startup.cmd -m standalone
(2)服务分级存储模型
一个服务可以有多个实例,Nacos就将同一机房内的实例 划分为一个集群。
(3)环境隔离
Nacos提供了namespace来实现环境隔离功能。
-
nacos中可以有多个namespace
-
namespace下可以有group、service等
-
不同namespace之间相互隔离,例如不同namespace的服务互相不可见
(4)注册中心
(5)配置管理
a.基本介绍
b.共享配置优先级
5.Feign远程调用
(1)Httpclient--->RestTemplate--->Feign
(a)HTTP 协议是 Internet 上使用得最多、最重要的协议之一,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient试图通过提供高效,最新且功能丰富的程序包来实现此空白,以实现最新HTTP标准和建议的客户端。
(b)RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在 RestTemplate 中都得到了实现。是比httpClient更优雅的Restful URL访问。
(c)Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。Feign被广泛应用在Spring Cloud 的解决方案中,是学习基于Spring Cloud 微服务架构不可或缺的重要组件。
(2)Feign性能优化
(a)继承方式:Feign客户端和Controller都集成改接口
(b)抽取方式:将Feign的Client抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用。
6.Gateway服务网关
Nginx和Gateway区别:
a. gateway是前端工程到后台服务器之间的一个对内网关;而nginx是用户到前端工程的网关对外网关 b. 图解 c. Nginx在其中扮演的角色:1.反向代理2.负载均衡。