SpringCloud Alibaba 微服务架构(十六)- Nacos 集群部署模式最佳实践

30 篇文章 43 订阅

1 前言

Nacos 支持两种部署模式:单机模式和集群模式。在实践中,我们往往习惯用单机模式快速构建一个 Nacos 开发/测试环境,而在生产中,出于高可用的考虑,一定需要使用 Nacos 集群部署模式。我的上一篇文章《一文详解 Nacos 高可用特性》提到了 Nacos 为高可用做了非常多的特性支持,而这些高可用特性大多数都依赖于集群部署模式。这篇模式文章便是给大家介绍一下,在实践中可以被采用的几种集群部署模式,无论你是希望自行搭建 Nacos,还是希望对 MSE 商业版 Nacos 有一个更加深刻的理解,我都很乐意跟你分享下面的内容。
由于篇幅限制,本文不会介绍如何将一个多节点的 Nacos 集群启动起来,主要介绍的是一个多节点的 Nacos 集群启动之后,我们的应用如何很好地连接到 Nacos 集群,即客户端视角。这中间我们会引入一些其他组件以解决一些问题,本文标题也可以叫做《Nacos 接入点最佳实践》。我将会介绍以下三种方案:直连模式、 VIP 模式和地址服务器模式,并对它们进行对比。

2 直连模式

直连模式是部署上最简单,也是最容易理解的一种模式
直连模式
采用直连模式后,典型的开发场景配置如下:

  • nacos-client 配置
Properties properties = new Properties();
properties.setProperty(PropertyKeyConst.SERVER_ADDR, "192.168.0.1:8848,192.168.0.2:8848,192.168.0.3:8848");
NamingService namingService = NacosFactory.createNamingService(properties);

注意这里的 PropertyKeyConst.SERVER_ADDR 的字面量是:serverAddr

  • Dubbo 配置
dubbo.registry.address=192.168.0.1:8848,192.168.0.2:8848,192.168.0.3:8848
dubbo.registry.protocol=nacos

如果有一天,Nacos 的 IP 变了,例如扩缩容,机器置换,集群迁移等场景,所有的应用都需要修改,这样的方式并不灵活。所以这种模式并不是生产推荐的模式。

模式分析

  • 高可用性。集群本身的扩缩容必须要改动业务代码才能被感知到,出现节点故障需要紧急下线、紧急扩容等场景,让业务修改代码是不现实的,不符合高可用的原则。
  • 可伸缩性。同上,可伸缩性不友好。
  • 架构简单,用户理解成本低
  • 没有引入额外的组件,没有新增组件的运维成本

3 VIP 模式

VIP(Virtual IP) 模式可以很好的解决直连模式IP变化所带来的应用批量修改的问题。什么是 VIP 呢?
VIP

  • Real Server:处理实际请求的后端服务器节点。
  • Director Server:指的是负载均衡器节点,负责接收客户端请求,并转发给 RS。
  • VIP:Virtual IP,DS 用于和客户端通信的 IP 地址,作为客户端请求的目标 IP 地址。
  • DIP:Directors IP,DS 用于和内部 RS 通信的 IP 地址。
  • RIP:Real IP,后端服务器的 IP 地址。
  • CIP:Client IP,客户端的 IP 地址。

我这里介绍时并没有用 【负载均衡模式】,而是用了 【VIP 模式】,主要是为了跟 Nacos 官方文档保持一致。事实上,VIP 的叫法在阿里内部比较流行,所以在开源 Nacos 时也被习惯性的带了出去。
VIP模式
VIP 帮助 Nacos Client 屏蔽了后端 RIP,相对于 RIP 而言,VIP 很少会发生变化。以扩容场景为例,只需要让 VIP 感知到即可,Nacos Client 只需要关注 VIP,避免了扩容引起的代码改造。

只要是具备负载均衡能力的组件,均可以实现 VIP 模式,例如开源的 Nginx 以及阿里云负载均衡 SLB。

采用 VIP 模式后,代码不需要感知 RIP,典型的开发场景配置如下:

  • nacos-client 配置
Properties properties = new Properties();
properties.setProperty(PropertyKeyConst.SERVER_ADDR, "{VIP}:8848");
NamingService namingService = NacosFactory.createNamingService(properties);
  • Dubbo 配置
dubbo.registry.address={VIP}:8848
dubbo.registry.protocol=nacos

域名配置

VIP 模式和直连模式都不具备可读性,所以在实际生产中,往往还会给 VIP 挂载一个域名。

域名背后甚至可以挂载 2 个 VIP 用作高可用,路由到相同的 rs;同时域名的存在也让 VIP 的置换变得更加灵活,当其中一台出现问题后,域名的 DNS 解析只会路由到另外一个正常的 VIP 上,为平滑置换预留了足够的余地。

