• 关于

    RDS 数据库基础教程

    的搜索结果

回答

可以申请外网地址访问,参考如下教程 如果您的应用部署在与您的RDS实例在同一地域且网络类型相同的ECS上,则无需申请外网地址。如果您的应用部署在与您的RDS实例在不同地域或网络类型不同的ECS或者阿里云以外的系统上,需申请外网地址,用于应用对接。  说明 在同一地域内(可用区可以不同)且网络类型相同的实例,便可以内网互通。 背景信息 RDS提供两种连接地址,即内网地址和外网地址。实例的访问模式和实例版本对连接地址的选择有如下限制。  实例系列 实例版本 访问模式 连接地址 单机基础版 MySQL 5.7 SQL Server 2016 web 基础系列、2012 web 基础系列、2012 企业版 基础系列 PostgreSQL 10 标准模式 内网地址 外网地址 内网地址和外网地址 双机高可用版 MySQL 5.5/5.6/5.7 SQL Server 2008 R2、2016标准版 高可用系列、2012标准版 高可用系列、2016企业版 高可用系列、2012企业版 高可用系列 PostgreSQL 9.4 PPAS 9.3、10 标准模式 内网地址 外网地址 高安全模式 内网地址 外网地址 内网地址和外网地址 金融版 MySQL 5.6 标准模式 内网地址 外网地址 高安全模式 内网地址 外网地址 内网地址和外网地址 连接地址的使用场景如下所示: 单独使用内网地址: 系统默认提供内网地址,您可以直接修改连接地址。 适用于应用部署在与您的RDS实例在同一地域的ECS上且RDS实例与ECS的设置网络类型相同时。  单独使用外网地址: 适用于应用部署在与您的RDS在不同地域的ECS上时。 适用于应用部署在阿里云以外的系统上时。 同时使用内外网地址: 适用于应用中的模块同时部署在与您的RDS实例在同一地域且网络类型相同的ECS上和与您的RDS实例在不同的ECS上时。  适用于应用中的模块部署在与您的RDS实例在同一地域且网络类型相同的ECS上,以及应用中的模块部署在阿里云以外的系统上时。  注意事项 在访问数据库前,您需要将访问数据库的IP地址或者IP段加入白名单,操作详情请参见设置白名单。  RDS会针对外网地址流量收取一定费用,详细收费标准请参见云数据库RDS详细价格信息。  外网地址会降低实例的安全性,请谨慎选择。为了获得更快的传输速率和更高的安全级别,建议您将应用迁移到与您的RDS在同一地域的阿里云服务器ECS上。 操作步骤 登录 RDS管理控制台。   选择目标实例所在地域。 单击目标实例的ID,进入 基本信息页面。   在左侧导航栏中选择 数据库连接,进入 数据库连接页面。   单击 申请外网地址,如下图所示。   在弹出的信息确认框中单击 确定,生成外网地址。   单击 修改连接地址,在弹出的窗口中设置内外网连接地址及端口号,如下图所示。     参数说明: 连接类型:根据需要修改连接类型为内网地址或者外网地址。  连接地址:地址样式为xxx.mysql.rds.aliyuncs.com,其中xxx为自定义字段,由字母和数字组成,开头需小写字母,8-64个字符。  端口:RDS对外提供服务的端口号,取值范围是3200~3999之间的任意一个整数。  单击 确定。 望采纳,谢谢🙏

元芳啊 2019-12-02 00:09:30 0 浏览量 回答数 0

回答

ReMySQL官方管理工具上线啦,快来体验! 用RDS的初衷是省心,不需要自己维护mysql数据库,其实看到RDS控制面板里有优化的一些监控选项,但是我想说的是如果RDS控制面板也好,IDB也罢,如果只停留在(更多RDS数据库性能优化相关的数据,便于开发人员、SA、DBA优化数据库。)那依然是把RDS当作给程序员,开发人员,大公司(有能力雇开发人员)用的,而不是给普通站长用的. 希望能站在普通站长的角度,看看能不能有更加方便的工具,提示,或者引导,指导,普通站长(没开发能力的)去优化RDS数据库呢? 我虽然很喜欢阿里云的产品,包括ECS,RDS,OSS等等,但是这些产品说实话都是停留在面向于有开发能力,有windows,liunx服务器环境实施操作能力的站长,不过相对于其他产品而言ECS的第三方工具以及第三方合作伙伴生态环境相对来说好很多,教程也比较多,如果遇到虽然不懂怎么操作,但是善于学习的站长来说还是可以的,RDS导入数据库应该说也勉强能够接受,但是RDS的优化我反正是看不懂了,当然也不敢轻易的去动设置选项,也没钱找开发人员,或者数据库维护人员帮我优化了! OSS就更惨了,找不到合适的discuz x3.1插件不说,连几十G数据想从upyun搬家到青岛oss节点,都找不到合适的解决方案. ------------------------- ReMySQL官方管理工具上线啦,快来体验! 貌似查询数量只能3000条,但是如果我想修改超过3000条以上的数据怎么办? ------------------------- 回12楼钟隐的帖子 以前一直是用phpmyadmin来管理mysql数据库的,既然你们让我们的phpmyadmin say NO,那你们得给我们一个理由让我们去say NO,假设phpmyadmin能做到的事情你们无法做到,我们又为什么要去对phpmyadmin say NO,您也给我一个理由! 不要说想像不出来什么场景,既然一个事物要代替另一个事物,你必须要满足建立在拥有代替那个事物全部功能基础之上的,也就是说他能做到的,你们都能做到,他做不到的你们还能做到,不然用户为什么要对原来的事物say no? 开发人员可能无法站在普通站长的视角去看问题,因为我们无法站长开发人员的视角去处理问题,因为我们是普通站长,我们不懂SQL语句 我是不敢轻易在phpmyadmin里运行SQL语句的,万一错了,导致后果很严重,我们菜鸟就真的束手无策了,我也不敢说很懂phpmyadmin如何使用,至少我从来没用过,我看一下,我能简单的对我的数据库里的内容进行修改! 我用的是discuz,在phpmyadmin里左侧可以看到各种discuz数据库里的表单,比如记录帖子的表单,比如记录用户的表单,我在phpmyadmin里是可以把某一个帖子的数据调出来修改的! 比如这个帖子的数据是在第9000多个,我虽然你不懂语句,我可以在phpmyadmin里查看第多少页到多少页的数据,我让他一页显示多少个,然后再估算一下多少页之间可以找到这帖子的数据,我就能找到这个帖子的数据,然后对这个数据进行修改! 可是在你们的这个工具里,我只能查看到3000条,可是3000条之后的呢?我不是说要一次性查看几万条,几十万条,可是如果数据如果是有编号的从1-50万,如果我要查看这50万条数据中最后的3000条我要如何做? 其实你们错误的理解我们的需求,你认为我们是要批量修改超过3000条的数据,其实是我在查看一个表的时候这个表有几十万条数据,问题是我无法做到查看排序在3000条以后的数据.....,看来看去就只能看到前3000条,问题是我要改后面的数据 您看一下用户的反馈都是对翻页功能,查询数据的功能吐槽! 我想他的问题应该跟我一样,想通过翻页,查询找到自己想要的数据是很痛苦的! 最倒霉的是把phpmyadmin里这些功能给限制不让用了!

solidedge 2019-12-02 02:57:39 0 浏览量 回答数 0

回答

ReMySQL官方管理工具上线啦,快来体验! 用RDS的初衷是省心,不需要自己维护mysql数据库,其实看到RDS控制面板里有优化的一些监控选项,但是我想说的是如果RDS控制面板也好,IDB也罢,如果只停留在(更多RDS数据库性能优化相关的数据,便于开发人员、SA、DBA优化数据库。)那依然是把RDS当作给程序员,开发人员,大公司(有能力雇开发人员)用的,而不是给普通站长用的. 希望能站在普通站长的角度,看看能不能有更加方便的工具,提示,或者引导,指导,普通站长(没开发能力的)去优化RDS数据库呢? 我虽然很喜欢阿里云的产品,包括ECS,RDS,OSS等等,但是这些产品说实话都是停留在面向于有开发能力,有windows,liunx服务器环境实施操作能力的站长,不过相对于其他产品而言ECS的第三方工具以及第三方合作伙伴生态环境相对来说好很多,教程也比较多,如果遇到虽然不懂怎么操作,但是善于学习的站长来说还是可以的,RDS导入数据库应该说也勉强能够接受,但是RDS的优化我反正是看不懂了,当然也不敢轻易的去动设置选项,也没钱找开发人员,或者数据库维护人员帮我优化了! OSS就更惨了,找不到合适的discuz x3.1插件不说,连几十G数据想从upyun搬家到青岛oss节点,都找不到合适的解决方案. ------------------------- ReMySQL官方管理工具上线啦,快来体验! 貌似查询数量只能3000条,但是如果我想修改超过3000条以上的数据怎么办? ------------------------- 回12楼钟隐的帖子 以前一直是用phpmyadmin来管理mysql数据库的,既然你们让我们的phpmyadmin say NO,那你们得给我们一个理由让我们去say NO,假设phpmyadmin能做到的事情你们无法做到,我们又为什么要去对phpmyadmin say NO,您也给我一个理由! 不要说想像不出来什么场景,既然一个事物要代替另一个事物,你必须要满足建立在拥有代替那个事物全部功能基础之上的,也就是说他能做到的,你们都能做到,他做不到的你们还能做到,不然用户为什么要对原来的事物say no? 开发人员可能无法站在普通站长的视角去看问题,因为我们无法站长开发人员的视角去处理问题,因为我们是普通站长,我们不懂SQL语句 我是不敢轻易在phpmyadmin里运行SQL语句的,万一错了,导致后果很严重,我们菜鸟就真的束手无策了,我也不敢说很懂phpmyadmin如何使用,至少我从来没用过,我看一下,我能简单的对我的数据库里的内容进行修改! 我用的是discuz,在phpmyadmin里左侧可以看到各种discuz数据库里的表单,比如记录帖子的表单,比如记录用户的表单,我在phpmyadmin里是可以把某一个帖子的数据调出来修改的! 比如这个帖子的数据是在第9000多个,我虽然你不懂语句,我可以在phpmyadmin里查看第多少页到多少页的数据,我让他一页显示多少个,然后再估算一下多少页之间可以找到这帖子的数据,我就能找到这个帖子的数据,然后对这个数据进行修改! 可是在你们的这个工具里,我只能查看到3000条,可是3000条之后的呢?我不是说要一次性查看几万条,几十万条,可是如果数据如果是有编号的从1-50万,如果我要查看这50万条数据中最后的3000条我要如何做? 其实你们错误的理解我们的需求,你认为我们是要批量修改超过3000条的数据,其实是我在查看一个表的时候这个表有几十万条数据,问题是我无法做到查看排序在3000条以后的数据.....,看来看去就只能看到前3000条,问题是我要改后面的数据 您看一下用户的反馈都是对翻页功能,查询数据的功能吐槽! 我想他的问题应该跟我一样,想通过翻页,查询找到自己想要的数据是很痛苦的! 最倒霉的是把phpmyadmin里这些功能给限制不让用了!

