• 关于

    1 1保护如何搭建

    的搜索结果

回答

最佳回答:如何要问学生机能干嘛?其实学生机就是学生云服务器,也就是说,它可以干云服务器能干的所有事情。 **云服务器的用途和作用 ** - 首先如果是境外的主机,可以用来搭建不存在的东西。教程网上很多很多,这里就不赘述了。 搭建个人静态或者动态网站:对于大部分境内的性能较弱的主机,比较多的一个最初目的是搭建个人博客。我主要是借助流行的建站系统 wordpress来搭建个人网站。学习Linux相关知识局域网内网穿透:配置ngrok或者frp,实现内网穿透,访问自己没有公网ip的机器。常用的服务有windows的远程桌面,本地搭建的Web服务调试,原本用于局域网的文件系统提供给公网访问(当然可以加密访问了)。着重提下内网穿透,如果家里有NAS或者树莓派的化,可以用这个内网穿透实现很多智能化、现代化的功能。程序爬虫。主要用Python来编写爬虫程序。服务端接口开发:写APP的服务端,给自用的APP提供网络服务。我用来同步课程表和课程任务。和上面差不多,为Chrome或火狐的插件或者油猴脚本提供服务,可以极大地提升电脑的使用体验。做个人网盘:如果云服务器的硬盘容量够大,可以做个人网盘。不过鉴于低配云服务器的硬盘容量,建议使用第4点提到的内网穿透连接家立的NAS或者不常关机的电脑。做备份。手机的云空间不够用?可以尝试下自己搭建。服务器里跑的任务比较多的时候,对外暴露的端口较多,可以试下捣鼓nginx。这是一个反向代理服务器,默认监听80端口。此后,可以将nginx收到的请求转发到其他主机或者本机的其他端口上。从而可以在安全策略上关闭其他端口,提高安全性。同样是nginx,为重要的服务器提供反向代理,从而保护被代理的服务器。比如自家搭建的404桥梁。想到再补充。详细的内容如果需要的人多再详细介绍。 如果你是大学生,就选阿里云学生服务器; 阿里云学生服务器,俗称:“学生机” 故名思意,就是阿里云针对学生群体施行的特殊优惠政策。如果不是学生身份购买同等配置的1核2g内存1m宽带40GB硬盘(不限制CPU性能的),官网需要五六百一年。然后阿里云针对学生群体的学生服务器,只需要114元1年,我见到很多像我一样的大学生,甚至高中生,都在业余时间搭建了自己的私人博客,有些流量还不错。我觉得,1年的学生云服务器使用时间让我对云服务器,建网站有了更深的了解。而且我还是计算机专业的,可以用来搭建web程序,用来编程,学生服务器真是我接触云知识的入门之选。性价比也很高,毕竟学生可没有什么钱。 1:域名+学生服务器+开源建站程序(例如WordPress)=自己拥有自己的个人博客或个人网站 2:域名+学生服务器+web程序(例如Java web系统)=自己的系统演示站 成长在于你去学习新知识,敢于接触你认为陌生的领域。下面是阿里云学生的官网地址 阿里云学生机1核2G1年114元【推荐选1年】----官网地址 阿里云最新优惠产品系列汇总----官网地址

夏梦枯荣 2020-05-18 17:54:35 0 浏览量 回答数 0

问题

弹性伸缩

黄一刀 2020-04-04 02:13:52 91 浏览量 回答数 1

问题

GXIC选手福利:近期培训直播安排

阿里云AIoT 2019-12-01 21:13:21 1675 浏览量 回答数 0

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

问题

ECS实例管理FAQ

boxti 2019-12-01 21:48:18 1514 浏览量 回答数 0

回答