tips:一个域名可以绑定多个 A 记录,一个 A 记录对应一个 IPv4 类型的
VIP,DNS 域名服务器了对多个 A记录会有负载均衡策略和健康检查机制

VIP 模式的最终生产高可用版架构便产生了:
域名VIP模式
典型的开发场景配置只需要将 VIP 替换为域名即可。

  • nacos-client 配置
Properties properties = new Properties();
properties.setProperty(PropertyKeyConst.SERVER_ADDR, "mse-abc123qwe-nacos.mse.aliyuncs.com:8848");
NamingService namingService = NacosFactory.createNamingService(properties);
  • Dubbo 配置
dubbo.registry.address=mse-abc123qwe-nacos.mse.aliyuncs.com:8848
dubbo.registry.protocol=nacos

模式分析

  • 高可用性。域名的可用性需要由 DNS 域名服务器负责,可用性保障较高;VIP 需要由高可用的负责均衡组件支持,且流量经过负载均衡转发,对 VIP 的实现有较高可用性的要求。
  • 可伸缩性。水平扩缩容时,只需要让 VIP 感知即可,可伸缩性好。
  • 依赖了域名解析系统和负载均衡系统,生产部署时,需要有配套设施的支持。

4 地址服务器模式

地址服务器介绍

说起地址服务器,可能大家对这个词会感到陌生,因为地址服务器的概念主要在阿里内部比较普及,也是阿里中间件使用的最广的一种地址寻址模式。但是在开源领域,鲜有人会提及,但对于 Nacos 部署模式而言,地址服务器模式是除了 VIP 模式之外,另外一个生产可用的推荐部署方式。

地址服务器是什么?顾名思义,是用来寻址地址的服务器,发送一个请求,返回一串地址列表。尽管在阿里内部使用的真实地址服务器比这复杂一些,但下图这个简单交互逻辑,几乎涵盖了地址服务器 90% 的内容。
地址服务器原理
实现一个简易版本的地址服务器并不困难,推荐使用 nginx 搭建一个静态文件服务器管理地址, 当然你可以使用 Java!

@Controller
public class AddressServerController {

    @RequestMapping("/nacos/serverlist")
    public ResponseEntity<String> serverlist() {
        return ResponseEntity.ok().
            header("Content-Type", "text/plain").
            body("192.168.0.1:8848\r\n" +
                    "192.168.0.2:8848\r\n" +
                    "192.168.0.3:8848\r\n"
            );
    }

}

使用地址服务器可以完成集群地址和客户端配置的解耦,解决直连模式中无法动态感知集群节点变化的问题。客户端根据地址服务器返回的列表,随后采取直连模式连接;并且在客户端启动后,会启动一个定时器,轮询感知 AddressServer 的变化,进而及时更新地址列表。

并且地址服务器建议配置域名,增加可读性。所以最后的部署交互架构是这样的:
地址服务器部署架构
熟悉 RPC 的朋友看到这里应该能够很好地对 VIP 模式和地址服务器模式做一个类比。

  • VIP 模式是 DNS 类的服务端负载均衡技术
  • 地址服务器是类似服务发现机制的客户端负载均衡技术

nacos-client的源码专门适配了地址服务器模式,我们只需要配置好addressServerendpoint 即可

  • nacos-client 配置
Properties properties = new Properties();
properties.setProperty(PropertyKeyConst.ENDPOINT, "{addressServerDomain}");
properties.setProperty(PropertyKeyConst.ENDPOINT_PORT, "8080");
NamingService namingService = NacosFactory.createNamingService(properties);

注意,这里 PropertyKeyConst.ENDPOINT 的字面量是:endpoint ,配置的是地址服务器的地址。

  • Dubbo 配置
dubbo.registry.address=0.0.0.0?endpoint=127.0.0.1&endpointPort=8080
dubbo.registry.protocol=nacos

dubbo.registry.address 的 url 可以任意填写,因为当 serverAddr 和 endpoint 同时存在时,默认是优先从地址服务器去选址的。

此时,只需要把真实的 Nacos Server IP 配置到地址服务器中即可。

Dubbo 通过 url 的 kv 属性将值透传给 Nacos 创建 Nacos-Client。
Dubbo + Nacos 使用地址服务器模式时,建议 Dubbo 版本 >= 2.7.4,nacos-client 版本 >= 1.0.1

模式分析

  • 高可用性。域名的可用性需要由 DNS 域名服务器负责,可用性保障较高;地址服务器的职责单一,有较高的可用性;运行时 Client 直连 Nacos Server 节点,可用性靠 nacos-sdk 保障。
  • 可伸缩性。水平扩缩容时,只需要让地址服务器感知即可,可伸缩性好。
  • 依赖了域名解析系统和地址服务器,生产部署时,需要有配套设施的支持。

5 部署模式对比