solidedge 2019-12-01 23:27:53 0 浏览量 回答数 0

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

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

回答

Reslb两台阿里云服务器如何设置phpwind87 建议不要用rsync 那个只适合定时同步数据 不适合实时同步数据 rsync我一般只用在静态数据上 论坛上有些是服务器单属的 比如访问日志 还有一些临时页面 不是简单同步 建议使用NFS 用一台服务器的数据盘创建NFS 然后另一台挂在NFS来解决 不过NFS不支持mysql mysql的表锁机制会与NFS产生冲突 建议另外购置RDS来解决这个问题 如果不想通过RDS解决问题的话就在一台机器上设置上mysql 然后开放远程访问 另一台也设置为访问那台数据即可 不过要做好配置只对内网开放 ------------------------- 回 17楼(雨中听风) 的帖子 对 NFS就是类似于windows之间磁盘共享 多台服务器访问同一磁盘 所以网站文件什么的也都是共享的 就不需要走nginx反向代理了 NFS从基础上就不支持mysql的数据库文件 NFS无法满足mysql执行文件锁定时的操作 最好是在一台主机上设置mysql然后把另一台主机的数据库地址指向那台机器 或者直接使用RDS ------------------------- 回 17楼(雨中听风) 的帖子 阿里云所有主机间相互的通讯都是可以走内网的 只要将目标地址设定为内网的IP即可 同时要在相关软件中设置来保证端口以及权限开放 ------------------------- 回 20楼(雨中听风) 的帖子 那些都不用设置 因为无论那台服务上传附件 都是上传到同一个位置 所以A上传的附件B也可以访问到的 镜像配置貌似是给一些外部存储网站做的 有些网站可以用来存附件 忘了怎么叫那些网站了…… NFS这些同步的问题你就都不需要管了 你可以想象成同样的数据同时被两台服务器访问 同时任何一台对数据所做的更改也会被另一台读取到 ------------------------- 回 22楼(雨中听风) 的帖子 http://www.vpsee.com/2010/06/install-nfs-4-0-on-centos/ 你参考一下这个教程  用yum装很简单的 ------------------------- 回 24楼(雨中听风) 的帖子 客气哈~ 以后会慢慢收集论坛问题然后专门出一个教程帖子来教大家使用云服务器的~ nfs算是用的比较广的网络文件系统 稳定性易用性还是有保障的 rsync主要问题是在他是定时同步 对静态内容同步比较好 但是对于论坛这种会产生大量临时文件以及上传文件的来说局限性比较大 建议开启SLB的保持连接 要不可能论坛会出现session丢失的问题 如果都弄完之后还会出现session丢失的情况在论坛反馈一下 估计可能还需要修改php保存session的文件夹位置 修改到nfs盘 ------------------------- 回 24楼(雨中听风) 的帖子 不知道phpwind的session用的php的还是像dz那样写入session到数据库 如果开启SLB的话还会出现session丢失的问题 就在nfs盘中新建一个session文件夹  同时修改两台服务器的/etc/php.ini文件将session临时存储位置指向新建文件夹即可 ------------------------- 回 29楼(雨中听风) 的帖子 你可以把你的服务器ip 密码发敌人消息发给我 我帮你配置一下

twl007 2019-12-02 00:46:34 0 浏览量 回答数 0

回答

云市场镜像搭建WordPress WordPress是使用PHP语言开发的博客平台,在支持PHP和MySQL数据库的服务器上,您可以用WordPress架设自己的网站,也可以用作内容管理系统(CMS)。本文介绍如何使用云市场的WordPress镜像搭建WordPress网站。 使用ROS搭建WordPress 资源编排服务ROS(Resource Orchestration Service)可通过ROS模板创建一组阿里云资源。ROS模板为JSON格式文件,用于定义您需要创建的云资源。本教程介绍如何使用ROS模板创建基于ECS和RDS(Relational Database Service)的WordPress环境。 手动搭建WordPress(CentOS 7) WordPress是使用PHP语言开发的博客平台,在支持PHP和MySQL数据库的服务器上,您可以用WordPress架设自己的网站,也可以用作内容管理系统(CMS)。本教程介绍如何在Linux操作系统的ECS实例上搭建WordPress网站。 手动搭建WordPress(Windows) 本教程介绍如何在Windows操作系统的ECS实例上搭建WordPress网站。 搭建Ghost博客 Ghost是一个基于Node.js开发的免费开源博客平台,用于简化个人博客和在线出版物的在线发布过程。本文介绍了在CentOS 7操作系统的ECS实例上部署Ghost博客的详细步骤。 搭建Drupal网站 本文介绍如何在CentOS 7操作系统的ECS实例上搭建Drupal电子商务网站。 搭建Joomla基础管理平台 Joomla是一套知名的内容管理系统。Joomla是使用PHP语言和MySQL数据库所开发的软件系统,最新版本3.x实现了许多技术上的优化,是目前的稳定版本。本教程主要介绍如何在阿里云服务器ECS搭建Magento电子商务网站 Joomla基础管理平台。Magento是一款开源电商网站框架,其丰富的模块化架构体系及拓展功能可为大中型站点提供解决方案。Magento使用PHP开发,支持版本范围从PHP 5.6到PHP 7.1,并使用MySQL存储数据。本教程主要介绍如何在CentOS 7操作系统的ECS实例上搭建Magento电子商务网站。 搭建Moodle课程管理系统 Moodle是一个课程管理系统,采用PHP加MySQL方式运行的自由开源软件。使用Moodle为学生建立网上动态网站,可以根据需要随时调整界面、增减内容。本教程介绍如何使用云市场镜像快速搭建Moodle课程管理系统。 搭建phpwind论坛系统 phpwind是采用PHP和MySQL方式运行的开源社区程序。phpwind先进版(v9.0.1)注重轻社区、高效、易开发。本篇教程介绍如何使用phpwind先进版快速搭建phpwind论坛系统。

1934890530796658 2020-03-25 19:23:23 0 浏览量 回答数 0

问题

【感恩有你—我的云端故事】小白也能维护ECS

pla76153 2019-12-01 21:01:19 8221 浏览量 回答数 1

问题

使用云数据库 Redis 版为 WP 做缓存

妙正灰 2019-12-01 21:01:46 2484 浏览量 回答数 0

问题

上云基础教程系列–初次建站用户在阿里云如何选择合适的服务

紫龙001 2019-12-01 21:46:16 8774 浏览量 回答数 5

回答

前言 这篇文章适合所有的 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

问题

【云计算的1024种玩法】使用 DMS 只要一个浏览器轻松搞定运维任务

妙正灰 2019-12-01 21:18:52 1583 浏览量 回答数 0

回答