本文介绍如何基于 Spring Cloud Gateway 和 Spring Cloud Netflix Zuul 使用 Nacos 搭建应用的服务网关。 为什么使用 SAE 服务注册中心 SAE 服务注册中心提供了开源 Nacos Server 的商用版本,使用开源版本 Spring Cloud Alibaba Nacos Discovery 开发的应用可以直接使用 SAE 提供的商业版服务注册中心。 SAE 服务注册中心与 Nacos、Eureka 和 Consul 相比,具有以下优势: 共享组件,节省了部署、运维 Nacos、Eureka 或 Consul 的成本。 在服务注册和发现的调用中都进行了链路加密,保护您的服务,无需再担心服务被未授权的应用发现。 SAE服务注册中心与 AE其他组件紧密结合,为您提供一整套的微服务解决方案,包括环境隔离、灰度发布等。 您在 SAE 部署应用时,SAE服务注册中心以高优先级自动设置Nacos Server服务端地址和服务端口,以及 namespace、access-key、secret-key、context-path 等信息,无需进行任何额外的配置。 基于 Spring Cloud Gateway 搭建服务网关 介绍如何使用 Nacos 基于 Spring Cloud Gateway 从零搭建应用的服务网关。 创建服务网关。 创建命名为spring-cloud-gateway-nacos 的Maven 工程。 在pom.xml文件中添加 Spring Boot 和 Spring Cloud 的依赖。 以 Spring Boot 2.1.4.RELEASE 和 Spring Cloud Greenwich.SR1 版本为例。 org.springframework.boot spring-boot-starter-parent 2.1.4.RELEASE org.springframework.cloud spring-cloud-starter-gateway com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 2.1.1.RELEASE org.springframework.cloud spring-cloud-dependencies Greenwich.SR1 pom import org.springframework.boot spring-boot-maven-plugin 开发服务网关启动类GatewayApplication。 @SpringBootApplication @EnableDiscoveryClient public class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class, args); } } 在application.yaml中添加如下配置,将注册中心指定为 Nacos Server 的地址。 其中127.0.0.1:8848为 Nacos Server 的地址。如果您的 Nacos Server 部署在另外一台机器,则需要修改成对应的地址。 其中 routes 配置了 Gateway 的路由转发策略,这里我们配置将所有前缀为/provider1/的请求都路由到服务名为service-provider的后端服务中。 server: port: 15012 spring: application: name: spring-cloud-gateway-nacos cloud: gateway: # config the routes for gateway routes: - id: service-provider # 将 /provider1/ 开头的请求转发到 provider1 uri: lb://service-provider predicates: - Path=/provider1/** filters: - StripPrefix=1 # 表明前缀 /provider1 需要截取掉 nacos: discovery: server-addr: 127.0.0.1:8848 执行启动类GatewayApplication中的 main 函数,启动 Gateway。 登录本地启动的 Nacos Server 控制台 http://127.0.0.1:8848/nacos (本地 Nacos 控制台的默认用户名和密码同为 nacos),在左侧导航栏中选择服务管理 > 服务列表,可以看到服务列表中已经包含了 spring-cloud-gateway-nacos,且在详情中可以查询该服务的详情。表明网关已经启动并注册成功,接下来我们将通过创建一个下游服务来验证网关的请求转发功能。 创建服务提供者。 创建一个服务提供者的应用,详情请参见将Spring Cloud应用托管到SAE。 服务提供者示例: @SpringBootApplication @EnableDiscoveryClient public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication, args); } @RestController public class EchoController { @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET) public String echo(@PathVariable String string) { return string; } } } 结果验证。 本地验证。 本地启动开发好的服务网关和服务提供者,通过访问 Spring Cloud Gateway 将请求转发给后端服务,可以看到调用成功的结果。 EDAS SpringCloud应用开发之搭建服务网管 在 SAE 中验证。 SAE 服务注册中心提供了正式商用版本 Nacos Server。当您将应用部署到 SAE 的时候,SAE 会通过优先级更高的方式去设置 Nacos Server 服务端地址和服务端口,以及 namespace、access-key、secret-key、context-path 信息。您无需进行任何额外的配置,原有的配置内容可以选择保留或删除。 基于 Zuul 搭建服务网关 介绍如何基于 Zuul 使用 Nacos 作为服务注册中心从零搭建应用的服务网关。 创建服务网关。 创建命名为spring-cloud-zuul-nacos的 Maven 工程。 在pom.xml文件中添加 Spring Boot、Spring Cloud 和 Spring Cloud Alibaba 的依赖。 请添加 Spring Boot 2.1.4.RELEASE、Spring Cloud Greenwich.SR1 和 Spring Cloud Alibaba 0.9.0 版本依赖。 org.springframework.boot spring-boot-starter-parent 2.1.4.RELEASE org.springframework.boot spring-boot-starter-webflux <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.1.RELEASE</version> </dependency> org.springframework.cloud spring-cloud-dependencies Greenwich.SR1 pom import org.springframework.boot spring-boot-maven-plugin 开发服务网关启动类ZuulApplication。 @SpringBootApplication @EnableZuulProxy @EnableDiscoveryClient public class ZuulApplication { public static void main(String[] args) { SpringApplication.run(ZuulApplication.class, args); } } 在application.properties中添加如下配置,将注册中心指定为 Nacos Server 的地址。 其中127.0.0.1:8848为 Nacos Server 的地址。如果您的 Nacos Server 部署在另外一台机器,则需要修改成对应的地址。 其中 routes 配置了 Zuul 的路由转发策略,这里我们配置将所有前缀为/provider1/的请求都路由到服务名为service-provider的后端服务中。 spring.application.name=spring-cloud-zuul-nacos server.port=18022 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 zuul.routes.opensource-provider1.path=/provider1/** zuul.routes.opensource-provider1.serviceId=service-provider 执行 spring-cloud-zuul-nacos 中的 main 函数ZuulApplication,启动服务。 登录本地启动的 Nacos Server 控制台 http://127.0.0.1:8848/nacos (本地 Nacos 控制台的默认用户名和密码同为 nacos),在左侧导航栏中选择服务管理 > 服务列表,可以看到服务列表中已经包含了 spring-cloud-zuul-nacos,且在详情中可以查询该服务的详情。表明网关已经启动并注册成功,接下来我们将通过创建一个下游服务来验证网关的请求转发功能。 创建服务提供者 如何快速创建一个服务提供者请参见将Spring Cloud应用托管到SAE。 服务提供者启动类示例: @SpringBootApplication @EnableDiscoveryClient public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication, args); } @RestController public class EchoController { @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET) public String echo(@PathVariable String string) { return string; } } } 结果验证。 本地验证。 本地启动开发好的服务网关 Zuul 和服务提供者,通过访问 Spring Cloud Netflix Zuul 将请求转发给后端服务,可以看到调用成功的结果。 EDAS SpringCloud应用开发之搭建Zuul网管 在 SAE 中验证。 您可以参考将Spring Cloud应用托管到SAE,将您的应用部署到 EDAS,并验证。 SAE 服务注册中心提供了正式商用版本 Nacos Server。当您将应用部署到 SAE 的时候,SAE 会通过优先级更高的方式去设置 Nacos Server 服务端地址和服务端口,以及 namespace、access-key、secret-key、context-path 信息。您无需进行任何额外的配置,原有的配置内容可以选择保留或删除。 FAQ 使用其他版本 示例中使用的 Spring Cloud 版本为 Greenwich,对应的 Spring Cloud Alibaba 版本为 2.1.1.RELEASE。Spring Cloud Finchley 对应的 Spring Cloud Alibaba 版本为 2.0.1.RELEASE,Spring Cloud Edgware 对应的 Spring Cloud Alibaba 版本为 1.5.1.RELEASE。 说明 Spring Cloud Edgware 版本的生命周期已结束,不推荐使用这个版本开发应用。 从 ANS 迁移 SAE 注册中心在服务端对 ANS 和 Nacos 的数据结构做了兼容,在同一个命名空间下,且 Nacos 未设置 group 时,Nacos 和 ANS 客户端可以互相发现对方注册的服务。

1934890530796658 2020-03-27 11:57:49 0 浏览量 回答数 0

问题

【精品问答】Java技术1000问(1)

问问小秘 2019-12-01 21:57:43 38419 浏览量 回答数 12

问题

【大数据实践】日交易笔百万级Ping++的大数据平台架构解析

福利达人 2019-12-01 21:17:02 2801 浏览量 回答数 0

回答

Windows 相关帖子 Windows Server 2012 配置指南 之 MariaDB安装篇小全面的 Windows Server 安装 Upupw 组建包教程,小白必看,详细教程Upupw 组建包教程,添加虚拟主机Windows .NET 各主要版本下载地址收集Windows Server 也能用 Nginx+Redis Cache 实现内存级缓存. Windows Server 2016 一、系统设置 Windows Server 2016 配置指南 之 设置虚拟内存 二、 IIS Windows Server 2016 配置指南 之 IIS10 环境安装篇Windows Server 2016 配置指南 之 IIS升级和系统漏洞修补Windows Server 2016 配置指南 之 IIS10 下创建虚拟机 三、PHP PHP 虽好选择 nts 版本,相对 ts,效率更高,支持的拓展也更多。 Windows Server 2016 配置指南 之 PHP7 环境搭建篇Windows Server 2016 配置指南 之 升级 PHPWindows Server 2016 配置指南 之 开启 Zend OPcache 加速篇Windows Server 2016 配置指南 之 安装 PHP redis 拓展Windows Server 2016 配置指南 之 安装 APCu 拓展Windows Server 2016 配置指南 之 安装 Wincache 拓展 四、数据库 推荐使用 MariaDB 能完美兼容 Mysql 的开源社区维护的版本。 安装数据库一定要设置虚拟内存!! Windows Server 2016 配置指南 之 MariaDB 环境搭建篇Windows Server 2016 配置指南 之 升级 MariaDBWindows Server 2016 配置指南 之 MySQL 环境搭建篇Windows Server 2016 配置指南 之 安装 phpMyAdminWindows Server 2016 配置指南 之 使用 HeidiSQl 管理数据库 五、其他 Windows Server 2016 配置指南 之 最后要说的话Windows Server 2016 配置指南 之 FTP环境搭建篇Windows Server 2016 配置指南 之 安装 Redis3.0 Windows Server 2016 Windows Server 下安装 SQL Server 2016 — 介绍Windows Server 下安装 SQL Server 2016 — 安装Windows Server 下安装 SQL Server 2016 —SMSS ------------------------- 网站运营相关帖子 让谷歌收入不再支持海外的DNS解析备案如何免邮寄文件阿里测 – 帮你分析网站优化的不足让WordPress 评论支持MarkdownGravatar 镜像、解决方法大全网站安全配置(Nginx)防止网站被攻击阿里云购买域名教程阿里云实例暂停或者卸载云盾教程教你如何给 Discuz! X3.1/3.2 开启httpsFlarum 赋予论坛新的生命(1)大图片网站的优化技巧收集 ------------------------- 干货分享 阿里测 – 帮你分析网站优化的不足最好用的MarkDown在线简历工具常见 SMTP 汇集tinyhttpd的详细注释版[译]NGINX缓存使用官方指南FlatIcon – 最大的免费矢量图标库GenerateWP – 方便、傻瓜的 WordPress管理工具浅谈如何尽可能的避免cms网站被黑初探 MySQL 的 Binlog开启多因素认证保护您的云账号为天津加油,网站变暗代码Justfreethemes – 免费高品质 WP 主题分享国内外一键包|虚拟主机面板汇总ECS 入门教程推荐 8月16日更新移植 spider 到 MySQL 5.6云市场 plesk 面板福利,42元一年PHP7 可用的雅黑PHP探针 你需要知道 Premium domain 溢价域名StartSSL – 免费高兼容的 SSL 证书Let’s Encrypt – 免费时新的 SSL 证书.Percona Configuration Wizard – 傻瓜式量身定制 Mysql 及衍生版 ------------------------- ACE 相关 阿里云 ACE 教程 – 入门篇 阿里云 ACE 教程 – 安装Ghost 阿里云 ACE 教程 – Ghost 上使用 OSS ACE 使用 app.yaml 开启 redis、调整内 .. 在阿里云 ACE 上使用 php 缓存加速 .. ------------------------- Docker 相关 Daocloud 自有主机安装体验教程(一)  Daocloud 自有主机安装体验教程(二)  Daocloud 自有主机安装体验教程(三)  用 Docker 命令安装 Wordpress   ------------------------- 评测&介绍&体验 阿里云 SSD 评测,让你震惊Nginx 1.9 尝鲜 HTTP/2,经验分享PHP 应该怎么选择缓存器加速吧 - 数据中心的选择 加速吧 - 服务器的配置选择 云栖见闻 - 阿里云云安全阿里弹性Web托管 评测 阿里弹性Web托管 安装教程 阿里云系列二机器测评CDE – 从此 ECS 管理不再生涩 阿里云 香港 B 区,全程 CN2,全球 ..阿里云 云盾证书服务 申请教程数据管理DMS -只要你有浏览器,你就能管理你的服务器 .给你的阿里云邮箱用上数字签名和数字加密.[薅阿里云羊毛]免费申请阿里云 - 赛门企业级铁克 SSL 证书! ------------------------- 个人福利踢楼送 ECS 备案服务号。 ------------------------- 待整理 ------------------------- 系列教程 全球化加速访问 – 使用 Cloudflare 的 CDN 全球化加速访问 – 优化网卡降低延时和丢包 全球化加速访问 – DNS 与 CDN 的均衡负载,加速国内访问 全球化加速访问 – 使用中转加速实现非 HTTP 通信加速 全球化加速访问 – Debian/Ubuntu/CentOS 上安装 net-speeder 并优化 Flarum 赋予论坛新的生命(1)在服务器上安装 Flarum (2)Flarum 的设置和本土化(3) Appnode – 安装面板并更新软件仓库Appnode – 轻松搭建 LNMP 并安装 WordPress.通过 RPM 包安装的 PHP 编译 PECL 拓展 ------------------------- 详细整理 加速吧 - 数据中心的选择 加速吧 - 服务器的配置选择 加速吧 - Nginx 的优化收集 Ghost 的高可用安装 准备篇 Ghost 的高可用安装 安装篇 ------------------------- 备用 ------------------------- 2016年 12 月 2 日,整理 16 年产生的教程。

妙正灰 2019-12-02 02:18:27 0 浏览量 回答数 0

问题

智能云相册的应用场景

云栖大讲堂 2019-12-01 21:11:16 1469 浏览量 回答数 0

回答

智能云相册可应用在各种包含照片、视频的存储设备中,如移动设备、家庭存储设备等。不仅适用于企业用户开发自己的相册APP产品,也适用于个人开发者将智能云相册服务集成在自己的私有云,以实现对存储设备上的影像文件进行智能管理。 以下介绍两种智能云相册服务的典型应用场景: 移动设备 sc-1 移动设备包括手机、平板电脑等具有拍照功能、可接入互联网的终端设备。由于移动设备拍照的便捷性,用户会拍摄大量的照片、视频,这样会面临以下问题: 手机的存储空间会不够用; 以及如何快速找到需要的照片; 如何在多个设备间同步照片。 移动设备生产商的相册APP接入智能云相册后,云相册App可以自动把用户拍摄的照片、视频备份到智能云相册服务。这样将会给用户体验带来以下优势: 将照片、视频备份至云端,本地仅保存低分辨率的照片,释放用户本地存储空间; 加入影像分析功能,识别照片中的事物、面孔的元素,从而可以帮助用户自动分类整理照片、创建个性化相册,极大的提升相册APP的用户体验; 使用智能搜索,帮助用户快速查找照片; 照片备份到云端后,用户在更换使用同品牌手机时,照片视频文件可以一键恢复,增强品牌粘性; 多个设备之间同步照片,方便查看无屏幕设备(比如无人飞行器)上拍摄的照片。 我们开源了一个基于智能云相册开发的个人云相册应用,详细信息请参考这里。 影像共享 影像共享大型的赛事、展会、企业年会、聚会等活动,都会有大量的照片输出,需要在涉众群体间分享,或者在社交媒体中传播。活动的官方摄影师可通过多种途径将照片上传到云端,工作人员通过后台管理发布照片,参会人员通过多端查看、下载已发布的照片。利用智能云相册强大的照片管理能力,以及图像识别、人脸识别等智能聚类能力,可以提升照片管理、分享、查看的用户体验。 针对本场景,智能云相册提供了以下两个功能: 照片分享 照片审核 家用存储设备 家用存储设备应用场景架构图 有越来越多的资深玩家会在家庭使用专业的存储设备搭建私有云,方便家庭文件的共享和查看。其中,照片和影音文件是家庭存储中最重要的组成部分。这部分文件的管理查找无疑是非常费时费力的。在本场景中,用户使用智能云相册时无需将文件上传到云端,只需将照片的元数据(文件属性信息,如拍摄时间、拍摄经纬度等)同步到云相册中进行管理。如用户需对照片的内容进行智能分析,也不必上传整个文件,只需提交照片缩略图即可,智能云相册只对缩略图进行缓存用于影像分析,不做持久化存储。由此可以给用户带来如下好处: 用户文件仍然存储在本地存储设备中,保护了用户现有投资; 智能云相册的自动分类整理,将帮助用户从多维度快速分类整理照片; 利用智能搜索,快速在海量照片中找到自己需要查看的照片给家人分享; 请参考云+端相册开发指南了解更多信息。 无论是企业用户,还是个人用户为了实现上述的功能,开发者如果自行开发对应的服务端功能,将耗费非常多的人力和物力。接入到智能云相册,可以快速完成相应功能的开发,节省了宝贵的开发时间,加快了产品更新迭代的速度。此外, 接入智能云相册无需后续的运维工作,免去了后顾之忧,厂商能专注在其核心的设备研发上。

1934890530796658 2020-03-31 14:54:30 0 浏览量 回答数 0

问题

lnmp下升级Tengine淘宝开源webserver

holinhot 2019-12-01 21:07:19 10058 浏览量 回答数 2

问题

云效快速入门

行者武松 2019-12-01 21:57:06 1576 浏览量 回答数 0

回答

本教程介绍了如何利用弹性伸缩搭建可自动伸缩的Web应用,快速响应业务的峰谷波动,稳定承载日常业务的同时,轻松应对活动期间突增的流量。 前提条件 使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。 为应用的ECS实例创建了自定义镜像,具体操作请参见使用实例创建自定义镜像。 业务场景 某电商平台为吸引用户,除定期推出优惠活动外,还会在节假日、会员日、购物节开展大促。为保证顺利承载活动带来的流量,运维人员可以分析活动历史数据,提前预估新活动所需的计算资源。但如果高峰期流量超出预估,仍需要临时手动创建ECS实例,不仅操作仓促,而且可能因操作不及时影响应用可用性。 假设您的应用具有以下特征,也可以采用类似解决方案: 采用集群方式部署,且集群拥有1台以上的服务器。 存在临时业务突增,但突增业务周期不长,例如每天不超过9个小时、每月不超过20天。 解决方案 弹性伸缩可以实现计算资源随业务峰谷自动伸缩,无需您提前预估和手动干预即可确保应用可用性。尤其针对双十一等大促活动,弹性伸缩具备几分钟内交付上千台ECS实例的能力,自动及时地应对突增流量,提升业务的可靠性。 您可以采用以下方案: 针对日常业务流量,购买包年包月ECS实例。 针对计划外突增流量,通过弹性伸缩监控负载变化并实现自动创建ECS实例。 示意图如下: 业务收益 利用弹性伸缩应对突增流量,您可以获得以下收益: 零备机成本 弹性伸缩可自动创建和释放ECS实例,实现按需取用,无需备机。您只需针对日常业务流量保有计算资源。 零运维成本 您只需提前配置扩缩容策略。负载增加时,弹性伸缩自动创建ECS实例,并将ECS实例添加到RDS实例的白名单和SLB实例的后端服务器组;负载降低时,弹性伸缩自动将ECS实例从SLB实例的后端服务器组和RDS实例的白名单中移除,然后释放ECS实例。整个过程自动触发和完成,无需人工干预。 灵活智能 弹性伸缩提供多种伸缩模式,您可以根据业务波动规律组合使用,达到最佳业务匹配度。例如您的Web应用流量大体稳定,但存在临时突增,可以采用基于云监控指标的动态模式,监控平均CPU使用率,及时地自动响应流量变化。 操作步骤 请根据您的业务架构评估业务模块,并执行以下操作实现指定业务模块的自动扩缩容: 步骤一:使用自定义镜像创建包年包月ECS实例 步骤二:创建并启用伸缩组 步骤三:添加包年包月ECS实例并设置自动伸缩策略 步骤一:使用自定义镜像创建包年包月ECS实例 创建指定数量的包年包月ECS实例,用于添加到伸缩组,满足业务模块的日常业务要求。 登录ECS管理控制台。 在左侧导航栏,单击实例与镜像 > 镜像。 在顶部状态栏左上角处,选择地域。 找到Web应用实例的自定义镜像,在操作列中,单击创建实例。 配置实例信息并完成实例创建。 付费模式设置为包年包月。 地域和镜像信息已自动填充。 请根据需要配置其它信息,详细信息请参见使用向导创建实例。 步骤二:创建并启用伸缩组 为需要弹性扩缩容的业务模块创建伸缩组,并为伸缩配置选择Web应用实例的自定义镜像,确保自动创建出的ECS实例符合Web应用的要求。 登录弹性伸缩控制台。 单击创建伸缩组。 配置伸缩组信息并完成伸缩组创建。 伸缩组内最小实例数设置为0。 组内实例配置信息来源设置为自定义伸缩配置。 多可用区扩容模式设置为均衡分布策略。 回收模式设置为释放模式。 绑定当前业务模块所使用的SLB实例和RDS实例。 请根据需要配置其它信息,详细信息请参见创建伸缩组。 单击创建伸缩配置。 配置伸缩配置信息并完成伸缩配置创建。 镜像设置为Web应用实例的自定义镜像。 请根据需要配置其它信息,详细信息请参见创建伸缩配置。 确定启用伸缩配置。 确定启用伸缩组。 步骤三:添加包年包月ECS实例并设置自动伸缩策略 将包年包月ECS实例添加至伸缩组,并创建目标追踪规则,实现根据业务峰谷自动伸缩,应对突增流量。 在弹性伸缩管理控制台中,找到创建好的伸缩组,在伸缩组名称/ID列中,单击伸缩组名称。 前往ECS实例列表界面,将创建好的包年包月ECS实例添加至伸缩组。 将包年包月ECS实例转为保护状态,保证日常业务正常运行。 前往基本信息界面,根据业务需求,修改伸缩组的最小实例数和最大实例数。 前往伸缩规则界面,创建一条目标追踪规则。 伸缩规则类型设置为目标追踪规则。 指标类型设置为平均CPU使用率。 目标值设置为50%。 请根据需要配置其它信息,详细信息请参见创建伸缩规则。 执行结果 包年包月ECS实例已被转为保护状态,用于承载日常业务。处于保护中状态的ECS实例不会被移除伸缩组,而且负载均衡权重不受影响。 伸缩组自动将ECS实例的平均CPU使用率维持在50%左右,高于50%时自动创建ECS实例分担流量,低于50%时自动释放ECS实例节省成本。ECS实例数量始终大于等于最小实例数,且小于等于最大实例数,保证满足业务需求且成本不会超出期望范围。

1934890530796658 2020-03-23 09:43:38 0 浏览量 回答数 0

问题

我的网站日记:网站改版后的seo优化是如何操作的

北京蓝宝 2019-12-01 21:59:34 9837 浏览量 回答数 1

问题

新手服务器管理助手Linux版(宝塔)安装推荐

梦丫头 2019-12-01 21:31:11 23176 浏览量 回答数 11

问题

阿里云大数据专业认证考试形式和试卷结构是什么?

nicenelly 2019-12-01 21:24:01 1124 浏览量 回答数 0

问题

阿里云大数据专业认证考试形式和试卷结构是什么?

nicenelly 2019-12-01 21:06:16 1447 浏览量 回答数 0

问题

Java程序员需要注意的五大Docker误区

技术小菜鸟 2019-12-01 21:06:59 3761 浏览量 回答数 1

问题

如何选择一款web漏洞扫描器

elinks 2019-12-01 21:15:22 7018 浏览量 回答数 0

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目

huc_逆天 2020-02-25 11:08:12 0 浏览量 回答数 0

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目

huc_逆天 2020-02-24 21:01:42 0 浏览量 回答数 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
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站