直连模式VIP 模式地址服务器模式
转发模式直连代理(网络多一跳)直连
高可用弱,代码配置不灵活,节点故障时无法批量变更
可伸缩性
部署成本负载均衡组件运维成本高地址服务器运维成本低
负载均衡模式nacos-sdk 客户端负载均衡负载均衡组件提供负载均衡能力nacos-sdk 客户端负载均衡
开源接受度低,地址服务器模式在开源领域不太普遍
企业级能力不方便灵活灵活
跨网络内网环境,平坦网络VIP 模式灵活地支持反向代理、安全组、ACL 等特性,可以很好的工作在内/外网环境中,使得应用服务器和 Nacos Server 可以部署在不同的网络环境中,借助 VIP 打通内网环境,平坦网络
推荐使用环境开发测试环境生产环境,云环境生产环境

Nacos 这款开源产品很好地支持了地址服务器这种模式,所以无论是大、中、小型公司在自建 Nacos 时,都可以选择地址服务器模式去构建生产高可用的 Nacos 集群,地址服务器组件相对而言维护简单,Nginx,Java 构建的 Web 服务器均可以轻松实现一个地址服务器。使用地址服务器后,nacos-client 与 nacos-server 之间仍然是直连访问,所以可以很好的运作在平坦网络下。

VIP 模式同样推荐在自建场景使用,但运维成本相对地址服务器还是要高一些,可以根据自己公司的运维体系评估。经过了 VIP 的转发,有利有弊。弊端比较明显,网络多了一跳,对于内网环境这样的平坦网络而言,是不必要的;优势也同样明显,大公司往往环境比较复杂,数据中心之间有网络隔离,应用和中间件可能部署在不同的网络环境中,借助于 VIP 可以很好地做网络打通,并且基于 VIP 可以很好实现安全组、ACL 等特性,更符合企业级诉求。

当然,组合使用地址服务器 + VIP 也是可以的,可以充分的融合两者的优势:
组合模式

6 MSE Nacos 的实践

上述场景主要介绍了三种模式的具体部署方案,以及自建 Nacos 场景如何做到高可用,最后要介绍的是阿里云环境 MSE 是如何部署的。

MSE(微服务引擎)提供了 Nacos 注册中心中心的全托管能力,除了要做上述提到的高可用、可伸缩、易用性,还要考虑以下的因素:

  • 开源接受度。避免给用户带来太多理解成本,尽量做到对标开源,这样用户接受度才会高。
  • 网络隔离。MSE 提供的是 BaaS 化的能力,Nacos Server 部署在云产品 VPC,与用户 VPC 是隔离的,需要解决网络隔离问题。
  • 网络安全。MSE Nacos 是独享模式,网络上租户隔离是最基本的要求。除此之外企业级用户会对 MSE Nacos 提出安全组/ACL 控制的诉求,这些都需要考量。

综上,MSE Nacos 最终采用的是域名 + SLB 的 VIP 模式。
MSE部署模式
MSE Nacos 提供两个域名,其中公网域名可以用做本地开发测试,或者自建环境、混合云等场景的接入点,内网域名用做阿里云生产环境接入点。公网域名有带宽限制,需要在集群创建时根据场景选择合适的带宽,而内网域名则没有带宽限制。公网域名请注意添加 IP 访问白名单。

官网首页:https://mse.console.aliyun.com/

7 总结

本文介绍了 Nacos 的三种部署模式,并就高可用、可伸缩、易用性等方面对各个模式进行了介绍,并对自建 Nacos 场景的部署选型进行了分析,同时介绍了 MSE Nacos 企业版的部署架构,对云环境部署 Nacos 进行了补充。

文章提及的三种模式其实也都是中间件组件常见的部署模式,不仅仅 Nacos,例如 Redis、DB 等场景,同样有参考价值。

本文提及了地址服务器这个可能在开源领域不太常见的组件,在阿里内部则用的非常普遍。