12月17日更新 请问下同时消费多个topic的情况下,在richmap里面可以获取到当前消息所属的topic吗? 各位大佬,你们实时都是怎样重跑数据的? 有木有大神知道Flink能否消费多个kafka集群的数据? 这个问题有人遇到吗? 你们实时读取广业务库到kafka是通过什么读的?kafka connector 的原理是定时去轮询,这样如果表多了,会不会影响业务库的性能?甚至把业务库搞挂? 有没有flink 1.9 连接 hive的例子啊?官网文档试了,没成功 请问各位是怎么解决实时流数据倾斜的? 请问一下,对于有状态的任务,如果任务做代码升级的时候,可否修改BoundedOutOfOrdernessTimestampExtractor的maxOutOfOrderness呢?是否会有影响数据逻辑的地方呢? 老哥们有做过统计从0点开始截止到现在时刻的累计用户数吗? 比如五分钟输出一次,就是7点输出0点到7点的累计用户,7:05输出0点到7:05的累计用户。 但是我这里有多个维度,现在用redis来做的。 想知道有没有更好的姿势? 实时数仓用什么存储介质来存储维表,维表有大有小,大的大概5千万左右。 各位大神有什么建议和经验分享吗? 请教个问题,就是flink的窗口触发必须是有数据才会触发吗?我现在有个这样的需求,就是存在窗口内没有流数据进入,但是窗口结束是要触发去外部系统获取上一个窗口的结果值作为本次窗口的结果值!现在没有流数据进入窗口结束时如何触发? kafkaSource.setStartFromTimestamp(timestamp); 发现kafkasource从指定时间开始消费,有些topic有效,有效topic无效,大佬们有遇到过吗? 各位大佬,flink两个table join的时候,为什么打印不出来数据,已经赋了关联条件了,但是也不报错 各位大佬 请教一下 一个faile的任务 会在这里面存储展示多久啊? 各位大佬,我的程序每五分钟一个窗口做了基础指标的统计,同时还想统计全天的Uv,这个是用State就能实现吗? 大佬们,flink的redis sink是不是只适用redis2.8.5版本? 有CEP 源码中文注释的发出来学习一下吗? 有没有拿flink和tensorflow集成的? 那位大神,给一个java版的flink1.7 读取kafka数据,做实时监控和统计的功能的代码案例。 请问下风控大佬,flink为风控引擎做数据支撑的时候,怎么应对风控规则的不断变化,比如说登录场景需要实时计算近十分钟内登录次数超过20次用户,这个规则可能会变成计算近五分钟内登录次数超过20次的。 想了解一下大家线上Flink作业一般开始的时候都分配多少内存?广播没办法改CEP flink支持多流(大于2流)join吗? 谁能帮忙提供一下flink的多并行度的情况下,怎么保证数据有序 例如map并行度为2 那就可能出现数据乱序的情况啊 请教下现在从哪里可以可以看单任务的运行状况和内存占用情况,flink页面上能看单个任务的内存、cpu 大佬们 flink1.9 停止任务手动保存savepoint的命令是啥? flink 一个流计算多个任务和 还是一个流一个任务好? flink 1.9 on yarn, 自定义个connector里面用了jni, failover以后 就起不来了, 报错重复load so的问题。 我想问一下 这个,怎么解决。 难道flink 里面不能用jni吗。 ide里面调试没有问题,部署到集群就会报错了,可能什么问题? 请教一下对于长时间耗内存很大的任务,大家都是开checkpoint机制,采用rocksdb做状态后端吗? 请问下大佬,flink jdbc读取mysql,tinyin字段类型自动转化为Boolean有没有好的解决方法 Flink 1.9版本的Blink查询优化器,Hive集成,Python API这几个功能好像都是预览版,请问群里有大佬生产环境中使用这些功能了吗? 想做一个监控或数据分析的功能,如果我flink 的datastreaming实现消费Kafka的数据,但是我监控的规则数据会增加或修改,但是不想停这个正在运行的flink程序,要如何传递这个动态变化的规则数据,大神给个思路,是用ConnectedStream这个吗?还是用Broadcast ?还有一个,比如我的规则数据是存放在Mysql表中,用什么事件隔30秒去触发读取mysql规则表呢?谢谢! 想做一个监控或数据分析的功能,如果我flink 的datastreaming实现消费Kafka的数据,但是我监控的规则数据会增加或修改,但是不想停这个正在运行的flink程序,要如何传递这个动态变化的规则数据,大神给个思路,是用ConnectedStream这个吗?还是用Broadcast ?还有一个,比如我的规则数据是存放在Mysql表中,用什么事件隔30秒去触发读取mysql规则表呢?谢谢! 各位大佬,在一个 Job 计算过程中,查询 MySQL 来补全额外数据,是一个好的实践嘛?还是说流处理过程中应该尽量避免查询额外的数据? Flink web UI是jquery写的吗? 12月9日更新 成功做完一次checkpoint后,会覆盖上一次的checkpoint吗? 数据量较大时,flink实时写入hbase能够异步写入吗? flink的异步io,是不是只是适合异步读取,并不适合异步写入呀? 请问一下,flink将结果sink到redis里面会不会对存储的IO造成很大的压力,如何批量的输出结果呢? 大佬们,flink 1.9.0版本里DataStream api,若从kafka里加载完数据以后,从这一个流中获取数据进行两条业务线的操作,是可以的吗? flink 中的rocksdb状态怎么样能可视化的查看有大佬知道吗? 感觉flink 并不怎么适合做hive 中的计算引擎来提升hive 表的查询速度 大佬们,task端rocksdb状态 保存路径默认是在哪里的啊?我想挂载个新磁盘 把状态存到那里去 flink 的state 在窗口滑动到下一个窗口时候 上一个窗口销毁时候 state会自己清除吗? 求助各位大佬,一个sql里面包含有几个大的hop滑动窗口,如15个小时和24个小时,滑动步长为5分钟,这样就会产生很多overlap 数据,导致状态会很快就达到几百g,然后作业内存也很快达到瓶颈就oom了,然后作业就不断重启,很不稳定,请问这个业务场景有什么有效的解决方案么? 使用jdbcsink的时候,如果连接长时间不使用 就会被关掉,有人遇到过吗?使用的是ddl的方式 如何向云邪大佬咨询FLink相关技术问题? 请问各位公司有专门开发自己的实时计算平台的吗? 请问各位公司有专门开发自己的实时计算平台的吗? 有哪位大佬有cdh集成安装flink的文档或者手册? 有哪位大佬有cdh集成安装flink的文档或者手册? 想问下老哥们都是怎么统计一段时间的UV的? 是直接用window然后count嘛? Flink是不是也是这样的? 请问现在如有个实时程序,根据一个mysql的维表来清洗,但是我这个mysql表里面就只有几条信息且可能会变。 我想同一个定时器去读mysql,然后存在对象中,流清洗的时候读取这个数据,这个想法可行吗?我目前在主类里面定义一个对象,然后往里面更新,发现下面的map方法之类的读不到我更新进去的值 有大佬做过flink—sql的血缘分析吗? 12月3日更新 请教一下,为什么我flume已经登录成功了keytab认证的kafka集群,但是就是消费不到数据呢? flink 写入mysql 很长一段时间没有写入,报错怎么解决呢? flink timestamp转换为date类型,有什么函数吗 Run a single Flink job on YARN 我采用这种模式提交任务,出现无法找到 开启 HA 的ResourceManager Failed to connect to server: xxxxx:8032: retries get failed due to exceeded maximum allowed retries number: 0 有大佬遇到过吗 ? 各位大佬,请问有Flink写S3的方案吗? flink 连接hbase 只支持1.4.3版本? onnector: type: hbase version: "1.4.3" 请问 flink1.9能跑在hadoop3集群上吗? 滑动窗口 排序 报错这个是什么原因呢? 这个pravega和kafka有啥区别? flink 开发里数据源配置了RDS,但是在RDS里没有看到创建的表,是为什么呢? Tumbling Window里的数据,是等窗口期内的数据到齐之后一次性处理,还是到了一条就处理一条啊 双流join后再做time window grouping. 但是双流join会丢失时间属性,请问大家如何解决 stream processing with apache flink,这本书的中译版 现在可以买吗? flink on yarn时,jm和tm占用的内存最小是600M,这个可以修改吗? 各位大佬,使用默认的窗口Trigger,在什么情况下会触发两次啊?窗口关闭后,然后还来了这个窗口期内的数据,并且开了allowedLateness么? flink web里可以像storm那样 看每条数据在该算子中的平均耗时吗? 各位大佬,flink任务的并发数调大到160+以后,每隔几十分钟就会出现一次TM节点连接丢失的异常,导致任务重启。并发在100时运行比较稳定,哪位大佬可以提供下排查的思路? 感觉stateful function 是下一个要发力的点,这个现在有应用案例吗? 我有2个子网(a子网,b子网)用vpn联通,vpn几周可能会断一次。a子网有一个kafka集群,b子网运行我自己的flink集群和应用,b子网的flink应用连接到a子网的kafka集群接收消息来处理入库到数仓去。我的问题是,如果vpn断开,flink consumer会异常整个作业退出吗?如果作业退出,我重连vpn后,能从auto checkpoint再把flink应用恢复到出错时flink kafka consumer应该读取的partition/offset位置吗?flink的checkpoint除了保存自己开发的算子里的state,kafkaconsumer里的partition/offset也会保存和恢复吗? flink的反压为什么不加入metrics呢 hdfs是不是和flink共用一个集群? flink消费kafka,可以从指定时间消费的吗?目前提供的接口只是根据offset消费?有人知道怎么处理? flink 的Keyby是不是只是repartition而已?没有将key相同的数据放到一个组合里面 电商大屏 大家推荐用什么来做吗? 我比较倾向用数据库,因为有些数据需要join其他表,flink充当了什么角色,对这个有点迷,比如统计当天订单量,卖了多少钱,各个省的销量,销售金额,各个品类的销售量销售金额 开源1.9的sql中怎么把watermark给用起来,有大神知道吗? 有没有人能有一些flink的教程 代码之类的分享啊 采用了checkpoint,程序停止了之后,什么都不改,直接重启,还是能接着继续运行吗?如果可以的话,savepoint的意义又是什么呢? 有人做过flink 的tpc-ds测试吗,能不能分享一下操作的流程方法 checkpoint是有时间间隔的,也就可以理解为checkpoint是以批量操作的,那如果还没进行ckecnpoint就挂了,下次从最新的一次checkpoint重启,不是重复消费了? kafka是可以批量读取数据,但是flink是一条一条处理的,应该也可以一条一条提交吧。 各位大佬,flink sql目前是不是不支持tumbling window join,有人了解吗? 你们的HDFS是装在taskmanager上还是完全分开的,请问大佬们有遇到这种情况吗? 大佬们flink检查点存hdfs的话怎么自动清理文件啊 一个128M很快磁盘就满了 有谁遇到过这个问题? 请教一下各位,这段代码里面,我想加一个trigger,实现每次有数据进window时候,就输出,而不是等到window结束再输出,应该怎么加? 麻烦问下 flink on yarn 执行 客户端启动时 报上面错,是什么原因造成的 求大佬指点 ERROR org.apache.flink.client.program.rest.RestClusterClient - Error while shutting down cluster java.util.concurrent.ExecutionException: org.apache.flink.runtime.concurrent.FutureUtils$RetryException: Could not complete the operation. Number of retries has been exhausted. 大家怎么能动态的改变 flink WindowFunction 窗口数据时间 flink on yarn之后。yarn的日志目录被写满,大家如配置的? Flink1.9 启动 yarn-session报这个错误 怎么破? yarn 模式下,checkpoint 是存在 JobManager的,提交任务也是提交给 JobManager 的吧? heckpoint机制,会不会把window里面的数据全部放checkpoint里面? Flink On Yarn的模式下,如果通过REST API 停止Job,并触发savepiont呢 jenkins自动化部署flink的job,一般用什么方案?shell脚本还是api的方式? 各位大佬,开启增量checkpoint 情况下,这个state size 是总的checkpoint 大小,还是增量上传的大小? 想用状态表作为子表 外面嵌套窗口 如何实现呢 因为状态表group by之后 ctime会失去时间属性,有哪位大佬知道的? 你们有试过在同样的3台机器上部署两套kafka吗? 大家有没有比较好的sql解析 组件(支持嵌套sql)? richmapfuntion的open/close方法,和处理数据的map方法,是在同一个线程,还是不同线程调用的? flink on yarn 提交 参数 -p 20 -yn 5 -ys 3 ,我不是只启动了5个container么? Flink的乱序问题怎么解决? 我对数据流先进行了keyBy,print的时候是有数据的,一旦进行了timeWindow滑动窗口就没有数据了,请问是什么情况呢? 搭建flinksql平台的时候,怎么处理udf的呀? 怎么查看sentry元数据里哪些角色有哪些权限? 用java api写的kafka consumer能消费到的消息,但是Flink消费不到,这是为啥? 我state大小如果为2G左右 每次checkpoint会不会有压力? link-table中的udaf能用deltaTrigger么? flink1.7.2,场景是一分钟为窗口计算每分钟传感器的最高温度,同时计算当前分钟与上一分钟最高温 001 Flink集群支持kerberos认证吗?也就是说flink客户端需要向Flink集群进行kerberos认证,认证通过之后客户端才能提交作业到Flink集群运行002 Flink支持多租户吗? 如果要对客户端提交作业到flink进行访问控制,你们有类似的这种使用场景吗? flink可以同时读取多个topic的数据吗? Flink能够做实时ETL(oracle端到oracle端或者多端)么? Flink是否适合普通的关系型数据库呢? Flink是否适合普通的关系型数据库呢? 流窗口关联mysql中的维度表大佬们都是怎么做的啊? 怎么保证整个链路的exactly one episode精准一次,从source 到flink到sink? 在SQL的TUMBLE窗口的统计中,如果没数据进来的,如何让他也定期执行,比如进行count计算,让他输出0? new FlinkKafkaConsumer010[String]("PREWARNING",new JSONKeyValueDeserializationSchema(true), kafkaProps).setStartFromGroupOffsets() ) 我这样new 它说要我传个KeyedDeserializationSchema接口进去 flink里面broadcast state想定时reload怎么做?我用kafka里的stream flink独立模式高可用搭建必需要hadoop吗? 有人用增量cleanupIncrementally的方式来清理状态的嘛,感觉性能很差。 flink sink to hbase继承 RichOutputFormat运行就报错 kafka 只有低级 api 才拿得到 offset 吗? 有个问题咨询下大家,我的flinksql中有一些参数是要从mysql中获取的,比如我flink的sql是select * from aa where cc=?,这个问号的参数需要从mysql中获取,我用普通的jdbc进行连接可以获的,但是有一个问题,就是我mysql的数据改了之后必须重启flink程序才能解决这个问题,但这肯定不符合要求,请问大家有什么好的办法吗? flink里怎样实现多表关联制作宽表 flink写es,因为半夜es集群做路由,导致写入容易失败,会引起source的反压,然后导致checkpoint超时任务卡死,请问有没有办法在下游es处理慢的时候暂停上游的导入来缓解反压? flink 写parquet 文件,使用StreamingFileSink streamingFileSink = StreamingFileSink.forBulkFormat( new Path(path), ParquetAvroWriters.forReflectRecord(BuyerviewcarListLog.class)). withBucketAssigner(bucketAssigner).build(); 报错 java.lang.UnsupportedOperationException: Recoverable writers on Hadoop are only supported for HDFS and for Hadoop version 2.7 or newer 1.7.2 NoWindowInnerJoin这个实现,我看实现了CleanupState可更新过期时间删除当前key状态的接口,是不是这个1.7.2版本即使有个流的key一直没有被匹配到他的状态也会被清理掉,就不会存在内存泄漏的问题了? flink1.7.2 想在Table的UDAF中使用State,但是发现UDAF的open函数的FunctionContext中对于RuntimeContext是一个private,无法使用,大佬,如何在Table的UDAF中使用State啊? Flink有什么性能测试工具吗? 项目里用到了了KafkaTableSourceSinkFactory和JDBCTableSourceSinkFactory。maven打包后,META-INF里只会保留第一个 标签的org.apache.flink.table.factories.TableFactory内容。然后执行时就会有找不到合适factory的报错,请问有什么解决办法吗? 为什么这个这段逻辑 debug的时候 是直接跳过的 各位大佬,以天为单位的窗口有没有遇到过在八点钟的时候会生成一条昨天的记录? 想问一下,我要做一个规则引擎,需要动态改变规则,如何在flink里面执行? flink-1.9.1/bin/yarn-session.sh: line 32: construc 我要用sql做一个规则引擎,需要动态改变规则,如何在flink里面执行? 我要用sql做一个规则引擎,需要动态改变规则,如何在flink里面执行? 一般公司的flink job有没有进程进行守护?有专门的工具或者是自己写脚本?这种情况针对flink kafka能不能通过java获取topic的消息所占空间大小? Flink container was removed这个咋解决的。我有时候没有数据的时候也出现这 大家有没有这种场景,数据从binlog消费,这个信息是订单信息,同一个订单id,会有不同状态的变更 问大家个Hive问题,新建的hive外部分区表, 怎么把HDFS数据一次性全部导入hive里 ? flink里面的broadcast state值,会出现broad流的数据还没put进mapstat Flink SQL DDL 创建表时,如何定义字段的类型为proctime? 请问下窗口计算能对历史数据进行处理吗?比如kafka里的写数据没停,窗口计算的应用停掉一段时间再开起 请问下,想统计未退费的订单数量,如果一个订单退费了(发过来一个update流),flink能做到对结果进行-1吗,这样的需求sql支持吗? 使用Flink sql时,对table使用了group by操作。然后将结果转换为流时是不是只能使用的toRetractStream方法不能使用toAppendStream方法。 百亿数据实时去重,有哪位同学实践过吗? 你们的去重容许有误差?因为bloom filter其实只能给出【肯定不存在】和【可能存在】两种结果。对于可能存在这种结果,你们会认为是同一条记录? 我就运行了一个自带的示例,一运行就报错然后web页面就崩了 flink定时加载外部数据有人做过吗? NoSuchMethodError: org.apache.flink.api.java.Utils.resolveFactory(Ljava/lang/ThreadLocal;Ljava/lang/Object;)Ljava/util/Optional 各位知道这个是那个包吗? flink 可以把大量数据写入mysql吗?比如10g flink sql 解析复杂的json可以吗? 在页面上写规则,用flink执行,怎么传递给flink? 使用cep时,如何动态添加规则? 如何基于flink 实现两个很大的数据集的交集 并集 差集? flink的应用场景是?除了实时 各位好,请教一下,滑动窗口,每次滑动都全量输出结果,外部存储系统压力大,是否有办法,只输出变化的key? RichSinkFunction close只有任务结束时候才会去调用,但是数据库连接一直拿着,最后成了数据库连接超时了,大佬们有什么好的建议去处理吗?? 为啥我的自定义函数注册,然后sql中使用不了? 请问一下各位老师,flink flapmap 中的collector.collect经常出现Buffer pool is destroyed可能是什么原因呢? 用asyncIO比直接在map里实现读hbase还慢,在和hbase交互这块儿,每个算子都加了时间统计 请教一下,在yarn上运行,会找不到 org.apache.flink.streaming.util 请问下大佬,flink1.7.2对于sql的支持是不是不怎么好啊 ,跑的数据一大就会报错。 各位大佬,都用什么来监控flink集群? flink 有那种把多条消息聚合成一条的操作吗,比如说每五十条聚合成一条 如何可以让checkpoint 跳过对齐呢? 请问 阿里云实时计算(Blink)支持这4个源数据表吗?DataHub Kafka MQ MaxCompute? 为啥checkpoint时间会越来越长,请问哪位大佬知道是因为啥呢? 请问Flink的最大并行度跟kafka partition数量有关系吗? source的并行度应该最好是跟partition数量一致吧,那剩下的算子并行度呢? Flink有 MLIB库吗,为什么1.9中没有了啊? 请教一下,有没有flink ui的文章呢?在这块内存配置,我给 TM 配置的内存只有 4096 M,但是这里为什么对不上呢?请问哪里可以看 TM 内存使用了多少呢? 请教个问题,fink RichSinkFunction的invoke方法是什么时候被调用的? 请教一下,flink的window的触发条件 watermark 小于 window 的 end_time。这个 watermark 为什么是针对所有数据的呢?没有设计为一个 key 一个 watermark 呢? 就比如说有 key1、key2、key3,有3个 watermark,有 3个 window interval不支持left join那怎么可以实现把窗口内左表的数据也写到下游呢? 各位 1、sink如何只得到最终的结果而不是也输出过程结果 ;2、不同的运算如何不借助外部系统的存储作为另外一个运算的source 请教各位一个问题,flink中设置什么配置可以取消Generic这个泛型,如图报错: 有大佬在吗,线上遇到个问题,但是明明内存还有200多G,然后呢任务cancel不了,台也取消不了程序 flink遇到The assigned slot container_1540803405745_0094_01_000008_1 was removed. 有木有大佬遇到过。在flink on yarn上跑 这个报错是什么意思呢?我使用滑动窗口的时候出现报错 flink 双流union状态过期不清理有遇到的吗? 大家有没有这种场景,数据从binlog消费,这个信息是订单信息,同一个订单id,会有不同状态的变更,如果订单表与商品明细join查询,就会出现n条重复数据,这样数据就不准了,flink 这块有没有比较好的实战经验的。 大佬们、有没有人遇到过使用一分钟的TumblingEventTimeWindows,但是没有按时触发窗口、而是一直等到下一条消息进来之后才会把这个窗口的数据发送出去的? flink 有办法 读取 pytorch的 模型文件吗? 大佬们、有没有人遇到过使用一分钟的TumblingEventTimeWindows,但是没有按时触发窗口、而是一直等到下一条消息进来之后才会把这个窗口的数据发送出去的? flink timestamp转换为date类型,有什么函数吗 flink 写入mysql 很长一段时间没有写入,报错怎么解决呢? flink 有办法 读取 pytorch的 模型文件吗? 有没有大佬知道实时报表怎么做?就是统计的结果要实时更新,热数据。 刚接触flink 1.9 求问flink run脚本中怎么没有相关提交到yarn的命令了 请教一下,flink里怎么实现batch sink的操作而不导致数据丢失

