1.微服务为什么设置不同的namespace
为了实现三种服务三种情况下的隔离。
2.为什么要用nginx为naocos集群结点做负载均衡?
2.1 正向代理
就像我们访问外网需要一个代理。
2.2 反向代理
我们不需要访问真实的ip,只需要访问 这个服务的代理服务器即可,就会被转发到真实的ip,隐藏了真实服务器的ip地址。
就像访问域名,它会给你的请求分到别的具体ip服务器。
2.3 Nginx为啥不用来做服务的负载均衡?
Nacos是做服务的注册与发现(暂不讨论其他功能)的,内部封装了ribbon负载均衡,与open feign整合使用能够很灵活的开发项目;
Nginx能够实现反向代理和负载均衡,一般用来搭建服务器的集群,实现高并发;
作用不同:
区别就是Nacos能够做的服务的注册与发现,Nginx可以实现对服务端的反向代理,但做不到主动让服务的发现。
- 如果使用Nginx来实现服务之间的调用,远没有使用Nacos方便;
- Nacos同样也做不到实现一个服务器集群的反向代理,如上图所示,Nacos如果只有一台服务器,会存在单点故障的风险,所以使用nginx做了集群,不仅消除了风险还提高了并发量。
nginx 可以对 服务器集群做反向代理。
下面这是 nginx 的代理,nacos的代理 都是分到具体服务器(具体的ip和端口),而不是分到集群。
2.4 nacos 需要有集群,那不然你nacos注册中心也会挂啊
微服务都需要集群,你ngnix也需要集群。
3.Http连接池(跟数据库连接池差不多)
3.1 Http 存在的问题
3.2 创建http 线程池
3. 3 通过连接池获取httpClient(这个对象就是发请求的)
3.4 设定请求类型并执行请求
3.5 连接池状态观察
4 .gateway和 nginx的区别
有了nginx做网关,为啥还要用到gateway呢?
4.1 不同之处
首先这两种网关的定义不一样
nginx用户访问的总入口,也就是前端页面的容器,流量网关。比如对某个ip服务器的访问。
gateway的定义是针对每一个业务,微服务,属于业务网关。
gateway的主要功能有,路由,断言,过滤器,利用它的这些特性,可以做流量控制(对流量进行筛选。
nginx做网关,更多的是做总流量入口,反向代理,负载均衡等,还可以用来做web服务器。
4.2 相同之处
都对流量做负载均衡。
nginx对总流量复杂均衡,gateway对业务流量做负载均衡。
4.3 geteWay的负载均衡还是要去nacos 里扒。
所以得配置nacos的地址。
5.gateway只实现了只实现了 31种过滤器,但是我们能不能自定义一个呢?
全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与 GatewayFilter 的作用一样。区别在于 GlobalFilter 的逻辑可以写代码来自定义规则;而 GatewayFilter 通过配置定义,处理逻辑是固定的。
当然gate way是有自己的全局过滤器。
过滤器 如果 order (用来排序的)的值都一样,那就默认过滤器>当前过滤器> GlobalFilter。
过滤器执行的顺序规则如下: