• 关于

    网络自配置工作原理

    的搜索结果

回答

(1)线程的工作场景主要有两条: 一个是并发操作,避免阻塞和更有效利用资源。典型的例子有:在长时间工作的程序中使用工作线程避免界面失去响应。在网络下载程序中,使用多个线程提高对网络的使用效率,更快下载文件。 一个是并行,线程是处理器调度的最小单位。如果你的计算机配置了多个处理器或者内核,那么可以同时利用多个处理器同时计算,加快问题解决的速度。 (2)多线程的工作原理: 对于单处理器系统,操作系统会轮流调度每个线程执行一小段时间,然后切换另一个线程,在切换的时候,保存当前线程使用的寄存器上下文和堆栈,并且在下次调度的时候恢复。这样线程中的程序感觉不到自己被中断过。对于多处理器系统,操作系统会将不同的线程调度给多个处理器,让它们并行执行。

蛮大人123 2019-12-02 01:50:45 0 浏览量 回答数 0

问题

磁盘缩容

chenchuan 2019-12-01 21:36:34 624 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:50 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:51 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:50 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:50 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:49 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:51 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:50 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:50 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:51 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 阿里云内容分发网络(Alibaba Cloud Content Delivery Network,简称CDN)将您源站资源缓存至阿里云遍布全球的加速节点上。当终端用户请求访问和获取这些资源时,无需回源,系统将就近调用CDN节点上已经缓存的资源。 在不同区域、不同场景下使用CDN加速您网站内容的分发,将有效分担源站压力,避免网络拥塞,提升用户访问资源的速度和体验。您可以参考快速入门 快速接入阿里云CDN。 工作原理 通过以下案例,您可以清楚地了解CDN的工作原理。 假设您的源站域名为 www.a.com。接入 CDN 开始使用加速服务后,当您的终端用户(北京)发起 HTTP 请求时,实际的处理流程如下: 终端用户(北京) 向 www.a.com下的某资源发起请求,会先向 LDNS 发起域名解析请求。 当 LDNS 解析 www.a.com 时,会发现已经配置了 CNAME www.a.tbcdn.com。 解析请求会发送至阿里云DNS调度系统,并为请求分配最佳节点 IP。 LDNS 获取 DNS 返回的解析 IP。 用户获取解析 IP。 用户向获取的 IP 发起对该资源的访问请求。 若该 IP 对应的节点已经缓存了该资源,则会将数据直接返回给用户(如图中步骤7、8),此时请求结束。 若该节点未缓存该资源,则节点会向业务源站发起对该资源的请求。获取资源后,结合用户自定义配置的缓存策略(可参考产品文档中的 缓存过期配置),将资源缓存至节点(如图:北京节点),并返回给用户,此时请求结束。 相关概念 CNAME:即别名( Canonical Name ),可以用来把一个域名解析到另一个域名。 回源HOST:使用回源HOST,您可以自定义CDN节点回源时所需访问的具体服务器域名。 协议回源:开启该功能后,回源使用协议和客户端访问资源的协议保持一致。 过滤参数:URL请求中,如果携带“?” (半角)和参数,则请求到CDN节点时,CDN节点在收到该请求后是否将该带参数的请求URL请求回源站。 使用CDN 您可以查看CDN学习路径,快速了解并上手CDN。 您可以登录CDN控制台,了解并使用了CDN的全部功能。 您还可以使用CDN的API,更灵活地帮助您的业务。 CDN定价 CDN的定价策略:基础服务和 增值服务。其中,基础服务可以按流量或带宽两种方式计算。 更多CDN定价策略,请参考产品价格。 相关服务 CDN子产品 您可以使用全站加速区分动静态资源,并实现动静态资源分别加速。 您可以使用安全加速SCDN兼顾加速与安全两个业务目标。 您可以使用PCDN显著降低分发成本,并应用在视频点播、直播、大文件下载等业务场景。 相关产品 您可以在对象存储OSS中使用CDN加速,提高网站访问速度,有效降低OSS的外网流量费用。 您可以在视频直播中应用CDN,实现媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。 您可以在视频点播中应用CDN,减少缓冲时间,实现高流畅度的播放体验。 您可以借助阿里云云解析提供的强大稳定的解析调度入口,确保顺畅的访问体验。 您可以借助云服务器ECS提高网站可用性,保护服务器源站信息,降低带宽使用成本。 您可以将负载均衡服务器的IP地址设置为回源地址,降低回源带宽压力。

2019-12-01 23:09:50 0 浏览量 回答数 0

回答

背景 通过virtual-kubelet创建ECI实例时,特别是在大规模创建场景下,可能遇到没有库存的情况,所以采用virtual kubelet支持配置多可用区, 多实例规格方案,保证ECI实例创建的成功率。 多规格 使用指南 在创建pod时,用户根据计划使用实例规格的优先级,配置annotation中k8s.aliyun.com/eci-use-specs apiVersion: v1 kind: Pod metadata: name: multi-specs annotations: "k8s.aliyun.com/eci-use-specs": "64-512Gi,2-4Gi,ecs.c6.xlarge,ecigpu-P100-4" 工作原理 virtual-kubelet节点创建ECI实例时,如果遇到库存不足导致创建失败时,根据k8s.aliyun.com/eci-use-specs中配置的顺序依次重试创建ECI。在重试创建过程中,Pod状态一直处于Pending状态。 注:多规格设置是Pod级别,仅影响单个Pod创建策略。 多可用区 使用指南 多可用区就是给virtual-kubelet节点配置多个不同可用区的vswitch,但是多个vswitch必须属于同一个VPC;首先,在同VPC下,不同可用区,创建vswitch或者使用已有vswitch,获取vswitch ID列表。 阿里云 serverless kubernetes集群 阿里云 serverless kubernetes集群,简称:ASK 新建ASK支持多可用区 在创建ASK集群时,可以选择使用已有专有网络,配置多个虚拟交换机,方式如下: create_ask_support_multi_zone 存量ASK支持多可用区 ASK集群,由管理员负责统一维护,需要联系ASK管理员,将准备好的虚拟交换机ID,提供给ASK管理员。 其它集群 virtual-kubelet是采用Deployment方式部署,为支持多可用区,需要设置Deployment的环境变量ECI_VSWITCH的value,设置方式区分kubernetes集群类型其它类型的kubernetes集群,需要用户自己更新Deployment实现支持多可用区,修改方式如下: 1.编辑deployment,追加VSwitchID到ECI_VSWITCH环境变量,采用逗号分隔 通常情况deployment部署在kube-system命名空间,名字:ack-virtual-node-controller,用户自定义集群有可能存在差异。 $ kubectl -n kube-system edit deployment/ack-virtual-node-controller 修改ECI_VSWITCH,追加vswitch name: ECI_VSWITCH value: "vsw-bp1xpiowfm5vo8o3c3fny,vsw-bp1rkyjgr1xwoho6ko3zp" 2.修改完成后,保存退出,配置多可用区完成。 工作原理 VK会根据pod的UUID做固定的运算,把创建pod的请求分散到所有的vSwitch中, 做到分散压力的效果。 如果创建pod请求在一个vSwitch中遇到没有库存的情况, 就会切换一个vSwitch继续尝试创建 注:多可用区是Virtual-Kubelet级别,影响节点上的所有Pod创建。

1934890530796658 2020-03-20 17:46:13 0 浏览量 回答数 0

回答

简介 本文主要介绍把 ECI 通过虚拟节点(virtual node)方式接入到您的阿里云 Kubernetes 集群,ECI 与 Kubernetes 的Pod 为一一对应的关系。有了虚拟节点,当您的 Kubernetes 集群需要扩容时,无需规划node节点计算容量,直接使用虚拟节点动态创建ECI实例,ECI实例与您集群中的真实节点上的Pod网络互联互通。虚拟节点的工作原理参考 virtual-kubelet 。此外,虚拟节点以Pod为单位按需收费,收费规则参考 ECI计费ack-vn-scenario 前置准备 登录阿里云容器服务 Kubernetes 控制台 查看您的集群。如果您还没有集群,参考创建 Kubernetes 集群 安装 ack-virtual-node 插件 配置虚拟节点(可选) 1. 在控制台配置虚拟节点 登录容器服务 Kubernetes 控制台,依次选择 『节点』—>『集群』,确认虚拟节点已经部署完成 ack1 登录容器服务 Kubernetes 控制台,依次点击 『市场』 —>『应用目录』 —> 『Helm 发布列表』 ack2 选择需要编辑的虚拟节点,点击『更新』 ack3 更改配置,本章节主要介绍配置多可用区和Pod quota, 其余配置参考 部署virtual-kubelet 配置多可用区:编辑env下的 ECI_VSWITCH ,配置多可用区交换机ID(交换机ID与可用区为一一对应关系,您可以访问 专有网络控制台 查询您的交换机信息),注意VSwitch要属于同一个VPC下,编辑完成后点击 『更新』,配置完成之后,新创建的Pod将会随机调度到多可用区,如果某个可用区出现库存不足,虚拟节点将会为您往其他可用区调度。ack5 配置虚拟节点Pod quota,以下是相关参数说明,由于virtual-kubelet会以Pod形态部署在您集群的真实节点,如果Pod数量超过1000,virtual-kubelet负载较大,建议把virtual-kubelet所在真实节点的配置升级到8c16g以上。参考 升级ECS配置 参数 参数说明 ECI_VSWITCH 虚拟节点交换机配置 ECI_QUOTA_POD 虚拟节点可弹出的Pod上限,默认值1000个 ECI_QUOTA_CPU 虚拟节点可以弹出的CPU总核数,默认值64000 ECI_QUOTA_MEMORY 虚拟节点可以弹出的Memory总数,默认值64Ti 在集群中配置虚拟节点 通过以下命令获取虚拟节点的运行状况,注意这里需要指定命名空间为 kube-system kubectl get deploy -n kube-system 下图中的 ack-virtaul-node-controller 就是虚拟节点 ack6 通过以下命令编辑虚拟节点的配置信息,注意这里需要指定命名空间为 kube-system kubectl edit deploy ack-virtual-node-controller -n kube-system --record 将Pod创建调度到虚拟节点上 请参考 在虚拟节点上创建Pod 真实节点资源不够自动调度到虚拟节点 当您的真实节点cpu、mem资源不够时,您可以使用 virtual-kubelet-autoscaler 插件将Pod创建调度到虚拟节点,无需再预先分配node资源,具体方式参考 通过 virtual-kubelet-autoscaler 将Pod自动调度到虚拟节点

1934890530796658 2020-03-20 18:47:11 0 浏览量 回答数 0

回答

漏洞扫描有以下四种检测技术:   1.基于应用的检测技术。它采用被动的、非破坏性的办法检查应用软件包的设置,发现安全漏洞。   2.基于主机的检测技术。它采用被动的、非破坏性的办法对系统进行检测。通常,它涉及到系统的内核、文件的属性、操作系统的补丁等。这种技术还包括口令解密、把一些简单的口令剔除。因此,这种技术可以非常准确地定位系统的问题,发现系统的漏洞。它的缺点是与平台相关,升级复杂。   3.基于目标的漏洞检测技术。它采用被动的、非破坏性的办法检查系统属性和文件属性,如数据库、注册号等。通过消息文摘算法,对文件的加密数进行检验。这种技术的实现是运行在一个闭环上,不断地处理文件、系统目标、系统目标属性,然后产生检验数,把这些检验数同原来的检验数相比较。一旦发现改变就通知管理员。   4.基于网络的检测技术。它采用积极的、非破坏性的办法来检验系统是否有可能被攻击崩溃。它利用了一系列的脚本模拟对系统进行攻击的行为,然后对结果进行分析。它还针对已知的网络漏洞进行检验。网络检测技术常被用来进行穿透实验和安全审记。这种技术可以发现一系列平台的漏洞,也容易安装。但是,它可能会影响网络的性能。   网络漏洞扫描   在上述四种方式当中,网络漏洞扫描最为适合我们的Web信息系统的风险评估工作,其扫描原理和工作原理为:通过远程检测目标主机TCP/IP不同端口的服务,记录目标的回答。通过这种方法,可以搜集到很多目标主机的各种信息(例如:是否能用匿名登录,是否有可写的FTP目录,是否能用Telnet,httpd是否是用root在运行)。   在获得目标主机TCP/IP端口和其对应的网络访问服务的相关信息后,与网络漏洞扫描系统提供的漏洞库进行匹配,如果满足匹配条件,则视为漏洞存在。此外,通过模拟黑客的进攻手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等,也是扫描模块的实现方法之一。如果模拟攻击成功,则视为漏洞存在。   在匹配原理上,网络漏洞扫描器采用的是基于规则的匹配技术,即根据安全专家对网络系统安全漏洞、黑客攻击案例的分析和系统管理员关于网络系统安全配置的实际经验,形成一套标准的系统漏洞库,然后再在此基础之上构成相应的匹配规则,由程序自动进行系统漏洞扫描的分析工作。   所谓基于规则是基于一套由专家经验事先定义的规则的匹配系统。例如,在对TCP80端口的扫描中,如果发现/cgi-bin/phf/cgi-bin/Count.cgi,根据专家经验以及CGI程序的共享性和标准化,可以推知该WWW服务存在两个CGI漏洞。同时应当说明的是,基于规则的匹配系统有其局限性,因为作为这类系统的基础的推理规则一般都是根据已知的安全漏洞进行安排和策划的,而对网络系统的很多危险的威胁是来自未知的安全漏洞,这一点和PC杀毒很相似。   这种漏洞扫描器是基于浏览器/服务器(B/S)结构。它的工作原理是:当用户通过控制平台发出了扫描命令之后,控制平台即向扫描模块发出相应的扫描请求,扫描模块在接到请求之后立即启动相应的子功能模块,对被扫描主机进行扫描。通过分析被扫描主机返回的信息进行判断,扫描模块将扫描结果返回给控制平台,再由控制平台最终呈现给用户。   另一种结构的扫描器是采用插件程序结构。可以针对某一具体漏洞,编写对应的外部测试脚本。通过调用服务检测插件,检测目标主机TCP/IP不同端口的服务,并将结果保存在信息库中,然后调用相应的插件程序,向远程主机发送构造好的数据,检测结果同样保存于信息库,以给其他的脚本运行提供所需的信息,这样可提高检测效率。如,在针对某FTP服务的攻击中,可以首先查看服务检测插件的返回结果,只有在确认目标主机服务器开启FTP服务时,对应的针对某FTP服务的攻击脚本才能被执行。采用这种插件结构的扫描器,可以让任何人构造自己的攻击测试脚本,而不用去了解太多扫描器的原理。这种扫描器也可以用做模拟黑客攻击的平台。采用这种结构的扫描器具有很强的生命力,如着名的Nessus就是采用这种结构。这种网络漏洞扫描器的结构如图2所示,它是基于客户端/服务器(C/S)结构,其中客户端主要设置服务器端的扫描参数及收集扫描信息。具体扫描工作由服务器来完成。 答案来源于网络

养狐狸的猫 2019-12-02 02:16:47 0 浏览量 回答数 0

问题

SSH 无法远程登录问题的处理思路是什么

boxti 2019-12-01 22:00:30 1833 浏览量 回答数 0

回答

微服务 (MicroServices) 架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点 (technical concerns)?需要哪些基础框架或组件来支持微服务架构?这些框架或组件该如何选型?笔者之前在两家大型互联网公司参与和主导过大型服务化体系和框架建设,同时在这块也投入了很多时间去学习和研究,有一些经验和学习心得,可以和大家一起分享。 服务注册、发现、负载均衡和健康检查和单块 (Monolithic) 架构不同,微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,服务之间通过轻量机制进行通信,这时候必然引入一个服务注册发现问题,也就是说服务提供方要注册通告服务地址,服务的调用方要能发现目标服务,同时服务提供方一般以集群方式提供服务,也就引入了负载均衡和健康检查问题。根据负载均衡 LB 所在位置的不同,目前主要的服务注册、发现和负载均衡方案有三种: 第一种是集中式 LB 方案,如下图 Fig 1,在服务消费者和服务提供者之间有一个独立的 LB,LB 通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy 等实现。LB 上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向 LB 发起请求,由 LB 以某种策略(比如 Round-Robin)做负载均衡后将请求转发到目标服务。LB 一般具备健康检查能力,能自动摘除不健康的服务实例。服务消费方如何发现 LB 呢?通常的做法是通过 DNS,运维人员为服务配置一个 DNS 域名,这个域名指向 LB。 Fig 1, 集中式 LB 方案 集中式 LB 方案实现简单,在 LB 上也容易做集中式的访问控制,这一方案目前还是业界主流。集中式 LB 的主要问题是单点问题,所有服务调用流量都经过 LB,当服务数量和调用量大的时候,LB 容易成为瓶颈,且一旦 LB 发生故障对整个系统的影响是灾难性的。另外,LB 在服务消费方和服务提供方之间增加了一跳 (hop),有一定性能开销。 第二种是进程内 LB 方案,针对集中式 LB 的不足,进程内 LB 方案将 LB 的功能以库的形式集成到服务消费方进程里头,该方案也被称为软负载 (Soft Load Balancing) 或者客户端负载方案,下图 Fig 2 展示了这种方案的工作原理。这一方案需要一个服务注册表 (Service Registry) 配合支持服务自注册和自发现,服务提供方启动时,首先将服务地址注册到服务注册表(同时定期报心跳到服务注册表以表明服务的存活状态,相当于健康检查),服务消费方要访问某个服务时,它通过内置的 LB 组件向服务注册表查询(同时缓存并定期刷新)目标服务地址列表,然后以某种负载均衡策略选择一个目标服务地址,最后向目标服务发起请求。这一方案对服务注册表的可用性 (Availability) 要求很高,一般采用能满足高可用分布式一致的组件(例如 Zookeeper, Consul, Etcd 等)来实现。 Fig 2, 进程内 LB 方案 进程内 LB 方案是一种分布式方案,LB 和服务发现能力被分散到每一个服务消费者的进程内部,同时服务消费方和服务提供方之间是直接调用,没有额外开销,性能比较好。但是,该方案以客户库 (Client Library) 的方式集成到服务调用方进程里头,如果企业内有多种不同的语言栈,就要配合开发多种不同的客户端,有一定的研发和维护成本。另外,一旦客户端跟随服务调用方发布到生产环境中,后续如果要对客户库进行升级,势必要求服务调用方修改代码并重新发布,所以该方案的升级推广有不小的阻力。 进程内 LB 的案例是 Netflix 的开源服务框架,对应的组件分别是:Eureka 服务注册表,Karyon 服务端框架支持服务自注册和健康检查,Ribbon 客户端框架支持服务自发现和软路由。另外,阿里开源的服务框架 Dubbo 也是采用类似机制。 第三种是主机独立 LB 进程方案,该方案是针对第二种方案的不足而提出的一种折中方案,原理和第二种方案基本类似,不同之处是,他将 LB 和服务发现功能从进程内移出来,变成主机上的一个独立进程,主机上的一个或者多个服务要访问目标服务时,他们都通过同一主机上的独立 LB 进程做服务发现和负载均衡,见下图 Fig 3。 Fig 3 主机独立 LB 进程方案 该方案也是一种分布式方案,没有单点问题,一个 LB 进程挂了只影响该主机上的服务调用方,服务调用方和 LB 之间是进程内调用,性能好,同时,该方案还简化了服务调用方,不需要为不同语言开发客户库,LB 的升级不需要服务调用方改代码。该方案的不足是部署较复杂,环节多,出错调试排查问题不方便。 该方案的典型案例是 Airbnb 的 SmartStack 服务发现框架,对应组件分别是:Zookeeper 作为服务注册表,Nerve 独立进程负责服务注册和健康检查,Synapse/HAproxy 独立进程负责服务发现和负载均衡。Google 最新推出的基于容器的 PaaS 平台 Kubernetes,其内部服务发现采用类似的机制。 服务前端路由微服务除了内部相互之间调用和通信之外,最终要以某种方式暴露出去,才能让外界系统(例如客户的浏览器、移动设备等等)访问到,这就涉及服务的前端路由,对应的组件是服务网关 (Service Gateway),见图 Fig 4,网关是连接企业内部和外部系统的一道门,有如下关键作用: 服务反向路由,网关要负责将外部请求反向路由到内部具体的微服务,这样虽然企业内部是复杂的分布式微服务结构,但是外部系统从网关上看到的就像是一个统一的完整服务,网关屏蔽了后台服务的复杂性,同时也屏蔽了后台服务的升级和变化。安全认证和防爬虫,所有外部请求必须经过网关,网关可以集中对访问进行安全控制,比如用户认证和授权,同时还可以分析访问模式实现防爬虫功能,网关是连接企业内外系统的安全之门。限流和容错,在流量高峰期,网关可以限制流量,保护后台系统不被大流量冲垮,在内部系统出现故障时,网关可以集中做容错,保持外部良好的用户体验。监控,网关可以集中监控访问量,调用延迟,错误计数和访问模式,为后端的性能优化或者扩容提供数据支持。日志,网关可以收集所有的访问日志,进入后台系统做进一步分析。 Fig 4, 服务网关 除以上基本能力外,网关还可以实现线上引流,线上压测,线上调试 (Surgical debugging),金丝雀测试 (Canary Testing),数据中心双活 (Active-Active HA) 等高级功能。 网关通常工作在 7 层,有一定的计算逻辑,一般以集群方式部署,前置 LB 进行负载均衡。 开源的网关组件有 Netflix 的 Zuul,特点是动态可热部署的过滤器 (filter) 机制,其它如 HAproxy,Nginx 等都可以扩展作为网关使用。 在介绍过服务注册表和网关等组件之后,我们可以通过一个简化的微服务架构图 (Fig 5) 来更加直观地展示整个微服务体系内的服务注册发现和路由机制,该图假定采用进程内 LB 服务发现和负载均衡机制。在下图 Fig 5 的微服务架构中,服务简化为两层,后端通用服务(也称中间层服务 Middle Tier Service)和前端服务(也称边缘服务 Edge Service,前端服务的作用是对后端服务做必要的聚合和裁剪后暴露给外部不同的设备,如 PC,Pad 或者 Phone)。后端服务启动时会将地址信息注册到服务注册表,前端服务通过查询服务注册表就可以发现然后调用后端服务;前端服务启动时也会将地址信息注册到服务注册表,这样网关通过查询服务注册表就可以将请求路由到目标前端服务,这样整个微服务体系的服务自注册自发现和软路由就通过服务注册表和网关串联起来了。如果以面向对象设计模式的视角来看,网关类似 Proxy 代理或者 Façade 门面模式,而服务注册表和服务自注册自发现类似 IoC 依赖注入模式,微服务可以理解为基于网关代理和注册表 IoC 构建的分布式系统。 Fig 5, 简化的微服务架构图 服务容错当企业微服务化以后,服务之间会有错综复杂的依赖关系,例如,一个前端请求一般会依赖于多个后端服务,技术上称为 1 -> N 扇出 (见图 Fig 6)。在实际生产环境中,服务往往不是百分百可靠,服务可能会出错或者产生延迟,如果一个应用不能对其依赖的故障进行容错和隔离,那么该应用本身就处在被拖垮的风险中。在一个高流量的网站中,某个单一后端一旦发生延迟,可能在数秒内导致所有应用资源 (线程,队列等) 被耗尽,造成所谓的雪崩效应 (Cascading Failure,见图 Fig 7),严重时可致整个网站瘫痪。 Fig 6, 服务依赖 Fig 7, 高峰期单个服务延迟致雪崩效应 经过多年的探索和实践,业界在分布式服务容错一块探索出了一套有效的容错模式和最佳实践,主要包括: Fig 8, 弹性电路保护状态图 电路熔断器模式 (Circuit Breaker Patten), 该模式的原理类似于家里的电路熔断器,如果家里的电路发生短路,熔断器能够主动熔断电路,以避免灾难性损失。在分布式系统中应用电路熔断器模式后,当目标服务慢或者大量超时,调用方能够主动熔断,以防止服务被进一步拖垮;如果情况又好转了,电路又能自动恢复,这就是所谓的弹性容错,系统有自恢复能力。下图 Fig 8 是一个典型的具备弹性恢复能力的电路保护器状态图,正常状态下,电路处于关闭状态 (Closed),如果调用持续出错或者超时,电路被打开进入熔断状态 (Open),后续一段时间内的所有调用都会被拒绝 (Fail Fast),一段时间以后,保护器会尝试进入半熔断状态 (Half-Open),允许少量请求进来尝试,如果调用仍然失败,则回到熔断状态,如果调用成功,则回到电路闭合状态。舱壁隔离模式 (Bulkhead Isolation Pattern),顾名思义,该模式像舱壁一样对资源或失败单元进行隔离,如果一个船舱破了进水,只损失一个船舱,其它船舱可以不受影响 。线程隔离 (Thread Isolation) 就是舱壁隔离模式的一个例子,假定一个应用程序 A 调用了 Svc1/Svc2/Svc3 三个服务,且部署 A 的容器一共有 120 个工作线程,采用线程隔离机制,可以给对 Svc1/Svc2/Svc3 的调用各分配 40 个线程,当 Svc2 慢了,给 Svc2 分配的 40 个线程因慢而阻塞并最终耗尽,线程隔离可以保证给 Svc1/Svc3 分配的 80 个线程可以不受影响,如果没有这种隔离机制,当 Svc2 慢的时候,120 个工作线程会很快全部被对 Svc2 的调用吃光,整个应用程序会全部慢下来。限流 (Rate Limiting/Load Shedder),服务总有容量限制,没有限流机制的服务很容易在突发流量 (秒杀,双十一) 时被冲垮。限流通常指对服务限定并发访问量,比如单位时间只允许 100 个并发调用,对超过这个限制的请求要拒绝并回退。回退 (fallback),在熔断或者限流发生的时候,应用程序的后续处理逻辑是什么?回退是系统的弹性恢复能力,常见的处理策略有,直接抛出异常,也称快速失败 (Fail Fast),也可以返回空值或缺省值,还可以返回备份数据,如果主服务熔断了,可以从备份服务获取数据。Netflix 将上述容错模式和最佳实践集成到一个称为 Hystrix 的开源组件中,凡是需要容错的依赖点 (服务,缓存,数据库访问等),开发人员只需要将调用封装在 Hystrix Command 里头,则相关调用就自动置于 Hystrix 的弹性容错保护之下。Hystrix 组件已经在 Netflix 经过多年运维验证,是 Netflix 微服务平台稳定性和弹性的基石,正逐渐被社区接受为标准容错组件。 服务框架微服务化以后,为了让业务开发人员专注于业务逻辑实现,避免冗余和重复劳动,规范研发提升效率,必然要将一些公共关注点推到框架层面。服务框架 (Fig 9) 主要封装公共关注点逻辑,包括: Fig 9, 服务框架 服务注册、发现、负载均衡和健康检查,假定采用进程内 LB 方案,那么服务自注册一般统一做在服务器端框架中,健康检查逻辑由具体业务服务定制,框架层提供调用健康检查逻辑的机制,服务发现和负载均衡则集成在服务客户端框架中。监控日志,框架一方面要记录重要的框架层日志、metrics 和调用链数据,还要将日志、metrics 等接口暴露出来,让业务层能根据需要记录业务日志数据。在运行环境中,所有日志数据一般集中落地到企业后台日志系统,做进一步分析和处理。REST/RPC 和序列化,框架层要支持将业务逻辑以 HTTP/REST 或者 RPC 方式暴露出来,HTTP/REST 是当前主流 API 暴露方式,在性能要求高的场合则可采用 Binary/RPC 方式。针对当前多样化的设备类型 (浏览器、普通 PC、无线设备等),框架层要支持可定制的序列化机制,例如,对浏览器,框架支持输出 Ajax 友好的 JSON 消息格式,而对无线设备上的 Native App,框架支持输出性能高的 Binary 消息格式。配置,除了支持普通配置文件方式的配置,框架层还可集成动态运行时配置,能够在运行时针对不同环境动态调整服务的参数和配置。限流和容错,框架集成限流容错组件,能够在运行时自动限流和容错,保护服务,如果进一步和动态配置相结合,还可以实现动态限流和熔断。管理接口,框架集成管理接口,一方面可以在线查看框架和服务内部状态,同时还可以动态调整内部状态,对调试、监控和管理能提供快速反馈。Spring Boot 微框架的 Actuator 模块就是一个强大的管理接口。统一错误处理,对于框架层和服务的内部异常,如果框架层能够统一处理并记录日志,对服务监控和快速问题定位有很大帮助。安全,安全和访问控制逻辑可以在框架层统一进行封装,可做成插件形式,具体业务服务根据需要加载相关安全插件。文档自动生成,文档的书写和同步一直是一个痛点,框架层如果能支持文档的自动生成和同步,会给使用 API 的开发和测试人员带来极大便利。Swagger 是一种流行 Restful API 的文档方案。当前业界比较成熟的微服务框架有 Netflix 的 Karyon/Ribbon,Spring 的 Spring Boot/Cloud,阿里的 Dubbo 等。 运行期配置管理服务一般有很多依赖配置,例如访问数据库有连接字符串配置,连接池大小和连接超时配置,这些配置在不同环境 (开发 / 测试 / 生产) 一般不同,比如生产环境需要配连接池,而开发测试环境可能不配,另外有些参数配置在运行期可能还要动态调整,例如,运行时根据流量状况动态调整限流和熔断阀值。目前比较常见的做法是搭建一个运行时配置中心支持微服务的动态配置,简化架构如下图 (Fig 10): Fig 10, 服务配置中心 动态配置存放在集中的配置服务器上,用户通过管理界面配置和调整服务配置,具体服务通过定期拉 (Scheduled Pull) 的方式或者服务器推 (Server-side Push) 的方式更新动态配置,拉方式比较可靠,但会有延迟同时有无效网络开销 (假设配置不常更新),服务器推方式能及时更新配置,但是实现较复杂,一般在服务和配置服务器之间要建立长连接。配置中心还要解决配置的版本控制和审计问题,对于大规模服务化环境,配置中心还要考虑分布式和高可用问题。 配置中心比较成熟的开源方案有百度的 Disconf,360 的 QConf,Spring 的 Cloud Config 和阿里的 Diamond 等。 Netflix 的微服务框架Netflix 是一家成功实践微服务架构的互联网公司,几年前,Netflix 就把它的几乎整个微服务框架栈开源贡献给了社区,这些框架和组件包括: Eureka: 服务注册发现框架Zuul: 服务网关Karyon: 服务端框架Ribbon: 客户端框架Hystrix: 服务容错组件Archaius: 服务配置组件Servo: Metrics 组件Blitz4j: 日志组件下图 Fig 11 展示了基于这些组件构建的一个微服务框架体系,来自 recipes-rss。 Fig 11, 基于 Netflix 开源组件的微服务框架 Netflix 的开源框架组件已经在 Netflix 的大规模分布式微服务环境中经过多年的生产实战验证,正逐步被社区接受为构造微服务框架的标准组件。Pivotal 去年推出的 Spring Cloud 开源产品,主要是基于对 Netflix 开源组件的进一步封装,方便 Spring 开发人员构建微服务基础框架。对于一些打算构建微服务框架体系的公司来说,充分利用或参考借鉴 Netflix 的开源微服务组件 (或 Spring Cloud),在此基础上进行必要的企业定制,无疑是通向微服务架构的捷径。 原文地址:https://www.infoq.cn/article/basis-frameworkto-implement-micro-service#anch130564%20%EF%BC%8C

auto_answer 2019-12-02 01:55:22 0 浏览量 回答数 0

问题

dubbo 的工作原理?注册中心挂了的问题?说说一次 rpc 请求的流程?【Java问答】47期

剑曼红尘 2020-06-30 09:02:47 8 浏览量 回答数 1

问题

【教程免费下载】 VMware vSphere性能设计:性能密集场景下CPU、内存

沉默术士 2019-12-01 22:07:47 1680 浏览量 回答数 1

回答

关于SLB的技术实现原理,楼主可以参考这篇Blog的相关说明: http://blog.aliyun.com/149 简单来讲就是SLB系统也是一个由多台计算机构成的集群。用户在这个系统中申请和配置了一个SLB的实例对外提供服务,针对该SLB实例的访问请求会通过我们的系统按照用户设定的规则向后端的多台ECS进行转发。那么当我们系统内的某一台计算机出现问题的时候,其他的计算机可以承担本应由其处理的任务而保证整个集群和服务的可用性。如果你为自己的SLB实例正确的开启了健康检查功能,那么当你SLB实例后端的某一台ECS出现问题的时候,其他的ECS也会承担其工作来保证你对外服务的可用性。 ------------------------- 回 11楼(xiaoyuantv) 的帖子 目前,有很多类似的工具可以实现服务器之间的数据同步,比如:rsync。具体使用及选择,还请通过其他途径获得更多的介绍资料及指导信息。 您也可以将您的ECS配置成无状态的应用服务器,而数据和文件统一存放在RDS和OSS服务上。 ------------------------- 我了解应该是不可以的。但是你可以把这个问题针对性的发在ECS的讨论专区内获得更专业的解答,谢谢:) ------------------------- 回 17楼(xiangys0134) 的帖子 SLB所能起到的作用与你描述的这种情况类似,就是将外部的访问请求通过SLB系统均衡的转发到后端的多台服务器上从而达到负载均衡的作用。而4、7层指的是osi网络7层模型中的概念,具体到网络协议SLB支持的是4层的TCP协议和HTTP协议,具体采用何种协议主要是看你的应用运行于哪一层,一般的WEB应用都是运行在7层HTTP协议下的。 关于SLB的技术实现原理,可以参考: http://blog.aliyun.com/149

billlee 2019-12-01 23:42:06 0 浏览量 回答数 0

回答

前言 这篇文章适合所有的 C# 开发新手、老鸟以及想准备学习开发 C# 的程序猿。.NET Core是一个开源通用的开发框架,支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runtime, 使用 C# 编写 serverless 函数, 详情见官方文档:C# 函数入口. 在官方文档描述中,我们获知阿里云函数计算可以很好支持 asp.net core 的 Applicaiton: ASP.NET Core Web API ASP.NET Core Web App ASP.NET Core Web App (Model-View-Controller) 在介绍 Serverless Web 开发新模式之前,我们先了解下将 C# WebApi/WebApp Serverless 化的好处: 无需采购和管理服务器等基础设施 弹性伸缩,动态扩容 免运维, 极大降低人力成本 按需付费,财务成本低 本文以部署一个完善的 asp.net core 工程 Blogifier 为例,在函数计算环境中为例,向您讲解如何使用阿里云函数计算快速构建或移植基于 asp.net core 开发的 WebApi/WebApp ,通过本文,您将会了解以下内容: 案例概览 传统服务器架构 VS Serverless架构 Serverless架构详解 函数计算运行 Asp.net core App 原理 案例开发配置步骤 案例概览 在本教程中,我们讲解如何利用函数计算一步一步来构建 Web 的 Server 端,该案例是把一个 asp.net core 工程Blogifier 部署到函数计算,本文旨在展示函数计算做 Web Backend 能力,具体表现为以下几点: 完善的 ASP.NET Core Web 系统迁移到 FC 的成本不高 FC 打通了专有网络 VPC 功能,用户的函数可以配置访问专有网络的云资源,比如本案例中 NAS 案例体验入口: http://dotnet.mofangdegisn.cn/ https://dotnet.mofangdegisn.cn/ 传统服务器架构 VS Serverless架构 正常来说,用户开发 Server 端服务,常常面临开发效率,运维成本高,机器资源弹性伸缩等痛点,而使用 Serverless 架构可以很好的解决上述问题。下面是传统架构和 Serverless 架构的对比: image 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询,性能监控,报警等功能。借助于函数计算,您可以快速构建任何类型的应用和服务,无需管理和运维。 Serverless 架构详解 image.png 从上面的示例图中,整体架构十分简单明了, 用 FC 替代了 Web 服务器,但是换来的是免运维,弹性扩容,按需付费等一系列优点 函数计算运行 Asp.net Core App 原理 Asp.net Core App 运行在服务器上 image A http request to your website will go through IIS/Nginx, then Kestrel, and finally will be passed on to ASP.NET Core Asp.net Core App 运行在函数计算上 image 请求通过函数(with http trigger), 最后到达ASP.NET Core tips: 基于函数计算环境运行新建 asp.net core app 可以参考dotnet runtime HTTP 触发器的函数入口示例 在本文中,我们展示把一个现有的成熟的 asp.net core 工程低成本无缝迁移到函数计算环境。 案例开发配置步骤 准备工作 1. 创建 NAS 挂接点,配置 VPC , 具体参考函数计算nas使用示例 注:在本示例中使用 sqlite3 数据库,这种文件类型的数据库直接放置在 nas 即可,如果使用 mysql 等其他数据库, 需要创建 RDS 数据库, 配置 VPC , 具体参考通过 VPC 访问 RDS 实例 可选操作,在准备函数的 region 创建日志,用于函数的调试, 具体参考函数计算配置日志服务 创建函数 创建 Service (假设是 csharp-web), 配置准备 vpc config , nas config 和日志服务,比如案例体验的 Service 配置如下图: image 下载 asp.net core 工程,Blogifier, 用 vs 打开, debug 本地可以正常运行。 注:本地安装 dotnetcore2.1 在工程中增加入口函数,使得该工程可在函数计算执行环境运行,diff dotnet publish -c Release, 跳转到publish目录, 将相关的静态资源/可写/共享目录移动到上述配置的 NAS 的某个目录(这里假设是 www目录, 对应步骤2中的diff) dotnet publish -c Release cp -r plugins/Common/bin/Release/netcoreapp2.1/publish/* src/App/bin/Release/netcoreapp2.1/publish/ src/App/bin/Release/netcoreapp2.1/publish/ mkdir lib // 选择函数计算执行环境所需要的so, 其他的删除即可 cp runtimes/linux-x64/native/libe_sqlite3.so ./lib // 这里是传送对应的静态文件和 app.db 到 nas 中, 详情看下面的描述 rm -rf wwwroot app.db runtimes zip -r code.zip * // 最后使用这个 code.zip 创建 handler 为 App::App.FcRemoteEntrypoint::HandleRequest 函数 将 publish 目录下的 wwwroot 和 app.db 传送到 nas 的 www 目录, 可以使用 ecs 挂载 nas 传输过去, 也可以采用如下简单函数传输过去 |-- index.py |-- www 注: www目录下面有 wwwroot 和 app.db index.py代码: -- coding: utf-8 -- import logging import os def handler(event, context): os.system("mkdir -p /mnt/share/www") os.system("cp -r /code/www/* /mnt/share/www/") os.system("chmod -R 777 /mnt/share/www") print( os.system("ls -ll /mnt/share/www") ) return 'ok' 基于上述代码创一个函数 move-res-nas , 执行函数,将相关静态和共享资源移动到 NAS 的/mnt/share/www/ 目录。 注:最新版本的 Fun 工具已经支持 NAS 相关操作, 有兴趣的同学可以使用 Fun 完成 NAS, VPC 的自动生成、配置以及网站工程文件上传到 NAS 创建入口函数 blog (使用上一步骤中的 code.zip ), 给函数设置 http trigger ,类型为 anonymous , 类型都选上。给函数入口配置自定义域名(操作过程请参考:绑定自定义域名示例), 具体配置假设如下: image 注意: 绑定自定义域名之后,不用使用控制台来进行调试,就只能使用浏览器来触发函数,日志服务来进行调试。 总结 函数计算有如下优势: 无需采购和管理服务器等基础设施 专注业务逻辑的开发 提供日志查询、性能监控、报警等功能快速排查故障 以事件驱动的方式触发应用响应用户请求 毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力 按需付费。只需为实际使用的计算资源付费,适合有明显波峰波谷的用户访问场景 除了上面所列的优势,FC 可以做为 Web Backend,只需要编写一个函数实现传统 Web 服务器中的 conf 中的逻辑,就可以将一个完整的 Web 工程迁移到 FC ,从而从传统的 Web 网站运维,监控等繁琐的事务中解放出来。

1934890530796658 2020-03-27 17:30:59 0 浏览量 回答数 0

回答

Java架构师,首先要是一个高级java攻城狮,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池……    Java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术;nio,没什么好说的,值得注意的是”直接内存”的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效的解决问题,比如hashmap的实现原理,好多五年以上经验的人都弄不清楚,还有为什扩容时有性能问题?不弄清楚这些原理,就写不出高效的代码,还会认为自己做的很对;总之一句话越基础的东西越重要,很多人认为自己会用它们写代码了,其实仅仅是知道如何调用api而已,离会用还差的远。    熟练使用各种数据结构和算法,数组、哈希、链表、排序树…,一句话要么是时间换空间要么是空间换时间,这里展开可以说一大堆,需要有一定的应用经验,用于解决各种性能或业务上的问题。    熟练使用linux操作系统,必备,没什么好说的 。    熟悉tcp协议,创建连接三次握手和断开连接四次握手的整个过程,不了解的话,无法对高并发网络应用做优化; 熟悉http协议,尤其是http头,我发现好多工作五年以上的都弄不清session和cookie的生命周期以及它们之间的关联。    系统集群、负载均衡、反向代理、动静分离,网站静态化 。    分布式存储系统nfs,fastdfs,tfs,Hadoop了解他们的优缺点,适用场景 。    分布式缓存技术memcached,redis,提高系统性能必备,一句话,把硬盘上的内容放到内存里来提速,顺便提个算法一致性hash 。    工具nginx必备技能超级好用,高性能,基本不会挂掉的服务器,功能多多,解决各种问题。    数据库的设计能力,mysql必备,最基础的数据库工具,免费好用,对它基本的参数优化,慢查询日志分析,主从复制的配置,至少要成为半个mysql dba。其他nosql数据库如mongodb。    还有队列中间件。如消息推送,可以先把消息写入数据库,推送放队列服务器上,由推送服务器去队列获取处理,这样就可以将消息放数据库和队列里后直接给用户反馈,推送过程则由推送服务器和队列服务器完成,好处异步处理、缓解服务器压力,解藕系统。   以上纯粹是常用的技术,还有很多自己慢慢去摸索吧;因为要知道的东西很多,所以要成为一名合格的架构师,必须要有强大的自学能力,没有人会手把手的教给你所有的东西。    想成为架构师不是懂了一大堆技术就可以了,这些是解决问题的基础、是工具,不懂这些怎么去提解决方案呢?这是成为架构师的必要条件。    架构师要针对业务特点、系统的性能要求提出能解决问题成本最低的设计方案才合格,人家一个几百人用户的系统,访问量不大,数据量小,你给人家上集群、上分布式存储、上高端服务器,为了架构而架构,这是最扯淡的,架构师的作用就是第一满足业务需求,第二最低的硬件网络成本和技术维护成本。    架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,并且设计当前架构时将架构的升级扩展考虑进去,做到易于升级;否则等系统瓶颈来了,出问题了再去出方案,或现有架构无法扩展直接扔掉重做,或扩展麻烦问题一大堆,这会对企业造成损失。Java架构师学习路线图如:https://yq.aliyun.com/articles/225941?spm=5176.8091938.0.0.qyp0tC

zwt9000 2019-12-02 00:25:32 0 浏览量 回答数 0

问题

优势与挑战并存着,网络虚拟化的6大要点

hamtyb 2019-12-01 20:27:33 9831 浏览量 回答数 0

问题

HBase最佳实践-读性能优化策略

pandacats 2019-12-20 21:02:08 0 浏览量 回答数 0

问题

Nginx性能为什么如此吊

小柒2012 2019-12-01 21:20:47 15038 浏览量 回答数 3

问题

dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?【Java问答学堂】49期

剑曼红尘 2020-07-02 17:35:03 17 浏览量 回答数 1

问题

常见问题:监控与自动化部署问题

青蛙跳 2019-12-01 21:32:17 620 浏览量 回答数 0

问题

Swarm mode 集群中服务发现和负载均衡的集群内服务间路由和负载均衡

反向一觉 2019-12-01 21:22:37 1995 浏览量 回答数 0

回答

一 容器 在学习k8s前,首先要了解和学习容器概念和工作原理。 什么是容器? 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。 容器的优势 容器使软件具备了超强的可移植能力。 对于开发人员 – Build Once, Run Anywhere 容器意味着环境隔离和可重复性。开发人员只需为应用创建一次运行环境,然后打包成容器便可在其他机器上运行。另外,容器环境与所在的 Host 环境是隔离的,就像虚拟机一样,但更快更简单。 对于运维人员 – Configure Once, Run Anything 只需要配置好标准的 runtime 环境,服务器就可以运行任何容器。这使得运维人员的工作变得更高效,一致和可重复。容器消除了开发、测试、生产环境的不一致性。 Docker概念 “Docker” 一词指代了多个概念,包括开源社区项目、开源项目使用的工具、主导支持此类项目的公司 Docker Inc. 以及该公司官方支持的工具。技术产品和公司使用同一名称,的确让人有点困惑。 我们来简单说明一下: IT 软件中所说的 “Docker” ,是指容器化技术,用于支持创建和使用容器。 开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。 Docker Inc. 公司凭借 Docker 社区产品起家,它主要负责提升社区版本的安全性,并将技术进步与广大技术社区分享。此外,它还专门对这些技术产品进行完善和安全固化,以服务于企业客户。 借助 Docker,您可将容器当做轻巧、模块化的虚拟机使用。同时,您还将获得高度的灵活性,从而实现对容器的高效创建、部署及复制,并能将其从一个环境顺利迁移至另一个环境,从而有助于您针对云来优化您的应用。 Docker有三大核心概念: 镜像(Image)是一个特殊的文件系统,提供容器运行时所需的程序、库、配置等,构建后不会改变 容器(Container)实质是进程,拥有自己独立的命名空间。 仓库(Repository)一个仓库可以包含多个标签(Tag),每个标签对应一个镜像 容器工作原理 Docker 技术使用 Linux 内核和内核功能(例如 Cgroups 和 namespaces)来分隔进程,以便各进程相互独立运行。这种独立性正是采用容器的目的所在;它可以独立运行多种进程、多个应用,更加充分地发挥基础设施的作用,同时保持各个独立系统的安全性。 二 Kubernetes入门知识指南 Kubernets的知识都可以在官方文档查询,网址如下: https://kubernetes.io/zh/docs/home/ Kubernetes基础知识 Kubernetes是什么? Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 为什么需要 Kubernetes 容器是打包和运行应用程序的好方式。在生产环境中,您需要管理运行应用程序的容器,并确保不会停机。例如,如果一个容器发生故障,则需要启动另一个容器。如果由操作系统处理此行为,会不会更容易? Kubernetes 为您提供: 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果到容器的流量很大,Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。 存储编排 Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。 自动部署和回滚 您可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为所需状态。例如,您可以自动化 Kubernetes 来为您的部署创建新容器,删除现有容器并将它们的所有资源用于新容器。 自动二进制打包 Kubernetes 允许您指定每个容器所需 CPU 和内存(RAM)。当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。 自我修复 Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。 密钥与配置管理 Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。您可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。 Kubernetes 组件 初学者首先要了解Kubernetes的基本概念,包括master、node、pod等。 Master Master是Kubernetes集群的大脑,运行着的守护进程服务包括kube-apiserver、kube-scheduler、kube-controller-manager、etcd和Pod网络等。 kube-apiserver 主节点上负责提供 Kubernetes API 服务的组件;它是 Kubernetes 控制面的前端。 kube-apiserver 在设计上考虑了水平扩缩的需要。 换言之,通过部署多个实例可以实现扩缩。 etcd etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。 您的 Kubernetes 集群的 etcd 数据库通常需要有个备份计划。 kube-scheduler 主节点上的组件,该组件监视那些新创建的未指定运行节点的 Pod,并选择节点让 Pod 在上面运行。 调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。 kube-controller-manager 在主节点上运行控制器的组件。 从逻辑上讲,每个控制器都是一个单独的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。 这些控制器包括: 节点控制器(Node Controller): 负责在节点出现故障时进行通知和响应。 副本控制器(Replication Controller): 负责为系统中的每个副本控制器对象维护正确数量的 Pod。 端点控制器(Endpoints Controller): 填充端点(Endpoints)对象(即加入 Service 与 Pod)。 服务帐户和令牌控制器(Service Account & Token Controllers): 为新的命名空间创建默认帐户和 API 访问令牌. 云控制器管理器-(cloud-controller-manager) cloud-controller-manager 运行与基础云提供商交互的控制器 cloud-controller-manager 仅运行云提供商特定的控制器循环。您必须在 kube-controller-manager 中禁用这些控制器循环,您可以通过在启动 kube-controller-manager 时将 --cloud-provider 参数设置为 external 来禁用控制器循环。 cloud-controller-manager 允许云供应商的代码和 Kubernetes 代码彼此独立地发展。在以前的版本中,核心的 Kubernetes 代码依赖于特定云提供商的代码来实现功能。在将来的版本中,云供应商专有的代码应由云供应商自己维护,并与运行 Kubernetes 的云控制器管理器相关联。 以下控制器具有云提供商依赖性: 节点控制器(Node Controller): 用于检查云提供商以确定节点是否在云中停止响应后被删除 路由控制器(Route Controller): 用于在底层云基础架构中设置路由 服务控制器(Service Controller): 用于创建、更新和删除云提供商负载均衡器 数据卷控制器(Volume Controller): 用于创建、附加和装载卷、并与云提供商进行交互以编排卷 Node 节点组件在每个节点上运行,维护运行 Pod 并提供 Kubernetes 运行环境。 kubelet 一个在集群中每个节点上运行的代理。它保证容器都运行在 Pod 中。 kubelet 接收一组通过各类机制提供给它的 PodSpecs,确保这些 PodSpecs 中描述的容器处于运行状态且健康。kubelet 不会管理不是由 Kubernetes 创建的容器。 kube-proxy kube-proxy 是集群中每个节点上运行的网络代理,实现 Kubernetes Service 概念的一部分。 kube-proxy 维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与 Pod 进行网络通信。 如果有 kube-proxy 可用,它将使用操作系统数据包过滤层。否则,kube-proxy 会转发流量本身。 容器运行环境(Container Runtime) 容器运行环境是负责运行容器的软件。 Kubernetes 支持多个容器运行环境: Docker、 containerd、cri-o、 rktlet 以及任何实现 Kubernetes CRI (容器运行环境接口)。 Pod 在Kubernetes中,最小的管理元素不是一个个独立的容器,而是Pod。Pod是管理,创建,计划的最小单元. 一个Pod相当于一个共享context的配置组,在同一个context下,应用可能还会有独立的cgroup隔离机制,一个Pod是一个容器环境下的“逻辑主机”,它可能包含一个或者多个紧密相连的应用,这些应用可能是在同一个物理主机或虚拟机上。 Pod 的context可以理解成多个linux命名空间的联合 PID 命名空间(同一个Pod中应用可以看到其它进程) 网络 命名空间(同一个Pod的中的应用对相同的IP地址和端口有权限) IPC 命名空间(同一个Pod中的应用可以通过VPC或者POSIX进行通信) UTS 命名空间(同一个Pod中的应用共享一个主机名称) 同一个Pod中的应用可以共享磁盘,磁盘是Pod级的,应用可以通过文件系统调用。 由于docker的架构,一个Pod是由多个相关的并且共享磁盘的容器组成,Pid的命名空间共享还没有应用到Docker中 和相互独立的容器一样,Pod是一种相对短暂的存在,而不是持久存在的,正如我们在Pod的生命周期中提到的,Pod被安排到结点上,并且保持在这个节点上直到被终止(根据重启的设定)或者被删除,当一个节点死掉之后,上面的所有Pod均会被删除。特殊的Pod永远不会被转移到的其他的节点,作为替代,他们必须被replace. 三 通过kubeadm方式创建一个kubernetes 对kubernetes的概念和组件有所了解以后,就可以通过kubeadm的方式创建一个kubernetes集群。 安装前准备工作 创建虚拟机 创建至少2台虚拟机,可以在本地或者公有云。 下载部署软件 需要下载的软件包括calico、demo-images、docker-ce、kube、kube-images、kubectl、metrics-server 安装部署 具体安装过程参考官网文档: https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm/ 四 安装后的练习 安装后详读官方文档,做下面这些组件的练习操作,要达到非常熟练的程度。 Node Namespace Pod Deployment DaemonSet Service Job Static Pod ConfigMap Secrets Volume Init-containers Affinity and Anti-Affinity Monitor and logs Taints and Tolerations Cordon and Drain Backing up etcd 这些内容都非常熟练以后,基本就达到了入门的水平。

红亮 2020-03-02 11:09:17 0 浏览量 回答数 0

问题

【教程免费下载】 Spark大数据分析实战

沉默术士 2019-12-01 22:07:51 1453 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 阿里云双十一主会场 阿里云双十一新人会场 1024程序员加油包 阿里云双十一拼团会场 场景化解决方案 阿里云双十一直播大厅