问问小秘 2019-12-02 03:19:17 0 浏览量 回答数 0

回答

回45楼拆桥在过河的帖子 重新下载一次,再解压试试,安装包好多人用过的,不会有问题。 如再出错,将报错信息发上来。 ------------------------- 回66楼奇真界的帖子 亲,看到您的站点已经建好了,有问题再留言,感谢使用阿里云的服务! ------------------------- 回67楼信天游科技的帖子 感动了,欢迎使用! ------------------------- 回71楼奇真界的帖子 nginx  和 apache 的配置文件不通用,需要单独修改,改的内容可以参考,差不多。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 前面有人问过,请看第“40楼”的回复。 ------------------------- 回77楼荷西的帖子 不同版本的linux,内置的命令可能有所不同,按此方法安装应该是可以的。 ------------------------- 回81楼小敏110的帖子 具体遇到了什么问题? 说详细点,大家可以帮助你。 ------------------------- 回 85楼snabna的帖子 IP能访问吗? 域名是什么? ------------------------- 回 94楼bakabaka的帖子 亲,是“cd /root”,中间有空格 ------------------------- 回 93楼jinyumi的帖子 亲,具体遇到了什么问题?贴出来,大家帮你解决 ------------------------- 回 101楼乐乐智慧的帖子 感觉像是有特别耗CPU的大SQL在执行,否则不会卡到必须重启ECS,建议从管理控制台检查一下各种报警信息,确保ECS是正常的,同时看看RDS里面的SQL审计,看看执行时间。 ------------------------- 回 108楼deerpdean的帖子 亲,请在线咨询一下镜像的供应商,是由合作伙伴提供的。 ------------------------- 回 112楼火星了的帖子 谢谢支持! ------------------------- 回 116楼shashouhang的帖子 好样的,看样子你已经自己安装上了unzip软件,有的镜像里没有自带这个命令,需要大家自己安装。 安装指令:“yum  install unzip” ,一定要注意三个单词中间有空格。 ------------------------- 回 118楼ienpai的帖子 谢谢支持,后续会根据大家关注度较高的需求陆续录制相关教程,有什么建议大家可以论坛里直接提出来。 ------------------------- 回 126楼victoire的帖子 亲,是完全免费的 ------------------------- 回 138楼过往云烟1的帖子 是文档里有乱码吗?请使用标准的 PDF reader试试,之前没有人反馈过。 ------------------------- 回 143楼原不周的帖子 亲,一般情况下不会出现这个问题,有几个方法: 1、重新执行一遍“一键WEB安装包”,支持反复安装的,同时装的时候注意一下有没有异常报错,注意一定要以管理员(root)身份执行。 2、如果还是不行,且ECS上没有重要数据,可以重置一次系统盘再试试。 如果还有问题,请将报错信息发上来,大家一起帮您诊断一下。 ------------------------- 回 150楼疯牛的帖子 首先祝贺这位同学! 回复你的问题: ECS上建立的站点不需要进行域名绑定,只需要做域名解析就可以了,在你的域名解析服务商的平台里加一条A记录,指向ECS的服务器。 ------------------------- 回 152楼原不周的帖子 按照A002教程进行完以后,就自带了phpwind论坛,这是一键WEB安装包自带的,请参考安装包的pdf说明。 ------------------------- 回 161楼fengyunk83的帖子 亲,退出VI编辑器时需要先按一下“ESC”键,然后再输入冒号和wq,教程里忘了写了,下一版更新时会加上。 这是VI的操作方法,详细步骤可以从网上搜一些相关文档学习。 ------------------------- 回 160楼小小传的帖子 如果是用真实的域名,就通过DNS解析来完成,这样所有人都可以通过域名来访问。 如果是用虚拟的域名(未正式注册的,只是测试用),可以通过修改本地PC的hosts文件来测试,其实也是一种解析的方法。 ------------------------- 回 154楼lilianzhang的帖子 暂时没有windows相关的教程,php语言在linux系统下运行得更好,推荐使用linux. ------------------------- 回 158楼fengyunk83的帖子 1、乱码没有关系,只是终端字符集问题,您可以将文档ftp下载到本地查看。 2、目录修改方法: 2.1 将WEB根目录修改为“/alidata/www/wordpress” 2.2 将phpmyadmin目录从“/alidata/www” move 到“/alidata/www/wordpress” 3、最终效果: 3.1 wordpress 可以直接通过 http://ip地址/ 来访问 3.2 phpmyadmin的访问地址变为 http://ip地址/phpmyadmin/ ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 感谢 fengyunk83整理,形成了一个整体的FAQ了! 回答你的问题: 其实离成功只差一步了哈,是我之前没有去实际测试,以为改一个目录就可以,没想到wordpress在数据库里记录了安装时的路径,也需要修改一下,具体如下图所示: wp_option 表里有两个字段(siteurl , home)记录了路径,需要去掉“/wordpress”部份,实测过去掉就完全OK了,如下图: ------------------------- 回 173楼lilianzhang的帖子 不适用,windows系统请直接用“远程桌面”管理,和本地电脑一样。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 云解析的入门帮助: https://help.aliyun.com/document_detail/dns/quick-start/hichina.html?spm=5176.product9002830_dns.4.18.KyzSsD 备案帮助入口: http://beian.aliyun.com/redian.html?spm=5176.200010.5.7.87ogNH @ fengyunk83 反馈的问题很典型,备案在中国是网站开通的必要条件,具体来说域名要指向阿里云的服务器就必须要先备案,如里之前在别的ISP备过案,需要来阿里云办理一次“备案接入”然后才可以访问。 备案的规则比较复杂,各个省的规定差异较大,请先从上面的链接去了解细节,也可以打客服电话去咨询,当然我也会和备案业务部门的同事联系,看看是否可以总结出通用的规则,录成小视频开放给大家。 关于解析的方法,请参上面的入门帮助,如有问题可以继续回复交流。 ------------------------- 回 191楼寂寞猫的帖子 亲,方便的话留个联系方式,或私信我,一定帮你解决好。 ------------------------- 回 203楼ryc0907的帖子 这个提示的意思是您的系统里没有unzip这个命令,这是一个外部命令,需要提前安装,请按照提示在命令行里输入“apt-get install unzip” 试试 ------------------------- 回 198楼伊奇的帖子 如果按照本教程一步一步操作完,最后的访问路径应该像这样: http://ip地址/wordpress/ ,如果试了还是不行,请将IP地址发上来,看看具体报错。 ------------------------- 回 195楼wqing17的帖子 应该是可以的,建议您试一下,有问题发上来,可以协助您解决。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 有个最简单的方法,下载如下文件,用xftp上传至/alidata/www目录下: http://ecsdownload.oss-cn-hangzhou.aliyuncs.com/index.html 该文件的功能是将对根目录的访问重定向到wordpress目录。 ------------------------- 回 232楼风愿的帖子 很可能是您选择的操作系统不是CentOS系列的,请从管理控制台查看一下ECS的OS版本,贴上来,或者如果ECS里没有重要数据就直接更换系统盘,换成CentOS 6.X 再重新安装。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 目录名拼写有误,是 "/alidata/www/" ------------------------- 回 260楼原不周的帖子 参考这篇文章:http://blog.unvs.cn/archives/phpmyadmin-login-error.html 一般是密码不对,或者权限不够。 你可以手工在SSH终端下试试,用命令行:“mysql -uroot -p密码”,看看能否登录。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 视频链接昨天就修好了,欢迎大家继续观看! ------------------------- 回 301楼权威地位的帖子 是不是设置了安全组? 或者SSH监听的端口不是22? ECS默认的设置一定是可以连接的。 具体问题可以加旺旺群(1253616026)沟通。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 欢迎大家学习,我们新推出了在线的自助实验平台,3月底前可以免费做实验,体验云产品的强大功能,登录地址 www.aliyunedu.net ,可用阿里云帐号直接登录。 ------------------------- 回 309楼hlz8mm的帖子 祝贺! ------------------------- 回 314楼拆桥在过河的帖子 本教程选择的是nignx,如果您对linux操作不熟悉的话,建议跟着教程一步一步走 ------------------------- 回 315楼小家子的帖子 前两个问题,请您往前看,之前我回复过优化方法。 第3条,linux的使用和维护技能,本身是一个很大的课题,也是很基础的教程,您可以在网上搜一下,有很多现成的资料可以找到。 在ECS的版块里也有很多实有的内容,希望对您有帮助: https://bbs.aliyun.com/thread/207.html?spm=5176.7189909.3.4.B68UCz ------------------------- 回 325楼fcjfamily的帖子 如果通过IP地址能正常访问, 更换为域名后出现问题,请参考前面的回复,有一个完整的说明,需要改一下数据库里记录的首页URL,有硬链接. ------------------------- 回 380楼bangmind的帖子 提示无效的用户, 换成以下两个命令,分别试试: “chown www wordpress -Rf” “chgrp www wordpress -Rf” 如果还报同样的错,估计是上一步安装的过程中没有创建www用户。 ------------------------- 回 390楼purebob的帖子 出现这个信息应该是nginx没的启动,直接start一下试试。