另外,Nacos 本身也提供了 addressServer 模块,出于篇幅考虑没有在本文中提及,后续我会单独整理一篇文章介绍,感兴趣的同学可以自行参考 Nacos 官方文档和官方博客中的内容。

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<p><span style="color: #337fe5;"><strong> </strong></span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; font-weight: bolder;"><span style="box-sizing: border-box; word-break: break-all; color: #16a085;">课程介绍 <span style="color: #e03e2d;">【完善体系+精品资料】</span></span></span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">本课程<span style="box-sizing: border-box; word-break: break-all; color: #c0392b;">总计115课</span>时,打造<span style="box-sizing: border-box; word-break: break-all; color: #c0392b;">全网最全的微服务体系课程</span>;从微服务是什么、能够做什么开始讲起,绝对零基础入门到精通类型。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">课程整体脉络十分清晰,<span style="box-sizing: border-box; word-break: break-all; color: #c0392b;">每个章节一个知识点,画图+源码+运行讲解</span>,不信你学不会。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">1、课程先讲解了什么是单体架构、什么是微服务架构、他们之间有什么区别和联系,各自有什么优缺点。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">2、从本质入手,使用最简单的Spring Boot搭建微服务,让你认清微服务是一种思想和解决问题的手段,而不是新兴技术。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">3、讲解Spring Boot 与 Spring Cloud 微服务架构之间的联系,原生的RestTemplate工具,以及Actuator监控端点的使用。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">4、带着微服务所带来的各种优缺点,为大家引入服务发现与注册的概念和原理,从而引入我们的第一个注册中心服务Eureka。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">5、引入负载均衡的理念,区分什么是服务端负载均衡,什么是客户端负载均衡,进而引入Ribbon负载均衡组件的详细使用。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">6、为了解决微服务之间复杂的调用,降低代码的复杂度,我们引入了Feign声明式客户端,让你几行代码学习服务的远程调用。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">7、为了解决服务之间的稳定性,避免发生雪崩问题,我们引入了Hystrix断路器,服务降级和熔断机制。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">8、微服务集群十分庞大,监控起来是十分困难的,尤其是对每一个接口的熔断情况进行监控,因此我们引入了Turbine微服务监控。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">9、微服务的调用是杂乱无章的,可以网状调用,怎么做到统一的入口出口,统一的授权、加密、解密、日志过滤,我们引入了第一代网关Zuul。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">10、微服务的配置分散,每次要修改配置都要重启服务,因此我们引入了Config配置中心。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">11、跟上主流,Consul是当前主流的服务注册与发现、配置中心一体化的解决方案。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">12、阿里的Nacos服务注册与发现、配置中心在国内炙手可热,Nacos 经历过双十一的微服务中间件。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">13、Turbin做微服务监控还是太弱,我们需要更强大,可视化,操作性更强的监控系统,因此我引入了Spring Boot Admin体系。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">14、Zuul已经停止更新支持,Spring Cloud官方推荐的二代网关Spring Cloud Gateway更加强大。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">15、微服务的安全架构体系虽然复杂,但是是有学习条例的,什么是认证授权、什么是OAuth2.0的原理、 JWT、怎么样去开发实现。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; font-weight: bolder;"><span style="box-sizing: border-box; word-break: break-all; color: #16a085;">课程资料 <span style="color: #e03e2d;">【独家资料】</span></span></span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;">1、<span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">课程附带全部63个项目源码,其中Hoxton版本项目源码37个,Edgware版本项目26个,</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">2、230页高清PDF正版课件。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">3、附带nacos、consul、cmder等视频配套软件。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; font-weight: bolder;"><span style="box-sizing: border-box; word-break: break-all; color: #16a085;">学习方法</span></span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"> </p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">1、每一节课程均有代码,较好的方式为一边听我的讲解,一边使用我提供的项目代码进行观察和运行。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">2、课程体系庞大,但是并不杂乱,每个章节只针对一个知识点,减轻学习压力。</span></p> <p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 20px; word-break: break-all; white-space: pre-wrap; width: 760px; padding: 0px 16px; line-height: 27px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; font-size: 16px; background-color: #ffffff;"><span style="box-sizing: border-box; word-break: break-all; font-size: 14px;">3、坚持每天学习1~2个章节,可以在地铁、公交上用手机学习。</span></p> <p class="MsoListParagraph" style="margin-left: 18.0pt; text-indent: -18.0pt;"><span style="color: #e03e2d;"><strong>【完善知识体系图】</strong></span></p> <p class="MsoListParagraph" style="margin-left: 18.0pt; text-indent: -18.0pt;"><span style="color: #337fe5;"><strong><img src="https://img-bss.csdnimg.cn/202007100719132383.png" alt="" /><br /></strong></span></p>
<p> <span>课程目录如下:</span> </p> <p> <span style="color:#333333;">第一章 课程介绍</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第二章 微服务架构及注册中心eureka与nocos区别</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第三章 nacos官网介绍及单机部署</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第四章 nacos集群部署</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第五章 nacos控制台介绍</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第六章 注册中心nacos(服务注册与发现)</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第七章 Http客户端及负载均衡之springcloud openfeign</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第八章 nacos配置中心</span> </p> <p> <span style="color:#333333;"></span><span style="color:#333333;">第九章 课程总结</span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <span style="color:#333333;"><span>Alibaba nacos于2018年7月开源,并开始逐步拥抱springcloud社区,alibaba微服务框架大有超越之势,目前热度非常高,其中注册中心nacos就像人之心脏,值得分享与学习下,</span></span><span style="color:#333333;">课件markdown资料及课程源码都已经上传。</span> </p> <p> <span style="color:#333333;"><br /></span> </p>
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值