training 2019-12-01 23:22:03 0 浏览量 回答数 0

问题

人工智能技术百问——机器真的能取代人类吗

yq传送门 2019-12-01 20:27:57 4467 浏览量 回答数 3

回答

回45楼拆桥在过河的帖子 重新下载一次,再解压试试,安装包好多人用过的,不会有问题。 如再出错,将报错信息发上来。 ------------------------- 回66楼奇真界的帖子 亲,看到您的站点已经建好了,有问题再留言,感谢使用阿里云的服务! ------------------------- 回67楼信天游科技的帖子 感动了,欢迎使用! ------------------------- 回71楼奇真界的帖子 nginx  和 apache 的配置文件不通用,需要单独修改,改的内容可以参考,差不多。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 前面有人问过,请看第“40楼”的回复。 ------------------------- 回77楼荷西的帖子 不同版本的linux,内置的命令可能有所不同,按此方法安装应该是可以的。 ------------------------- 回81楼小敏110的帖子 具体遇到了什么问题? 说详细点,大家可以帮助你。 ------------------------- 回 85楼snabna的帖子 IP能访问吗? 域名是什么? ------------------------- 回 94楼bakabaka的帖子 亲,是“cd /root”,中间有空格 ------------------------- 回 93楼jinyumi的帖子 亲,具体遇到了什么问题?贴出来,大家帮你解决 ------------------------- 回 101楼乐乐智慧的帖子 感觉像是有特别耗CPU的大SQL在执行,否则不会卡到必须重启ECS,建议从管理控制台检查一下各种报警信息,确保ECS是正常的,同时看看RDS里面的SQL审计,看看执行时间。 ------------------------- 回 108楼deerpdean的帖子 亲,请在线咨询一下镜像的供应商,是由合作伙伴提供的。 ------------------------- 回 112楼火星了的帖子 谢谢支持! ------------------------- 回 116楼shashouhang的帖子 好样的,看样子你已经自己安装上了unzip软件,有的镜像里没有自带这个命令,需要大家自己安装。 安装指令:“yum  install unzip” ,一定要注意三个单词中间有空格。 ------------------------- 回 118楼ienpai的帖子 谢谢支持,后续会根据大家关注度较高的需求陆续录制相关教程,有什么建议大家可以论坛里直接提出来。 ------------------------- 回 126楼victoire的帖子 亲,是完全免费的 ------------------------- 回 138楼过往云烟1的帖子 是文档里有乱码吗?请使用标准的 PDF reader试试,之前没有人反馈过。 ------------------------- 回 143楼原不周的帖子 亲,一般情况下不会出现这个问题,有几个方法: 1、重新执行一遍“一键WEB安装包”,支持反复安装的,同时装的时候注意一下有没有异常报错,注意一定要以管理员(root)身份执行。 2、如果还是不行,且ECS上没有重要数据,可以重置一次系统盘再试试。 如果还有问题,请将报错信息发上来,大家一起帮您诊断一下。 ------------------------- 回 150楼疯牛的帖子 首先祝贺这位同学! 回复你的问题: ECS上建立的站点不需要进行域名绑定,只需要做域名解析就可以了,在你的域名解析服务商的平台里加一条A记录,指向ECS的服务器。 ------------------------- 回 152楼原不周的帖子 按照A002教程进行完以后,就自带了phpwind论坛,这是一键WEB安装包自带的,请参考安装包的pdf说明。 ------------------------- 回 161楼fengyunk83的帖子 亲,退出VI编辑器时需要先按一下“ESC”键,然后再输入冒号和wq,教程里忘了写了,下一版更新时会加上。 这是VI的操作方法,详细步骤可以从网上搜一些相关文档学习。 ------------------------- 回 160楼小小传的帖子 如果是用真实的域名,就通过DNS解析来完成,这样所有人都可以通过域名来访问。 如果是用虚拟的域名(未正式注册的,只是测试用),可以通过修改本地PC的hosts文件来测试,其实也是一种解析的方法。 ------------------------- 回 154楼lilianzhang的帖子 暂时没有windows相关的教程,php语言在linux系统下运行得更好,推荐使用linux. ------------------------- 回 158楼fengyunk83的帖子 1、乱码没有关系,只是终端字符集问题,您可以将文档ftp下载到本地查看。 2、目录修改方法: 2.1 将WEB根目录修改为“/alidata/www/wordpress” 2.2 将phpmyadmin目录从“/alidata/www” move 到“/alidata/www/wordpress” 3、最终效果: 3.1 wordpress 可以直接通过 http://ip地址/ 来访问 3.2 phpmyadmin的访问地址变为 http://ip地址/phpmyadmin/ ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 感谢 fengyunk83整理,形成了一个整体的FAQ了! 回答你的问题: 其实离成功只差一步了哈,是我之前没有去实际测试,以为改一个目录就可以,没想到wordpress在数据库里记录了安装时的路径,也需要修改一下,具体如下图所示: wp_option 表里有两个字段(siteurl , home)记录了路径,需要去掉“/wordpress”部份,实测过去掉就完全OK了,如下图: ------------------------- 回 173楼lilianzhang的帖子 不适用,windows系统请直接用“远程桌面”管理,和本地电脑一样。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 云解析的入门帮助: https://help.aliyun.com/document_detail/dns/quick-start/hichina.html?spm=5176.product9002830_dns.4.18.KyzSsD 备案帮助入口: http://beian.aliyun.com/redian.html?spm=5176.200010.5.7.87ogNH @ fengyunk83 反馈的问题很典型,备案在中国是网站开通的必要条件,具体来说域名要指向阿里云的服务器就必须要先备案,如里之前在别的ISP备过案,需要来阿里云办理一次“备案接入”然后才可以访问。 备案的规则比较复杂,各个省的规定差异较大,请先从上面的链接去了解细节,也可以打客服电话去咨询,当然我也会和备案业务部门的同事联系,看看是否可以总结出通用的规则,录成小视频开放给大家。 关于解析的方法,请参上面的入门帮助,如有问题可以继续回复交流。 ------------------------- Re“零基础”系列课程如何在ECS上快递搭建一个WordPress站点 在/etc/rc.local 里增加了启动脚本,如下: [root@iZ25uip3squZ ~]# more /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local /etc/init.d/mysqld start /etc/init.d/nginx start /etc/init.d/php-fpm start /etc/init.d/vsftpd start 在需要时可以自己去执行一下

training 2019-12-02 01:10:44 0 浏览量 回答数 0

回答

本文介绍如何使用弹性伸缩、消息服务和函数计算,将弹性扩张时创建的ECS实例自动添加到Redis实例的白名单。 前提条件 使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册。 已经开通云数据库Redis、消息服务、弹性伸缩和函数计算。 背景信息 使用弹性伸缩时,伸缩组可以关联负载均衡实例和云数据库RDS实例,但是暂时不能关联云数据库Redis实例。如果您将业务数据存储在Redis实例上,会需要配置伸缩组内的ECS实例加入Redis实例的访问白名单。等待ECS实例创建完成后再逐个手动添加至Redis实例白名单不仅费时费力,也容易出现失误,在维护大量实例时成本较高。 针对这种情况,您可以在伸缩组中创建生命周期挂钩,生命周期挂钩在弹性扩张时会自动向指定的MNS主题发送消息,然后通过函数计算中的MNS主题触发器,触发执行上传的代码,自动将ECS实例添加到Redis实例的白名单。 说明 请在相同地域创建消息服务主题和函数计算服务,相同区域内的产品内网可以互通。 自动化管理实践-添加ECS实例到Redis白名单流程 本文以Java语言的形式给出示例代码,您可以根据业务需求,将此类最佳实践扩展到其它语言。 操作步骤 执行以下操作自动将伸缩组ECS实例添加到Redis实例白名单: 步骤一:创建Redis实例 步骤二:创建MNS主题和MNS队列 步骤三:创建伸缩组和生命周期挂钩 步骤四:创建服务和函数 步骤一:创建Redis实例 登录云数据库Redis控制台。 创建一台Redis实例。 具体操作请参见创建Redis实例,用于为自动创建的ECS实例提供数据库服务。 查看Redis实例的白名单,确定执行代码前的白名单状态。 自动化管理实践-查看Redis实例白名单 步骤二:创建MNS主题和MNS队列 登录消息服务控制台。 创建一个MNS主题。 用作执行函数的触发器,本示例主题的名称为fc-trigger。自动化管理实践-创建MNS主题消息 创建一个MNS队列。 用作函数执行结果的接收器,本示例队列的名称为fc-callback。示例代码中通过QUEUE_NAME指定该队列,发送包含函数执行结果的消息。自动化管理实践-创建MNS队列消息 步骤三:创建伸缩组和生命周期挂钩 登录弹性伸缩控制台。 创建一个伸缩组。 具体操作请参见创建伸缩组或者使用实例启动模板创建伸缩组。 创建一个生命周期挂钩。 具体操作请参见创建生命周期挂钩。 适用的伸缩活动类型配置为弹性扩张活动,用于通知弹性扩张事件。 通知方式配置为MNS主题,与MNS队列相比,主题可以通知多个订阅者,执行多种操作。 MNS主题配置为fc-trigger,用于在自动创建的ECS实例进入加入挂起中状态时执行代码,将ECS实例添加到云数据库Redis的白名单。 根据需要配置其它选项。 步骤四:创建服务和函数 登录函数计算控制台。 新建一个服务。 具体操作请参见创建服务,用于承载需要执行的函数,本示例服务的名称为as-hook-mns-fc-redis。自动化管理实践-创建函数计算服务 在服务下新建函数,订阅MNS主题并上传代码。 具体操作请参见新建函数。 在函数模板页面中,选择空白函数。 在触发器配置页面中,选择MNS 主题触发器,然后根据需要配置其它选项。 自动化管理实践-配置函数触发器 在基础管理配置页面中,所在服务配置为as-hook-mns-fc-redis,函数入口配置为fc.Example::handleRequest,然后根据需要配置其它选项。 函数入口由代码决定,请根据实际情况配置。 本文示例采用上传jar包,实现将自动创建的ECS实例添加到云数据库Redis的白名单。有关编程语言说明,请参见函数计算Java编程说明。 自动化管理实践-配置函数基础信息自动化管理实践-配置函数基础信息-函数入口 在权限配置页面中,根据需要授予函数访问其它资源的权限,并授予消息服务调用函数的权限。 说明 建议遵循权限最小化原则,仅授予必需的权限,防范潜在风险。 自动化管理实践-配置权限-函数计算操作其它资源自动化管理实践-配置权限-调用函数 在信息核对页面中,核对函数信息和触发器信息,然后单击创建。 执行效果 配置完成后,执行效果如下: 在满足弹性扩张的条件时,伸缩组触发伸缩活动,自动创建ECS实例。 生命周期挂钩挂起伸缩活动,同时发送消息到MNS主题。 函数计算中,MNS主题触发器触发函数执行过程,并将消息内容作为输入信息(包括ECS实例的ID等信息),执行Java代码。 代码执行时,会通过接口获取ECS实例的私网IP,然后将私网IP添加到Redis实例的白名单(default 分组)。 代码执行结果会发送到MNS队列fc-callback,您可以在消息服务控制台查看结果详情。查看消息内容中success为true,即表明ECS实例成功添加到了Redis实例的白名单。自动化管理实践-查看执行效果 您还可以继续消费MNS队列中的消息,比如获取success、LifecycleHookId和LifecycleActionToken,编程提前结束生命周期挂钩。 上述最佳实践供您参考,您也在其它场景下通过多款产品实现自动化管理,从而更加灵活地管理伸缩组内的资源。 示例代码 示例代码仅供参考,请结合具体业务进行测试改造。主要功能涉及四个java文件,通过Maven管理,目录结构如下: 自动化管理实践-Jar包结构 Maven依赖如下: 4.0.0 com.aliyun.fc.wujin demo 1.0-SNAPSHOT com.aliyun aliyun-java-sdk-ecs 4.10.1 com.aliyun.fc.runtime fc-java-core 1.0.0 com.aliyun aliyun-java-sdk-core 3.2.6 com.aliyun aliyun-java-sdk-r-kvstore 2.0.3 com.alibaba fastjson 1.2.25 org.springframework spring-context 4.2.5.RELEASE org.apache.httpcomponents httpclient 4.5.2 org.apache.commons com.springsource.org.apache.commons.lang 2.6.0 com.aliyun.mns aliyun-sdk-mns 1.1.8.4 maven-assembly-plugin 3.1.0 jar-with-dependencies false make-assembly package single org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 Example.java代码如下: package fc; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.aliyun.fc.runtime.Context; import com.aliyun.fc.runtime.StreamRequestHandler; import com.aliyun.mns.client.CloudAccount; import com.aliyun.mns.client.CloudQueue; import com.aliyun.mns.client.MNSClient; import com.aliyun.mns.model.Message; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest; import com.aliyuncs.ecs.model.v20140526.DescribeInstancesResponse; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.aliyuncs.r_kvstore.model.v20150101.DescribeSecurityIpsRequest; import com.aliyuncs.r_kvstore.model.v20150101.DescribeSecurityIpsResponse; import com.aliyuncs.r_kvstore.model.v20150101.ModifySecurityIpsRequest; import model.FCResult; import model.HookModel; import model.MnsMessageModel; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.StringUtils; import org.springframework.util.CollectionUtils; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Example implements StreamRequestHandler { /** * 专有网络类型,此参数不用变 */ private static final String VPC_NETWORK = "vpc"; private static final String CHAR_SET = "UTF-8"; /** * 接收input数组大小,4096通常够用 */ private static final Integer MAX_BYTE_LENGTH = 4096; /** * REDIS 白名单默认分组 */ private static final String DEFAULT_SECURITY_GROUP_NAME = "default"; /** * REDIS 修改白名单的模式 */ private static final String MODIFY_MODE_APPEND = "Append"; /** * MNS 客户端发送消息地址 */ private static final String MNS_END_POINT = "http://%s.mns.%s.aliyuncs.com/"; /** * 待添加的REDIS实例ID,根据个人情况替换 */ private static final String REDIS_ID = ""; /** * 接收本次函数计算执行结果的队列名称,根据个人情况替换 */ private static final String QUEUE_NAME = "wujin-fc-callback"; /** * 阿里云账号UID,根据跟人情况替换 */ private static final Long USER_ID = 1111111111111111111L; /** * 伸缩组 MNS FC 所属的region,根据个人情况替换 */ private static final String REGION_ID = "cn-hangzhou"; @Override public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) { FCResult result = new FCResult(); String akId = context.getExecutionCredentials().getAccessKeyId(); String akSecret = context.getExecutionCredentials().getAccessKeySecret(); String securityToken = context.getExecutionCredentials().getSecurityToken(); try { //获取MNS触发函数计算时输入的内容 String input = readInput(inputStream); MnsMessageModel mnsMessageModel = JSON.parseObject(input, new TypeReference<MnsMessageModel>() { }); if (mnsMessageModel == null) { result.setSuccess(false); result.setMessage("mnsMessageModel is null"); sendMns(akId, akSecret, securityToken, result.toString()); return; } HookModel contentModel = mnsMessageModel.getContent(); if (contentModel == null) { result.setSuccess(false); result.setMessage("contentModel is null"); sendMns(akId, akSecret, securityToken, result.toString()); return; } IAcsClient client = buildClient(akId, akSecret, securityToken); //获取本次伸缩活动对应实例的私网IP List<String> privateIps = getInstancesPrivateIps(contentModel.getInstanceIds(), client); if (CollectionUtils.isEmpty(privateIps)) { result.setSuccess(false); result.setMessage("privateIps is empty"); sendMns(akId, akSecret, securityToken, result.toString()); return; } List<String> needAppendIps = filterPrivateIpsForAppend(privateIps, client); if (!CollectionUtils.isEmpty(needAppendIps)) { modifySecurityIps(client, needAppendIps); result.setLifecycleHookId(contentModel.getLifecycleHookId()); result.setLifecycleActionToken(contentModel.getLifecycleActionToken()); sendMns(akId, akSecret, securityToken, result.toString()); } } catch (Exception ex) { result.setSuccess(false); result.setMessage(ex.getMessage()); sendMns(akId, akSecret, securityToken, result.toString()); } } /** * 构建请求 ECS Redis 接口客户端 * * @param akId * @param akSecret * @param securityToken * @return */ private IAcsClient buildClient(String akId, String akSecret, String securityToken) { IClientProfile clientProfile = DefaultProfile.getProfile(REGION_ID, akId, akSecret, securityToken); return new DefaultAcsClient(clientProfile); } /** * 将执行结果发送消息到MNS * * @param ak * @param aks * @param securityToken * @param msg */ private void sendMns(String ak, String aks, String securityToken, String msg) { MNSClient client = null; try { CloudAccount account = new CloudAccount(ak, aks, String.format(MNS_END_POINT, USER_ID, REGION_ID), securityToken); client = account.getMNSClient(); CloudQueue queue = client.getQueueRef(QUEUE_NAME); Message message = new Message(); message.setMessageBody(msg); queue.putMessage(message); } finally { if (client != null) { client.close(); } } } /** * 过滤出需要添加到redis的私网IP * * @param privateIps 过滤以前的私网IP * @param client * @return * @throws ClientException */ private List<String> filterPrivateIpsForAppend(List<String> privateIps, IAcsClient client) throws ClientException { List<String> needAppendIps = new ArrayList<>(); if (CollectionUtils.isEmpty(privateIps)) { return needAppendIps; } DescribeSecurityIpsRequest request = new DescribeSecurityIpsRequest(); request.setInstanceId(REDIS_ID); DescribeSecurityIpsResponse response = client.getAcsResponse(request); List<DescribeSecurityIpsResponse.SecurityIpGroup> securityIpGroups = response .getSecurityIpGroups(); if (CollectionUtils.isEmpty(securityIpGroups)) { return privateIps; } for (DescribeSecurityIpsResponse.SecurityIpGroup securityIpGroup : securityIpGroups) { if (!securityIpGroup.getSecurityIpGroupName().equals(DEFAULT_SECURITY_GROUP_NAME)) { continue; } String securityIps = securityIpGroup.getSecurityIpList(); if (securityIps == null) { continue; } String[] securityIpList = securityIps.split(","); List<String> existIps = Arrays.asList(securityIpList); if (CollectionUtils.isEmpty(existIps)) { continue; } for (String ip : privateIps) { if (!existIps.contains(ip)) { needAppendIps.add(ip); } } } return privateIps; } /** * 修改REDIS实例DEFAULT分组私网IP白名单 * * @param client * @param needAppendIps * @throws ClientException */ private void modifySecurityIps(IAcsClient client, List<String> needAppendIps) throws ClientException { if (CollectionUtils.isEmpty(needAppendIps)) { return; } ModifySecurityIpsRequest request = new ModifySecurityIpsRequest(); request.setInstanceId(REDIS_ID); String ip = StringUtils.join(needAppendIps.toArray(), ","); request.setSecurityIps(ip); request.setSecurityIpGroupName(DEFAULT_SECURITY_GROUP_NAME); request.setModifyMode(MODIFY_MODE_APPEND); client.getAcsResponse(request); } /** * 获取输入,并base64解码 * * @param inputStream * @return * @throws IOException */ private String readInput(InputStream inputStream) throws IOException { try { byte[] bytes = new byte[MAX_BYTE_LENGTH]; int tmp; int len = 0; //循环读取所有内容 while ((tmp = inputStream.read()) != -1 && len < MAX_BYTE_LENGTH) { bytes[len] = (byte) tmp; len++; } inputStream.close(); byte[] act = new byte[len]; System.arraycopy(bytes, 0, act, 0, len); return new String(Base64.decodeBase64(act), CHAR_SET); } finally { inputStream.close(); } } /** * 获取实例列表对应的私网IP,并限制每次请求实例数量不超过100 * * @param instanceIds 实例列表 * @param client 请求客户端 * @return * @throws Exception */ public List<String> getInstancesPrivateIps(List<String> instanceIds, IAcsClient client) throws Exception { List<String> privateIps = new ArrayList<>(); if (CollectionUtils.isEmpty(instanceIds)) { return privateIps; } int size = instanceIds.size(); int queryNumberPerTime = 100; int batchCount = (int) Math.ceil((float) size / (float) queryNumberPerTime); //support 100 instance for (int i = 1; i <= batchCount; i++) { int fromIndex = queryNumberPerTime * (i - 1); int toIndex = Math.min(queryNumberPerTime * i, size); List<String> subList = instanceIds.subList(fromIndex, toIndex); DescribeInstancesRequest request = new DescribeInstancesRequest(); request.setInstanceIds(JSON.toJSONString(subList)); DescribeInstancesResponse response = client.getAcsResponse(request); List<DescribeInstancesResponse.Instance> instances = response.getInstances(); if (CollectionUtils.isEmpty(instances)) { continue; } for (DescribeInstancesResponse.Instance instance : instances) { String privateIp = getPrivateIp(instance); if (privateIp != null) { privateIps.add(privateIp); } } } return privateIps; } /** * 从 DescribeInstancesResponse.Instance 中解析出私网 IP * * @param instance DescribeInstancesResponse.Instance */ private String getPrivateIp(DescribeInstancesResponse.Instance instance) { String privateIp = null; if (VPC_NETWORK.equalsIgnoreCase(instance.getInstanceNetworkType())) { DescribeInstancesResponse.Instance.VpcAttributes vpcAttributes = instance .getVpcAttributes(); if (vpcAttributes != null) { List<String> privateIpAddress = vpcAttributes.getPrivateIpAddress(); if (!CollectionUtils.isEmpty(privateIpAddress)) { privateIp = privateIpAddress.get(0); } } } else { List<String> innerIpAddress = instance.getInnerIpAddress(); if (!CollectionUtils.isEmpty(innerIpAddress)) { privateIp = innerIpAddress.get(0); } } return privateIp; } } FCResult.java代码如下: package model; import com.alibaba.fastjson.JSON; public class FCResult { private boolean success = true; private String lifecycleHookId; private String lifecycleActionToken; private String message; public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getLifecycleHookId() { return lifecycleHookId; } public void setLifecycleHookId(String lifecycleHookId) { this.lifecycleHookId = lifecycleHookId; } public String getLifecycleActionToken() { return lifecycleActionToken; } public void setLifecycleActionToken(String lifecycleActionToken) { this.lifecycleActionToken = lifecycleActionToken; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } @Override public String toString() { return JSON.toJSONString(this); } } HookModel.java代码如下: package model; import java.util.List; public class HookModel { private String lifecycleHookId; private String lifecycleActionToken; private String lifecycleHookName; private String scalingGroupId; private String scalingGroupName; private String lifecycleTransition; private String defaultResult; private String requestId; private String scalingActivityId; private List<String> instanceIds; public String getLifecycleHookId() { return lifecycleHookId; } public void setLifecycleHookId(String lifecycleHookId) { this.lifecycleHookId = lifecycleHookId; } public String getLifecycleActionToken() { return lifecycleActionToken; } public void setLifecycleActionToken(String lifecycleActionToken) { this.lifecycleActionToken = lifecycleActionToken; } public String getLifecycleHookName() { return lifecycleHookName; } public void setLifecycleHookName(String lifecycleHookName) { this.lifecycleHookName = lifecycleHookName; } public String getScalingGroupId() { return scalingGroupId; } public void setScalingGroupId(String scalingGroupId) { this.scalingGroupId = scalingGroupId; } public String getScalingGroupName() { return scalingGroupName; } public void setScalingGroupName(String scalingGroupName) { this.scalingGroupName = scalingGroupName; } public String getLifecycleTransition() { return lifecycleTransition; } public void setLifecycleTransition(String lifecycleTransition) { this.lifecycleTransition = lifecycleTransition; } public String getDefaultResult() { return defaultResult; } public void setDefaultResult(String defaultResult) { this.defaultResult = defaultResult; } public String getRequestId() { return requestId; } public void setRequestId(String requestId) { this.requestId = requestId; } public String getScalingActivityId() { return scalingActivityId; } public void setScalingActivityId(String scalingActivityId) { this.scalingActivityId = scalingActivityId; } public List<String> getInstanceIds() { return instanceIds; } public void setInstanceIds(List<String> instanceIds) { this.instanceIds = instanceIds; } } MnsMessageModel.java代码如下: package model; public class MnsMessageModel { private String userId; private String regionId; private String resourceArn; private HookModel content; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getRegionId() { return regionId; } public void setRegionId(String regionId) { this.regionId = regionId; } public String getResourceArn() { return resourceArn; } public void setResourceArn(String resourceArn) { this.resourceArn = resourceArn; } public HookModel getContent() { return content; } public void setContent(HookModel content) { this.content = content; } }

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