• 关于 ip_times 的搜索结果

回答

详细解答可以参考官方帮助文档目前如果要暴露 TCP 协议的服务,需要您自行设置负载均衡实例或者公网 IP,并配置好主机端口与容器端口的映射(通过阿里云扩展标签lb 来实现)。 Note 如果要使用负载均衡实例,您需要购买一个新的负载均衡实例。多个服务不能共享使用同一个负载均衡实例,同时不能共享使用集群默认负载均衡实例。 适用场景: 4 层协议的负载均衡,自定义各服务的路由,在将传统架构迁移到容器架构过程中非容器集群的服务访问容器集群中的服务。 示例: 通过自定义负载均衡的方式来将容器集群内的 Redis 服务暴露给容器集群外的 Python 应用。 首先在负载均衡管理控制台负载均衡管理控制台 (单击页面右上角的创建负载均衡)购买创建一个用于路由的负载均衡实例。 本示例中选择的是公网实例,您可以根据自己的需要选择公网或者私网。 Note 由于负载均衡不支持跨地域(Region)部署,因此应选择与您所使用容器服务集群相同的地域。 返回负载均衡管理控制台,将购买创建的负载均衡实例命名为 slb_redis_app。容器服务能通过该名称来引用这个负载均衡实例。您也可以通过负载均衡实例 ID 来引用。 单击左侧导航栏中的 实例管理,选择实例所在的地域 > 选择所需实例 > 编辑实例的名称并单击 确定。 创建监听端口。 单击实例右侧的 管理,单击左侧导航栏中的 监听 > 添加监听 > 设置监听配置 。创建协议为 TCP,端口映射为 6379:6379。如下图所示。 登录容器服务管理控制台,选择一个已有集群,创建一个名称为 redis-demo 的应用,单击使用镜像创建。 有关如何创建应用,参见创建应用。 Note 由于负载均衡不支持跨地域(Region)部署,因此您所使用的容器服务集群需要和上边创建的负载均衡实例处于相同的地域。 选择 Redis 镜像并设置端口映射。 Note 此处 Redis 镜像只是开通了容器的 6379 端口,为了使创建的负载均衡路由到这个容器端口,您必须指定 Redis 镜像的主机端口:容器端口的映射。 在 端口映射中,指定主机端口为 6379,主机端口 6379 即为负载均衡实例绑定的后端主机端口,选择使用的协议为 TCP. 为了配置自定义负载均衡,需要让 Redis 服务知道使用的负载均衡实例的信息。您可以通过向服务注入一个标签来实现或者通过设置负载均衡路由配置。 向服务注入一个标签。本示例中,标签为 aliyun.lb.port_6379: tcp://slb_redis_app:6379。 标签格式如下,带 $ 的变量为占位符。 aliyun.lb.port_$container_port:$scheme://$[slb_name|slb_id]:$front_port $container_port 表示容器要暴露的端口。 $scheme表示负载均衡实例监听端口支持的协议,可能的值为 tcp、http、https、udp。 $[slb_name|slb_id] 表示可以填写负载均衡实例的名称或者 ID。 $front_port 表示负载均衡实例要暴露的前端端口。 更多详细信息,参见阿里云扩展标签lb。 在创建应用页面,单击负载均衡路由配置右侧的加号图标,设置要配置的负载均衡实例的信息,如下图所示。 该设置对应的标签内容为 aliyun.lb.port_6379: tcp://slb_redis_app:6379。 本示例中,路由到的容器端口为 6379,引用前面创建的负载均衡实例名称 slb_redis_app,与上面主机端口:容器端口的映射设置的 TCP 协议相呼应,本示例设置监听端口的协议为 TCP 协议,同时设置负载均衡的前端端口为 6379。 Note 本示例中,同时将负载均衡实例的前端端口、后端端口(即主机的端口)和容器端口均设置为 6379,您可以根据自己的需要设置不同的前端端口和主机端口。 单击创建,Redis 应用即开始创建了。Redis 应用在创建的过程中会自动将名称为 slb_redis_app 的负载均衡实例绑定到部署了 redis 镜像的后端主机。 当应用处于就绪状态后,登录负载均衡管理控制台,查看名为 slb_redis_app 的负载均衡实例的状态。 单击左侧导航栏中的实例管理,选择实例所在的地域 > 选择所需实例 > 单击实例右侧的管理 > 单击左侧导航栏中的服务器 > 后端服务器。 由健康状态可见,负载均衡已经正确地绑定到了 Redis 的后端。 您可以在负载均衡管理控制台 的实例管理页面查看负载均衡实例的 IP 地址,并使用命令行工具 telnet $Server_Load_Balancer_IP_address 6379 来检查端口的可访问性。 为了测试以上配置,在本地运行一个简单的 Python 应用来通过 slb_redis_app 负载均衡实例访问容器集群内的 Redis。 Note Redis 主机地址是负载均衡的 IP 地址。 app.pyfrom flask import Flask from redis import Redis app = Flask(__name__) redis = Redis(host='$Server_Load_Balancer_IP_address', port=6379) @app.route('/') def hello(): redis.incr('hits') return 'Hello World! I have been seen %s times.' % redis.get('hits') if __name__ == "__main__": app.run(host="0.0.0.0", debug=True)requirements.txtflask redisshell$ pip install -r requirements.txt $ python app.py Running on http://0.0.0.0:5000/ ## Press CTRL+C to quit Restarting with stat Debugger is active! Debugger pin code: 243-626-653 访问结果如下图所示。

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

问题

关于json-lib转json的问题

蛮大人123 2019-12-01 20:26:54 920 浏览量 回答数 1

问题

一个关于json-lib转json的小问题

杨冬芳 2019-12-01 20:18:01 817 浏览量 回答数 1

试用中心

为您提供0门槛上云实践机会,企业用户最高免费12个月

问题

Swarm 集群  服务发现和负载均衡  负载均衡路由

青蛙跳 2019-12-01 21:36:24 612 浏览量 回答数 0

回答

Re关于RDS的性能 ping的数据如下: ds.aliyuncs.com (ip) 56(84) bytes of data. 64 bytes from ip: icmp_req=1 ttl=54 time=1.21 ms 64 bytes from ip: icmp_req=2 ttl=54 time=1.21 ms 64 bytes from ip: icmp_req=3 ttl=54 time=1.23 ms 64 bytes from ip: icmp_req=4 ttl=54 time=1.20 ms 看起来还好 ------------------------- 回1楼小猪猪的帖子 嗯,我试试用hibernate 2nd level cache,减少数据库的直接访问 ------------------------- 回2楼mayle的帖子 ping的数据还好,1.x ms 那现在的解释可能是,链接建立时间? 我是新手,配置mysql有个connection pool,这算是使用了长连接吗? 谢谢! ------------------------- 回7楼mayle的帖子 我用的java melody做的profiling 今天我打开了memcache,从而减少数据库访问,request的处理时间明显下降。 进一步说明,确实是因为访问数据库造成了性能下降。 另外,值得注意的是:数据库操作时间跟数据库sql hit的个数呈线性关系(我观察了大概10几个request,需要我也可以贴图),大概一个hit需费时4ms;这说明应该不是短长链接引起的; 我截了图,只放了一个request的数据;第一行是memcache打开之前的,第二行是memcache打开之后的数据。 ------------------------- Re关于RDS的性能 忘了说了,最后两列是数据库相关的。其中,最后一列是ms,倒数第二列是sql hit count 第四列绿色的数字,是request总耗时。 ------------------------- 回11楼mayle的帖子 刚刚申请加入了,能否帮忙转贴下分析结果。我现在进去,之前的聊天记录我应该看不到的吧 ------------------------- Re关于RDS的性能 我刚刚弄了一张最小的表,然后在RDS以及本地的数据库上都通过rest api进行操作,每个操作都只是简单的一个select 数据如下 第一行是数据库在RDS的性能,可以明显看到每个sql hit的mean time为3ms 第二行是数据库在本地(本地是个性能非常一般的机器),每个sqlhit的mean time为0(说明小于1ms) 期待大牛解释 ------------------------- Re关于RDS的性能 #include <mysql/mysql.h>#include <stdio.h>#include <unistd.h>#include <time.h>int main(void) {   MYSQL *conn;   MYSQL_RES *res;   MYSQL_ROW row;  /* Change me */   char *server = "rdsql.rds.aliyuncs.com";   char *user = "userXXX";   char *password = "XXXXX";   char *database = "XXXX";      conn = mysql_init(NULL);      /* Connect to database */   if (!mysql_real_connect(conn, server,         user, password, database, 0, NULL, 0)) {      fprintf(stderr, "%s\n", mysql_error(conn));      exit(1);   }      struct timeval start, end;   long secs_used,micros_used;   gettimeofday(&start, NULL);   char *sql_cmd = "SELECT * FROM user where id=11";   /* send SQL query */   if (mysql_query(conn, sql_cmd)) {      fprintf(stderr, "%s\n", mysql_error(conn));      exit(1);   }   gettimeofday(&end, NULL);   printf("start: %d secs, %d usecs\n",start.tv_sec,start.tv_usec);   printf("end: %d secs, %d usecs\n",end.tv_sec,end.tv_usec);   secs_used=(end.tv_sec - start.tv_sec); //avoid overflow by subtracting first   micros_used= ((secs_used*1000000) + end.tv_usec) - (start.tv_usec);   printf("Execute SQL %s micros_used: %d\n",sql_cmd, micros_used);   res = mysql_use_result(conn);   int num_fields = mysql_num_fields(res);   /* output table name */   printf("Result of %s is :\n", sql_cmd);   while ((row = mysql_fetch_row(res)) != NULL) {      int i;      for (i = 0; i < num_fields; i++) {          printf("%s ", row ? row : "NULL");      }      printf("\n");   }   /* close connection */   mysql_free_result(res);   mysql_close(conn);    return 0;} ------------------------- Re关于RDS的性能 gcc -o select_one_row mysql_select_one_row.c -lmysqlclient------------------------- Re关于RDS的性能 总结一下,使用RDS,肯定会比local的mysql要慢。具体是一个sql select操作,RDS大概会费时3到4ms,而local的mysql server,大概是0.4到0.5ms。原因应该就是网络延迟,ping rds大概是1.3ms;本来我不理解的是,local的0.4ms 加上网络延迟1.3ms,到了RDS最多也就是2ms,怎么会变成3到4ms;可能的解释是,ping也就是一个来回,而且是比较简单的网络协议;sql操作可能会涉及到一些握手行为,多加一个来回,就是多1ms多。------------------------- Re关于RDS的性能 嗯,看我代码,profile相关的代码,只是包含了select 操作,没有包含建立链接以及关闭链接------------------------- 回23楼joyzheng的帖子 第一个问题见20楼第二个问题,我的理解,是的------------------------- Re关于RDS的性能 最后回复下21楼,2000次的select,平均下来的sql操作也是3.x msstart: 1410340266 secs, 704180 usecsend: 1410340274 secs, 412382 usecsExecute SQL SELECT * FROM user where id=%d 2000 times, average micros_used: 3854  

打靶归来 2019-12-02 00:19:53 0 浏览量 回答数 0

问题

有没有相关的python工程师把我调式好下面这段测网速的代码???报错了?报错

爱吃鱼的程序员 2020-06-10 15:03:30 0 浏览量 回答数 1

问题

我执行一段python脚本报错了,怎么解决??报错

爱吃鱼的程序员 2020-06-10 14:43:12 0 浏览量 回答数 1

问题

Spark on Yarn 使用Docker Container 400 请求报错 

kun坤 2020-05-29 23:06:16 0 浏览量 回答数 1

问题

服务发现和负载均衡的负载均衡路由

反向一觉 2019-12-01 21:20:19 1699 浏览量 回答数 0

回答

strong consistency across distributed node not supported 不支持全局强一致 报错信息:strong consistency across distributed node not supported OB版本:  1.x 报错原因: OceanBase 1.x 版本不支全局一致性查询。在1.x版本里,当SQL要查询的数据分布在不同OBServer节点上时,由于没有内置全局时钟,所以无法获取不同OBServer节点上同一个时刻的数据。 解决办法: 1. 在1.x版本里。如果SQL访问的是多个表,且表之间有业务联系,则将多个表设置为相同的表分组(tablegroup)可以规避这个问题;如果SQL访问的是单个分区表,且能接受延时,可以使用弱一致读hint来规避报错;否则,暂时无解。  弱一致读hint详情请参考官方文档 弱一致读(ob_read_consistency) 2. 计划在2.1版本里,支持全局一致性查询,就没有这个问题。 ------------------------- ERROR 4624 (HY000): machine resource is not enough to hold a new unit 报错信息:ERROR 4624 (HY000): machine resource is not enough to hold a new unit OB版本:所有版本 报错原因:     OceanBase从某个角度来说就是将一批机器的资源(CPU/Memory/Disk)聚合在一起形成一个大的“资源池”,然后再从里面分配资源。每个租户都得绑定至少一个Resource Pool。Resource Pool就是从原始的“资源池”里创建出来的。每个Resource Pool由N个相同的Unit组成。每个Unit在某个具体的OBServer内部分配。当创建新的Resource Pool或者调大老的Resource Pool规格时,可能会因为没有OBServer可以分配出对应规格的Unit而报错。 解决办法:     重新计算可用资源,调制分配资源的SQL里的规格。如果可用资源确实不够用,那就先补充机器资源或者释放不用的租户资源,然后再重试。 ------------------------- OceanBase是否开源? 汇总一下有关OceanBase和开源相关的问题的答案。 1. OceanBase 0.4曾经开源,地址为 alibaba/oceanbase 。 喜欢看代码的从中可以学习到一些分布式数据库开发经验。 2. OceanBase从1.0版本不再开源,架构上做了很大的重构,对SQL和存储功能都有加强。不过关于LSM结构、冻结合并的原理没有大变。当前版本进入2.0。将来是否开源目前并无信息。 3. OceanBase 在用户体验上像MySQL,但是绝不是MySQL,也不是基于MySQL版本修改的,不是基于Postgre修改的,不是基于其他任何开源的产品修改的。OceanBase是蚂蚁自主研发的纯粹的分布式数据库,产品开发过程中,特别注意避免侵犯其他公司专利。所以OceanBase是按照一个商业通用数据库去规划设计的。 4. 随时欢迎开发能力很强的同学加入OceanBase内核开发团队。 ------------------------- OceanBase支持分布式事务吗? OceanBase提供多租户能力(租户就是实例)。租户内的分布式事务需求,OceanBase是满足的。原理是两阶段提交协议,强一致。OceanBase对分布式事务两阶段提交过程做了一些优化,性能有提升。如果业务的事务范围超出了租户(实例)的边界,则必须借助第三方分布式事务中间件框架或者应用自己实现分布式事务。蚂蚁SOFA的分布式事务框架DTX支持三种分布式事务方法,即XA、TCC和FMT.其中TCC和FMT都是最终一致。 ------------------------- Q: OceanBase里创建索引是立即生效吗?唯一索引呢?A: 分场景。 如果是在create table里带上了索引(包括唯一索引,也就是唯一性约束),是立即生效的。OB 1.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,但是索引不是立即生效。需要等到OB集群发起大合并之后才会生效。其中唯一索引需要等待两次大合并。所以运维建索引后需要安排1-2次大合并操作。OB 2.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,索引也不是立即生效,但是索引开始后台异步创建,创建时间取决于数据量。 示例如下: 1. OB 1.x 版本的索引 2. OB 2.x 版本的索引 ------------------------- OceanBase合并触发条件 Q:OceanBase什么时候会触发「合并」? A: OceanBase的数据写之前事务日志redo会及时落盘,但是数据的增量修改会一直在OB的增量内存memtable里,每天会落盘一次,这个就是合并。合并时间可以设定(major_freeze_duty_time)。另外,如果memtable使用率超过阈值(freeze_trigger_percentage),就会触发「冻结」,然后就是minor compaction,以及「转储」操作。转储会释放memtable内存,增量数据被输出到磁盘上,转储有次数限制(最大由参数minor_freeze_times),这个次数用完了就会触发「合并」。合并会比较耗OB的资源,时间长短取决于有多少增量数据要跟基线数据合并。 ## 查看冻结转储参数SHOW parameters WHERE NAME IN ('enable_major_freeze','minor_freeze_times','freeze_trigger_percentage','major_freeze_duty_time') AND svr_ip IN ('11.166.175.6');## 触发冻结合并ALTER system major freeze;SELECT sleep(1);## 查看冻结合并历史SELECT str_to_date(h.gmt_create,'%Y-%m-%d %h:%i:%s') gmt_create, module, EVENT,name1,value1,name2,value2 FROM __all_rootservice_event_history hWHERE h.module IN ('daily_merge','major_freeze', 'root_service')ORDER BY gmt_create DESC LIMIT 50; 示例:

mq4096 2019-12-02 00:40:00 0 浏览量 回答数 0

回答

strong consistency across distributed node not supported 不支持全局强一致 报错信息:strong consistency across distributed node not supported OB版本:  1.x 报错原因: OceanBase 1.x 版本不支全局一致性查询。在1.x版本里,当SQL要查询的数据分布在不同OBServer节点上时,由于没有内置全局时钟,所以无法获取不同OBServer节点上同一个时刻的数据。 解决办法: 1. 在1.x版本里。如果SQL访问的是多个表,且表之间有业务联系,则将多个表设置为相同的表分组(tablegroup)可以规避这个问题;如果SQL访问的是单个分区表,且能接受延时,可以使用弱一致读hint来规避报错;否则,暂时无解。  弱一致读hint详情请参考官方文档 弱一致读(ob_read_consistency) 2. 计划在2.1版本里,支持全局一致性查询,就没有这个问题。 ------------------------- ERROR 4624 (HY000): machine resource is not enough to hold a new unit 报错信息:ERROR 4624 (HY000): machine resource is not enough to hold a new unit OB版本:所有版本 报错原因:     OceanBase从某个角度来说就是将一批机器的资源(CPU/Memory/Disk)聚合在一起形成一个大的“资源池”,然后再从里面分配资源。每个租户都得绑定至少一个Resource Pool。Resource Pool就是从原始的“资源池”里创建出来的。每个Resource Pool由N个相同的Unit组成。每个Unit在某个具体的OBServer内部分配。当创建新的Resource Pool或者调大老的Resource Pool规格时,可能会因为没有OBServer可以分配出对应规格的Unit而报错。 解决办法:     重新计算可用资源,调制分配资源的SQL里的规格。如果可用资源确实不够用,那就先补充机器资源或者释放不用的租户资源,然后再重试。 ------------------------- OceanBase是否开源? 汇总一下有关OceanBase和开源相关的问题的答案。 1. OceanBase 0.4曾经开源,地址为 alibaba/oceanbase 。 喜欢看代码的从中可以学习到一些分布式数据库开发经验。 2. OceanBase从1.0版本不再开源,架构上做了很大的重构,对SQL和存储功能都有加强。不过关于LSM结构、冻结合并的原理没有大变。当前版本进入2.0。将来是否开源目前并无信息。 3. OceanBase 在用户体验上像MySQL,但是绝不是MySQL,也不是基于MySQL版本修改的,不是基于Postgre修改的,不是基于其他任何开源的产品修改的。OceanBase是蚂蚁自主研发的纯粹的分布式数据库,产品开发过程中,特别注意避免侵犯其他公司专利。所以OceanBase是按照一个商业通用数据库去规划设计的。 4. 随时欢迎开发能力很强的同学加入OceanBase内核开发团队。 ------------------------- OceanBase支持分布式事务吗? OceanBase提供多租户能力(租户就是实例)。租户内的分布式事务需求,OceanBase是满足的。原理是两阶段提交协议,强一致。OceanBase对分布式事务两阶段提交过程做了一些优化,性能有提升。如果业务的事务范围超出了租户(实例)的边界,则必须借助第三方分布式事务中间件框架或者应用自己实现分布式事务。蚂蚁SOFA的分布式事务框架DTX支持三种分布式事务方法,即XA、TCC和FMT.其中TCC和FMT都是最终一致。 ------------------------- Q: OceanBase里创建索引是立即生效吗?唯一索引呢?A: 分场景。 如果是在create table里带上了索引(包括唯一索引,也就是唯一性约束),是立即生效的。OB 1.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,但是索引不是立即生效。需要等到OB集群发起大合并之后才会生效。其中唯一索引需要等待两次大合并。所以运维建索引后需要安排1-2次大合并操作。OB 2.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,索引也不是立即生效,但是索引开始后台异步创建,创建时间取决于数据量。 示例如下: 1. OB 1.x 版本的索引 2. OB 2.x 版本的索引 ------------------------- OceanBase合并触发条件 Q:OceanBase什么时候会触发「合并」? A: OceanBase的数据写之前事务日志redo会及时落盘,但是数据的增量修改会一直在OB的增量内存memtable里,每天会落盘一次,这个就是合并。合并时间可以设定(major_freeze_duty_time)。另外,如果memtable使用率超过阈值(freeze_trigger_percentage),就会触发「冻结」,然后就是minor compaction,以及「转储」操作。转储会释放memtable内存,增量数据被输出到磁盘上,转储有次数限制(最大由参数minor_freeze_times),这个次数用完了就会触发「合并」。合并会比较耗OB的资源,时间长短取决于有多少增量数据要跟基线数据合并。 ## 查看冻结转储参数SHOW parameters WHERE NAME IN ('enable_major_freeze','minor_freeze_times','freeze_trigger_percentage','major_freeze_duty_time') AND svr_ip IN ('11.166.175.6');## 触发冻结合并ALTER system major freeze;SELECT sleep(1);## 查看冻结合并历史SELECT str_to_date(h.gmt_create,'%Y-%m-%d %h:%i:%s') gmt_create, module, EVENT,name1,value1,name2,value2 FROM __all_rootservice_event_history hWHERE h.module IN ('daily_merge','major_freeze', 'root_service')ORDER BY gmt_create DESC LIMIT 50; 示例:

mq4096 2019-12-02 00:39:59 0 浏览量 回答数 0

问题

字符串函数是什么?

nicenelly 2019-12-01 21:26:22 1658 浏览量 回答数 0

问题

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

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

问题

OSS第三方ftp 服务器

leo.zhouw 2019-12-01 20:12:27 61605 浏览量 回答数 17

问题

wttr.in 一个 Python 实现的命令行查看天气工具

huc_逆天 2020-05-21 19:12:17 19 浏览量 回答数 1

回答

调用CreateLifecycleHook为伸缩组创建一个或多个生命周期挂钩。 接口说明 一个伸缩组最多可以创建6个生命周期挂钩。创建了生命周期挂钩的伸缩组,在发生伸缩活动时,生命周期挂钩会暂停伸缩活动一段时间,即伸缩活动等待状态。您可以通过HeartbeatTimeout参数指定具体的等待时长。 伸缩活动处于等待状态时,伸缩组弹性扩张活动之前或者弹性收缩活动之前为您保留指定时长的操作时间。您可以在等待期间进行初始化ECS实例配置、获取ECS实例数据等操作。等待状态的进程在处于加入或移除RDS实例IP白名单和加入或移除SLB实例IP白名单之间。 推荐您利用消息服务MNS的主题或者队列创建消息通知,掌握伸缩组内正在启动或者即将释放的ECS实例的动态。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 LifecycleTransition String 是 SCALE_OUT 生命周期挂钩适用的伸缩活动类型,取值范围: SCALE_OUT:伸缩组弹性扩张活动 SCALE_IN:伸缩组弹性收缩活动 ScalingGroupId String 是 AG6CQdPU8OKdwLjgZcJ**** 伸缩组的ID。 Action String 否 CreateLifecycleHook 系统规定参数。取值:CreateLifecycleHook。 DefaultResult String 否 CONTINUE 等待状态结束后的下一步动作,取值范围: CONTINUE:继续响应弹性扩张活动或者继续响应弹性收缩活动。 ABANDON:直接释放弹性扩张活动创建出来的ECS实例或者直接将弹性收缩活动中的ECS实例从伸缩组移除。 默认值:CONTINUE。 当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,DefaultResult为ABANDON的生命周期挂钩触发的等待状态结束时,会提前将其它对应的等待状态提前结束。其他情况下,下一步动作均以最后一个结束等待状态的下一步动作为准。 HeartbeatTimeout Integer 否 600 生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。 默认值:600。 创建了生命周期挂钩后,您可以调用RecordLifecycleActionHeartbeat延长ECS实例的等待时间,也可以调用CompleteLifecycleAction提前结束伸缩活动的等待状态。 LifecycleHook.N.DefaultResult String 否 CONTINUE 等待状态结束后的下一步动作,取值范围: CONTINUE:继续响应弹性扩张活动或者继续响应弹性收缩活动。 ABANDON:直接释放弹性扩张活动创建出来的ECS实例或者直接将弹性收缩活动中的ECS实例从伸缩组移除。 默认值:CONTINUE。 当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,DefaultResult为ABANDON的生命周期挂钩触发的等待状态结束时,会提前将其它对应的等待状态提前结束。其他情况下,下一步动作均以最后一个结束等待状态的下一步动作为准。 LifecycleHook.N.HeartbeatTimeout Integer 否 600 生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。 默认值:600。 创建了生命周期挂钩后,您可以调用RecordLifecycleActionHeartbeat延长ECS实例的等待时间,也可以调用CompleteLifecycleAction提前结束伸缩活动的等待状态。 LifecycleHook.N.LifecycleHookName String 否 test_SCALE_OUT 生命周期挂钩的名称。不能与当前伸缩组其他生命周期挂钩重名,长度为2~40个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)和点号(.)。 默认值为生命周期挂钩ID。 LifecycleHook.N.LifecycleTransition String 否 SCALE_OUT 生命周期挂钩适用的伸缩活动类型,取值范围: SCALE_OUT:伸缩组弹性扩张活动 SCALE_IN:伸缩组弹性收缩活动 LifecycleHook.N.NotificationArn String 否 acs:ess:cn-hangzhou:1111111111:queue/queue1 生命周期挂钩通知对象标识符。支持消息服务MNS队列和主题,参数取值格式:acs:ess:{region}:{account-id}:{resource-relative-id}。 region:伸缩组所在的地域 account-id:阿里云账号ID 例如: MNS队列:acs:ess:{region}:{account-id}:queue/{queuename} MNS主题:acs:ess:{region}:{account-id}:topic/{topicname} LifecycleHook.N.NotificationMetadata String 否 Test 伸缩活动的等待状态的固定字符串信息。参数长度不能超过128个字符。 弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的NotificationMetadata参数值,便于管理和标记不同类别的通知信息。当您同时指定了NotificationArn参数时,NotificationMetadata参数方可生效。 LifecycleHookName String 否 test_SCALE_OUT 生命周期挂钩的名称。不能与当前伸缩组其他生命周期挂钩重名,长度为2~64个英文或中文字符,以数字、大小字母或中文开头,可包含数字、下划线(_)、连字符(-)和点号(.)。 默认值为生命周期挂钩ID。 NotificationArn String 否 acs:ess:cn-hangzhou:1111111111:queue/queue1 生命周期挂钩通知对象标识符。支持消息服务MNS队列和主题,参数取值格式:acs:ess:{region}:{account-id}:{resource-relative-id}。 region:伸缩组所在的地域 account-id:阿里云账号ID 例如: MNS队列:acs:ess:{region}:{account-id}:queue/{queuename} MNS主题:acs:ess:{region}:{account-id}:topic/{topicname} NotificationMetadata String 否 Test 伸缩活动的等待状态的固定字符串信息。参数长度不能超过128个字符。 弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的NotificationMetadata参数值,便于管理和标记不同类别的通知信息。当您同时指定了NotificationArn参数时,NotificationMetadata参数方可生效。 返回数据 名称 类型 示例值 描述 LifecycleHookId String ash-**** 生命周期挂钩的D。 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=CreateLifecycleHook &ScalingGroupId=AG6CQdPU8OKdwLjgZcJ**** &LifecycleHookName=test_SCALE_OUT &LifecycleTransition=SCALE_OUT &NotificationArn=acs:ess:cn-hangzhou:1111111111:queue/queue1 &NotificationMetadata=Test &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E ash-**** JSON 格式 { "LifecycleHookId":"ash-****", "RequestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 400 InvalidParamter The specified value of parameter is not valid. 参数值不合法。 400 InvalidNotificationArn The specified parameter notificationArn is invalid. 指定的NotificationArn不合法。 400 UnsupportedNotificationType.CurrentRegion The notificationType is not supported in the special region which scalingGroup belongs to. 当前地域不支持该通知方式。 400 QueueNotExist The specified queue does not exist. 指定的MNS队列不存在。 400 TopicNotExist The specified topic does not exist. 指定的MNS主题不存在。 400 InvalidLifecycleHookName.Duplicate The specified value of parameter lifecycleHookName is duplicated. 生命周期挂钩已存在。 400 QuotaExceeded.LifecycleHook Lifecycle hook quota exceeded in the specified scaling group. 一个伸缩组最多可以创建6个生命周期挂钩。调用ModifyLifecycleHook修改一个生命周期挂钩的信息。 接口说明 您可以通过以下两种方式指定待修改的生命周期挂钩: 只指定生命周期挂钩ID(LifecycleHookId),此时将忽略ScalingGroupId和LifecycleHookName参数。 同时指定伸缩组ID(ScalingGroupId)与生命周期挂钩名称(LifecycleHookName)。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 ModifyLifecycleHook 系统规定参数,取值:ModifyLifecycleHook。 DefaultResult String 否 CONTINUE 等待状态结束后的下一步动作,取值范围: CONTINUE:继续响应弹性扩张活动或者继续响应弹性收缩活动。 ABANDON:直接释放弹性扩张活动创建出来的ECS实例或者直接将弹性收缩活动中的ECS实例从伸缩组移除。 当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,DefaultResult为ABANDON的生命周期挂钩触发的等待状态结束时,会提前将其它对应的等待状态提前结束。其他情况下,下一步动作均以最后一个结束等待状态的下一步动作为准。 HeartbeatTimeout Integer 否 600 生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。 您可以调用RecordLifecycleActionHeartbeat延长ECS实例的等待时间,也可以调用CompleteLifecycleAction提前结束伸缩活动的等待状态。 LifecycleHookId String 否 ash-*** 待修改生命周期挂钩的ID,用于指定生命周期挂钩。 LifecycleHookName String 否 test_SCALE_IN 待修改生命周期挂钩的名称,用于指定生命周期挂钩。 LifecycleTransition String 否 SCALE_IN 生命周期挂钩适用的伸缩活动类型,取值范围: SCALE_OUT:伸缩组弹性扩张活动 SCALE_IN:伸缩组弹性收缩活动 NotificationArn String 否 acs:ess:cn-hangzhou:1111111111:queue/queue2 生命周期挂钩通知对象标识符。支持消息服务MNS队列和主题,参数取值格式:acs:ess:{region}:{account-id}:{resource-relative-id}。 region:伸缩组所在的地域 account-id:阿里云账号ID 例如: MNS队列:acs:ess:{region}:{account-id}:queue/{queuename} MNS主题:acs:ess:{region}:{account-id}:topic/{topicname} NotificationMetadata String 否 Test 伸缩活动的等待状态的固定字符串信息。参数长度不能超过128个字符。 弹性伸缩每次推送消息到通知对象时,会同时发送您预先指定的NotificationMetadata参数值,便于管理和标记不同类别的通知信息。当您同时指定了NotificationArn参数时,NotificationMetadata参数方可生效。 ScalingGroupId String 否 AG6CQdPU8OKdwLjgZcJ2*** 伸缩组的ID,用于指定生命周期挂钩。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=ModifyLifecycleHook &ScalingGroupId=AG6CQdPU8OKdwLjgZcJ**** &LifecycleHookName=test_SCALE_IN &LifecycleTransition=SCALE_IN &DefaultResult=ABANDON &NotificationArn=acs:ess:cn-hangzhou:1111111111:queue/queue2 &NotificationMetadata=Test &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "RequestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 400 InvalidParamter The specified value of parameter is not valid. 参数值不合法。 400 InvalidLifecycleHookId.NotExist The specified lifecycleHookId not exist. 指定的LifecycleHookId不存在。 400 InvalidLifecycleHookName.NotExist The specified lifecycleHookName you provided not exist. 指定的LifecycleHookName不存在。 400 InvalidNotificationArn The specified parameter notificationArn is invalid. 指定的NotificationArn不存在。 400 UnsupportedNotificationType.CurrentRegion The notificationType is not supported in the special region which scalingGroup belongs to. 当前地域不支持该通知方式。 400 LifecycleHook The specified queue does not exist. 指定的MNS队列不存在。 400 TopicNotExist The specified topic does not exist. 指定的MNS主题不存在。 调用DescribeLifecycleHooks查询生命周期挂钩。 接口说明 您可以通过以下三种方式查询生命周期挂钩: 指定一个生命周期挂钩ID列表(LifecycleHookId.N),此时将忽略ScalingGroupId和LifecycleHookName参数。 指定伸缩组ID(ScalingGroupId)。 同时指定伸缩组ID(ScalingGroupId)和生命周期挂钩名称(LifecycleHookName)。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 DescribeLifecycleHooks 系统规定参数,取值:DescribeLifecycleHooks。 LifecycleHookId.N RepeatList 否 ash-**** 生命周期挂钩的ID。 LifecycleHookName String 否 Test 生命周期挂钩的名称。 PageNumber Integer 否 1 实例状态列表的页码。起始值:1。 默认值:1。 PageSize Integer 否 50 分页查询时设置的每页行数。最大值:50。 默认值:50。 ScalingGroupId String 否 asg-**** 伸缩组的ID。 返回数据 名称 类型 示例值 描述 LifecycleHooks 生命周期挂钩信息列表。 PageNumber Integer 1 查询起始页数。 PageSize Integer 50 查询每页返回行数。 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 TotalCount Integer 1 生命周期挂钩总个数。 示例 请求示例 http://ess.aliyuncs.com/?Action=DescribeLifecycleHooks &ScalingGroupId=asg-**** &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 1 50 1 asg- ash- Test CONTINUE 60 SCALE_OUT Test acs:ess:cn-hangzhou:1111111111:queue/queue1 JSON 格式 { "PageNumber":"1", "TotalCount":"1", "PageSize":"50", "RequestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E", "LifecycleHooks":{ "LifecycleHook":{ "NotificationArn":"acs:ess:cn-hangzhou:1111111111:queue/queue1", "LifecycleTransition":"SCALE_OUT", "LifecycleHookId":"ash-", "ScalingGroupId":"asg-", "DefaultResult":"CONTINUE", "HeartbeatTimeout":"60", "NotificationMetadata":"Test", "LifecycleHookName":"Test" } } } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 400 InvalidParamter The specified value of parameter is not valid. 指定的参数值不合法。调用RecordLifecycleActionHeartbeat延长一个生命周期挂钩触发后被挂起的ECS实例的等待时间。 接口说明 ECS实例的等待时间不能超过6小时,每次等待状态最多能被延时20次。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 RecordLifecycleActionHeartbeat 系统规定参数,取值:RecordLifecycleActionHeartbeat。 lifecycleActionToken String 是 F324B880-900E-4968-85DD-81691113**** 伸缩活动的等待状态标识符,您可以从生命周期挂钩指定的消息服务队列或主题中获取该值。 lifecycleHookId String 是 ash-**** 生命周期挂钩的ID。 heartbeatTimeout Integer 否 600 生命周期挂钩为伸缩组活动设置的等待时间,等待状态超时后会执行下一步动作。取值范围:30~21600,单位:秒。 默认值:600。 创建了生命周期挂钩后,您可以调用本接口延长ECS实例的等待时间,也可以调用CompleteLifecycleAction提前结束伸缩活动的等待状态。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=RecordLifecycleActionHeartbeat &LifecycleHookId=ash-**** &LifecycleActionToken=F324B880-900E-4968-85DD-81691113**** &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 400 InvalidParamter The specified value of parameter is not valid. 指定的参数值不合法。 400 LifecycleHookIdAndLifecycleActionToken.Invalid The specified lifecycleActionToken and lifecycleHookId you provided does not match any in process lifecycle action. 根据指定的LifecycleActionToken无法匹配LifecycleHookId。 400 LifecycleAction.TimeExceeded The specified parameter heartbeatTime exceed lifecycleAction max suspend time. 等待时间最长不能超过6小时。 400 LifecycleAction.RecordTimesExceeded The specified lifecycleAction exceed lifecycleAction max record times. 每次等待状态最多能被延时20次。调用CompleteLifecycleAction提前结束伸缩活动的等待状态。 接口说明 允许设置结束等待状态后的下一步动作是继续完成伸缩活动(CONTINUE)还是弃用此次伸缩活动(ABANDON)。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 LifecycleActionToken String 是 aaaa-bbbbb-cccc-ddddd 伸缩活动的等待状态标识符,您可以从生命周期挂钩指定的消息服务队列或主题中获取该值。 LifecycleHookId String 是 ash-**** 生命周期挂钩的ID。 Action String 否 CompleteLifecycleAction 系统规定参数,取值:CompleteLifecycleAction。 LifecycleActionResult String 否 CONTINUE 等待状态结束后的下一步动作,取值范围: CONTINUE:继续响应弹性扩张活动或者继续响应弹性收缩活动。 ABANDON:直接释放弹性扩张活动创建出来的ECS实例或者直接将弹性收缩活动中的ECS实例从伸缩组移除。 默认值:CONTINUE。 当伸缩组发生弹性收缩活动(SCALE_IN)并触发多个生命周期挂钩时,DefaultResult为ABANDON的生命周期挂钩触发的等待状态结束时,会提前将其它对应的等待状态提前结束。其他情况下,下一步动作均以最后一个结束等待状态的下一步动作为准。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=CompleteLifecycleAction &LifecycleHookId=ash-**** &LifecycleActionToken=aaaa-bbbbb-cccc-ddddd &LifecycleActionResult=CONTINUE &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "RequestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 400 InvalidParamter The specified value of parameter is invalid. 指定的参数值不合法。 400 LifecycleHookIdAndLifecycleActionToken.Invalid The specified lifecycleActionToken and lifecycleHookId you provided does not match any in process lifecycle action. 根据指定的LifecycleActionToken无法匹配LifecycleHookId。 调用DeleteLifecycleHook删除一个生命周期挂钩。 接口说明 如果生命周期挂钩已触发伸缩活动等待状态,删除生命周期挂钩时,对应的等待状态会被提前结束。您可以通过以下两种方式删除生命周期挂钩: 指定生命周期挂钩ID(LifecycleHookId),此时将忽略ScalingGroupId和LifecycleHookName参数。 同时指定伸缩组ID(ScalingGroupId)与生命周期挂钩名称(LifecycleHookName)。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试 请求参数 名称 类型 是否必选 示例值 描述 Action String 否 DeleteLifecycleHook 系统规定参数,取值:DeleteLifecycleHook。 LifecycleHookId String 否 ash-**** 生命周期挂钩的ID。 LifecycleHookName String 否 测试SCALE_IN 生命周期挂钩的名称。 ScalingGroupId String 否 dP8VqSd9ENXPc0ciVmbc**** 伸缩组的ID。 返回数据 名称 类型 示例值 描述 RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E 请求ID。 示例 请求示例 http://ess.aliyuncs.com/?Action=DeleteLifecycleHook &LifecycleHookId=ash-**** &<公共请求参数> 正常返回示例 XML 格式 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E JSON 格式 { "RequestId":"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E" } 错误码 访问错误中心查看更多错误码。 HttpCode 错误码 错误信息 描述 400 InvalidParamter The specified value of parameter is invalid. 参数值不合法。 400 InvalidLifecycleHookId.NotExist The specified lifecycleHookId does not exist. 生命周期挂钩ID不存在。 400 InvalidLifecycleHookName.NotExist The specified lifecycleHookName you provided does not exist. 生命周期挂钩名称不存在。

1934890530796658 2020-03-24 22:24:32 0 浏览量 回答数 0

问题

用OSSIM发现网络扫描

opensiem 2019-12-01 21:46:18 2053 浏览量 回答数 0

问题

国际站海外地域为混合云利用FlexGW 搭建Site To Site VPN最佳实践

德鲁克 2019-12-01 21:29:08 9990 浏览量 回答数 2

回答

Re在 Windows 2008 系统为 phpstudy apache 不同网站配置不同SSL证书(SNI) 大神在吗   #LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) #Include conf/extra/httpd-ssl.conf 这两句话的#我已经去掉了 ------------------------- Re在 Windows 2008 系统为 phpstudy apache 不同网站配置不同SSL证书(SNI) 接87楼 <VirtualHost *:443> # 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile conf/ssl/cert/public.pem # 证书私钥配置 SSLCertificateKeyFile conf/ssl/cert/214277396730467.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile conf/ssl/cert/chain.pem </VirtualHost> ## ## SSL Virtual Host Context ## #<VirtualHost *:443> #        SSLEngine on #        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP #        SSLCertificateFile      "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.pem" #        SSLCertificateKeyFile   "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.key" #        ServerName      "www.网址.cn" #        DocumentRoot    "D:\shengyuanV19" #</VirtualHost> 已经启动了,但是https的网址打不开,http可以 ------------------------- 回 89楼dongshan8的帖子 您好, 我88楼发的第一部分是根据阿里云提示操作的,第二部分是按你的提示操作,这两个办法都试过了 ------------------------- 回 89楼dongshan8的帖子 在线等  谢谢 ------------------------- Re回 92楼dongshan8的帖子 第一个域名端口是443,其他都是80 ------------------------- Re回 93楼aaaaa11123的帖子 ------------------------- Re回 94楼aaaaa11123的帖子 ------------------------- 回 96楼dongshan8的帖子 tcp 0.0.0.0.443 0.0.0.0.0 listening 3792 ------------------------- 回 92楼dongshan8的帖子 [Thu Oct 12 20:54:05.187500 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:53194] AH00127: Cannot map GET /'%22/></script><script>alert()</script> HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:54:51.796875 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:16085] AH00127: Cannot map GET /'%22/></script><script>alert()</script>/?.tmp=t HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:56:58.562500 2017] [core:error] [pid 2472:tid 1668] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:56444] AH00127: Cannot map GET /'%22+onmouseover=alert()+d='%22 HTTP/1.1 to file, referer: http://yunying.shanxiwap.cn/ [Thu Oct 12 20:57:02.781250 2017] [core:error] [pid 2472:tid 1668] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:56444] AH00127: Cannot map GET /%27%22%20onmouseover%3Dalert%28%29%20d%3D%27%22 HTTP/1.1 to file, referer: http://yunying.shanxiwap.cn/ [Thu Oct 12 20:57:06.234375 2017] [core:error] [pid 2472:tid 1676] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:57298] AH00127: Cannot map GET /'%22+onmouseover=alert()+d='%22/?.tmp=t HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:57:08.390625 2017] [core:error] [pid 2472:tid 1676] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:57298] AH00127: Cannot map GET /%27%22%20onmouseover%3Dalert%28%29%20d%3D%27%22/?.tmp=t HTTP/1.1 to file, referer: http://yunying.shanxiwap.cn/ [Thu Oct 12 20:57:12.562500 2017] [core:error] [pid 2472:tid 1676] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:57298] AH00127: Cannot map GET /'%22/></script><script>alert()</script> HTTP/1.1 to file, referer: http://yunying.shanxiwap.cn/ [Thu Oct 12 20:57:20.156250 2017] [core:error] [pid 2472:tid 1676] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:57298] AH00127: Cannot map GET /'%22/></script><script>alert()</script>/?.tmp=t HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:57:35.578125 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:7717] AH00127: Cannot map GET /'%22+onmouseover=alert()+d='%22 HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:57:36.093750 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:7717] AH00127: Cannot map GET /%27%22%20onmouseover%3Dalert%28%29%20d%3D%27%22 HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:57:37.078125 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:7717] AH00127: Cannot map GET /'%22+onmouseover=alert()+d='%22/?.tmp=t HTTP/1.1 to file, referer: http://shanxiwap.cn/ [Thu Oct 12 20:57:37.562500 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:7717] AH00127: Cannot map GET /%27%22%20onmouseover%3Dalert%28%29%20d%3D%27%22/?.tmp=t HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:57:38.562500 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:7717] AH00127: Cannot map GET /'%22/></script><script>alert()</script> HTTP/1.1 to file, referer: 域名/ [Thu Oct 12 20:57:40.093750 2017] [core:error] [pid 2472:tid 1672] (20024)The given path is misformatted or contained invalid characters: [client 140.205.225.185:7717] AH00127: Cannot map GET /'%22/></script><script>alert()</script>/?.tmp=t HTTP/1.1 to file, referer: 域名/ ------------------------- 回 98楼aaaaa11123的帖子 [Fri Oct 13 10:22:44.062500 2017] [mpm_winnt:notice] [pid 1480:tid 464] AH00455: Apache/2.4.10 (Win32) OpenSSL/0.9.8zb mod_fcgid/2.3.9 configured -- resuming normal operations [Fri Oct 13 10:22:44.062500 2017] [mpm_winnt:notice] [pid 1480:tid 464] AH00456: Apache Lounge VC9 Server built: Jul 19 2014 13:20:51 [Fri Oct 13 10:22:44.062500 2017] [core:notice] [pid 1480:tid 464] AH00094: Command line: 'D:\\phpStudy\\Apache\\bin\\httpd.exe -d D:/phpStudy/Apache' [Fri Oct 13 10:22:44.078125 2017] [mpm_winnt:notice] [pid 1480:tid 464] AH00418: Parent: Created child process 3068 [Fri Oct 13 10:22:44.609375 2017] [mpm_winnt:notice] [pid 3068:tid 656] AH00354: Child: Starting 150 worker threads. [Fri Oct 13 10:23:49.156250 2017] [mpm_winnt:crit] [pid 3068:tid 656] AH02538: Child: Parent process exited abruptly. Child process is ending Starting the Apache2a service The Apache2a service is running. [core:warn] [pid 2096:tid 464] AH00098: pid file D:/phpStudy/Apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? [Fri Oct 13 10:23:50.921875 2017] [mpm_winnt:notice] [pid 2096:tid 464] AH00455: Apache/2.4.10 (Win32) OpenSSL/0.9.8zb mod_fcgid/2.3.9 configured -- resuming normal operations [Fri Oct 13 10:23:50.921875 2017] [mpm_winnt:notice] [pid 2096:tid 464] AH00456: Apache Lounge VC9 Server built: Jul 19 2014 13:20:51 [Fri Oct 13 10:23:50.921875 2017] [core:notice] [pid 2096:tid 464] AH00094: Command line: 'D:\\phpStudy\\Apache\\bin\\httpd.exe -d D:/phpStudy/Apache' [Fri Oct 13 10:23:50.921875 2017] [mpm_winnt:notice] [pid 2096:tid 464] AH00418: Parent: Created child process 4976 [Fri Oct 13 10:23:51.437500 2017] [mpm_winnt:notice] [pid 4976:tid 656] AH00354: Child: Starting 150 worker threads. ------------------------- 回 100楼dongshan8的帖子 <VirtualHost _default_:9096> DocumentRoot "D:\phpStudy\WWW"   <Directory "D:\phpStudy\WWW">     Options +Indexes +FollowSymLinks +ExecCGI     AllowOverride All     Order allow,deny     Allow from all     Require all granted   </Directory> </VirtualHost> <VirtualHost *:443>     DocumentRoot "D:\shengyuanV19"     ServerName www.域名1.cn     ServerAlias   <Directory "D:\shengyuanV19">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> <VirtualHost *:80>     DocumentRoot "D:\shengyuanV19"     ServerName 域名2.cn     ServerAlias   <Directory "D:\shengyuanV19">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> <VirtualHost *:80>     DocumentRoot "D:\shengyuanV19"     ServerName wx.域名3.cn     ServerAlias   <Directory "D:\shengyuanV19">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> <VirtualHost *:80>     DocumentRoot "D:\msf\weimi"     ServerName weixin.域名4.cn     ServerAlias   <Directory "D:\msf\weimi">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> <VirtualHost *:80>     DocumentRoot "D:\msf\site"     ServerName site.域名5.net     ServerAlias   <Directory "D:\msf\site">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> <VirtualHost *:80>     DocumentRoot "D:\msf\case"     ServerName case.域名6.net     ServerAlias   <Directory "D:\msf\case">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> <VirtualHost *:80>     DocumentRoot "D:\msf\Editor\wwwroot"     ServerName e.域名7.cn     ServerAlias   <Directory "D:\msf\Editor\wwwroot">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> <VirtualHost *:80>     DocumentRoot "D:\yunying\qyws"     ServerName yunying.域名8.cn     ServerAlias www.sxqyws.net   <Directory "D:\yunying\qyws">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost> 域名1就是我要加https的网站,在线等,好人一生平安 ------------------------- 回 101楼aaaaa11123的帖子 # # This is the Apache server configuration file providing SSL support. # It contains the configuration directives to instruct the server how to # serve pages over an https connection. For detailed information about these # directives see <URL:http://httpd.apache.org/docs/trunk/mod/mod_ssl.html> # # Do NOT simply read the instructions in here without understanding # what they do.  They're here only as hints or reminders.  If you are unsure # consult the online docs. You have been warned.   # # # Pseudo Random Number Generator (PRNG): # Configure one or more sources to seed the PRNG of the SSL library. # The seed data should be of good random quality. # WARNING! On some platforms /dev/random blocks if not enough entropy # is available. This means you then cannot use the /dev/random device # because it would lead to very long connection times (as long as # it requires to make more entropy available). But usually those # platforms additionally provide a /dev/urandom device which doesn't # block. So, if available, use this one instead. Read the mod_ssl User # Manual for more details. # #SSLRandomSeed startup file:/dev/random  512 #SSLRandomSeed startup file:/dev/urandom 512 #SSLRandomSeed connect file:/dev/random  512 #SSLRandomSeed connect file:/dev/urandom 512 # # When we also provide SSL we have to listen to the # standard HTTP port (see above) and to the HTTPS port # # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two #       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443" # Listen 443 ## ##  SSL Global Context ## ##  All SSL configuration in this context applies both to ##  the main server and all SSL-enabled virtual hosts. ## #   Pass Phrase Dialog: #   Configure the pass phrase gathering process. #   The filtering dialog program (`builtin' is a internal #   terminal dialog) has to provide the pass phrase on stdout. SSLPassPhraseDialog  builtin #   Inter-Process Session Cache: #   Configure the SSL Session Cache: First the mechanism #   to use and second the expiring timeout (in seconds). #SSLSessionCache         "dbm:/Apache24/logs/ssl_scache" SSLSessionCache        "shmcb:/Apache24/logs/ssl_scache(512000)" SSLSessionCacheTimeout  300 <VirtualHost *:443> # 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile conf/ssl/cert/public.pem # 证书私钥配置 SSLCertificateKeyFile conf/ssl/cert/214277396730467.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile conf/ssl/cert/chain.pem </VirtualHost> ## ## SSL Virtual Host Context ## #<VirtualHost *:443> #        SSLEngine on #        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP #        SSLCertificateFile      "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.pem" #        SSLCertificateKeyFile   "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.key" #        ServerName      "www.shanxiwap.cn" #        DocumentRoot    "D:\shengyuanV19" #</VirtualHost> 这段是httpd-ssl.conf的配置                                    ------------------------- 回 103楼dongshan8的帖子 您好,我已将vhost.conf的注释如下: #<VirtualHost *:443> #    DocumentRoot "D:\shengyuanV19" #    ServerName 我的域名 #    ServerAlias #  <Directory "D:\shengyuanV19"> #      Options FollowSymLinks ExecCGI #      AllowOverride All #      Order allow,deny #      Allow from all #      Require all granted #  </Directory> #</VirtualHost> 以下是httpd-ssl.conf的配置 # # This is the Apache server configuration file providing SSL support. # It contains the configuration directives to instruct the server how to # serve pages over an https connection. For detailed information about these # directives see <URL:http://httpd.apache.org/docs/trunk/mod/mod_ssl.html> # # Do NOT simply read the instructions in here without understanding # what they do.  They're here only as hints or reminders.  If you are unsure # consult the online docs. You have been warned.   # # # Pseudo Random Number Generator (PRNG): # Configure one or more sources to seed the PRNG of the SSL library. # The seed data should be of good random quality. # WARNING! On some platforms /dev/random blocks if not enough entropy # is available. This means you then cannot use the /dev/random device # because it would lead to very long connection times (as long as # it requires to make more entropy available). But usually those # platforms additionally provide a /dev/urandom device which doesn't # block. So, if available, use this one instead. Read the mod_ssl User # Manual for more details. # #SSLRandomSeed startup file:/dev/random  512 #SSLRandomSeed startup file:/dev/urandom 512 #SSLRandomSeed connect file:/dev/random  512 #SSLRandomSeed connect file:/dev/urandom 512 # # When we also provide SSL we have to listen to the # standard HTTP port (see above) and to the HTTPS port # # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two #       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443" # Listen 443 ## ##  SSL Global Context ## ##  All SSL configuration in this context applies both to ##  the main server and all SSL-enabled virtual hosts. ## #   Pass Phrase Dialog: #   Configure the pass phrase gathering process. #   The filtering dialog program (`builtin' is a internal #   terminal dialog) has to provide the pass phrase on stdout. SSLPassPhraseDialog  builtin #   Inter-Process Session Cache: #   Configure the SSL Session Cache: First the mechanism #   to use and second the expiring timeout (in seconds). #SSLSessionCache         "dbm:/Apache24/logs/ssl_scache" SSLSessionCache        "shmcb:/Apache24/logs/ssl_scache(512000)" SSLSessionCacheTimeout  300 #<VirtualHost *:443> # 添加 SSL 协议支持协议,去掉不安全的协议 # SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 # SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # SSLHonorCipherOrder on # 证书公钥配置 # SSLCertificateFile conf/ssl/cert/public.pem # 证书私钥配置 # SSLCertificateKeyFile conf/ssl/cert/214277396730467.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 # SSLCertificateChainFile conf/ssl/cert/chain.pem #</VirtualHost> ## ## SSL Virtual Host Context ## #<VirtualHost *:443> #        SSLEngine on #        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP #        SSLCertificateFile      "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.pem" #        SSLCertificateKeyFile   "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.key" #        ServerName      "www.shanxiwap.cn" #        DocumentRoot    "D:\shengyuanV19" #</VirtualHost> <VirtualHost *:443>     SSLEngine on     SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP     SSLCertificateFile      "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.pem"     SSLCertificateKeyFile   "D:\phpStudy\Apache\conf\ssl\cert\214277396730467.key"     DocumentRoot "D:\shengyuanV19"     ServerName "我的域名"     ServerAlias   <Directory "D:\shengyuanV19">       Options FollowSymLinks ExecCGI       AllowOverride All       Order allow,deny       Allow from all       Require all granted   </Directory> </VirtualHost>                         ------------------------- 回 103楼dongshan8的帖子 您好,vhost.conf里有8个域名,其中前三个是绑定的一个路径,第一个是主域名(加https) 第二个是不带www的主域名,第三个是二级域名 我刚才注释的vhost.conf是 #<VirtualHost *:443> #    DocumentRoot "D:\shengyuanV19" #    ServerName 主域名 #    ServerAlias #  <Directory "D:\shengyuanV19"> #      Options FollowSymLinks ExecCGI #      AllowOverride All #      Order allow,deny #      Allow from all #      Require all granted #  </Directory> #</VirtualHost> 第二个第三个没有动 ------------------------- 回 103楼dongshan8的帖子 方便的话  加个qq您远程控制我的桌面看看  1003521946   谢谢 ------------------------- 回 107楼dongshan8的帖子 还是只能访问http站点 ------------------------- 回 109楼dongshan8的帖子 现在可以在ecs服务器可以打开https网址了,  在本地访问不可以 ------------------------- 回 112楼dongshan8的帖子 老师你好: 我在公网入方向添加自定义443  0.0.0.0/0   还是不行 ------------------------- Re回 114楼dongshan8的帖子 老师您看看 ------------------------- Re回 116楼dongshan8的帖子 防火墙也关的了 ------------------------- Re回 116楼dongshan8的帖子 服务器进程图 ------------------------- 回 119楼dongshan8的帖子 在服务器  用https://域名和https://ip都可以打开

aaaaa11123 2019-12-01 23:57:54 0 浏览量 回答数 0

回答

1.可以尝试通过“管理终端”登录操作:https://help.aliyun.com/document_detail/25433.html 2.使用ping看网站连接情况: 关于ping 这是我在百度上查到的: 一、什么是PING[编辑本段]是DOS命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。 它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。Ping 是Windows系列自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping IP地址。该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。ping指的是端对端连通,通常用来作为可用性的检查, 但是某些病毒木马会强行大量远程执行ping命令抢占你的网络资源,导致系统变慢,网速变慢。 严禁ping入侵作为大多数防火墙的一个基本功能提供给用户进行选择。 二、PING测试,通常的情况下你如果不用作服务器或者进行网络测试,可以放心的选中它,保护你的电脑 1.Ping本机IP例如本机IP地址为:172.168.200.2。则执行命令Ping 172.168.200.2。如果网卡安装配置没有问题,则应有类似下列显示:Replay from 172.168.200.2 bytes=32 time<10msPing statistics for 172.168.200.2Packets Sent=4 Received=4 Lost=0 0% lossApproximate round trip times in milli-secondsMinimum=0ms Maxiumu=1ms Average=0ms如果在MS-DOS方式下执行此命令显示内容为:Request timed out,则表明网卡安装或配置有问题。将网线断开再次执行此命令,如果显示正常,则说明本机使用的IP地址可能与另一台正在使用的机器IP地址重复了。如果仍然不正常,则表明本机网卡安装或配置有问题,需继续检查相关网络配置。 2.Ping网关IP假定网关IP为:172.168.6.1,则执行命令Ping 172.168.6.1。在MS-DOS方式下执行此命令,如果显示类似以下信息:Reply from 172.168.6.1 bytes=32 time=9ms TTL=255Ping statistics for 172.168.6.1 Packets Sent=4 Received=4 Lost=0 Approximate round trip times in milli-secondsMinimum=1ms Maximum=9ms Average=5ms则表明局域网中的网关路由器正在正常运行。反之,则说明网关有问题。 3.Ping远程IP这一命令可以检测本机能否正常访问Internet。比如本地电信运营商的IP地址为:202.102.48.141。在MS-DOS方式下执行命令:Ping 202.102.48.141,如果屏幕显示:Reply from 202.102.48.141 bytes=32 time=33ms TTL=252Reply from 202.102.48.141 bytes=32 time=21ms TTL=252Reply from 202.102.48.141 bytes=32 time=5ms TTL=252Reply from 202.102.48.141 bytes=32 time=6ms TTL=252Ping statistics for 202.102.48.141 Packets Sent=4 Received=4 Lost=0 0% lossApproximate round trip times in milli-secondsMinimum=5ms Maximum=33ms Average=16ms则表明运行正常,能够正常接入互联网。反之,则表明主机文件(windows/host)存在问题。 3.如还有疑问,请联系客服 到阿里云会员中心提交工单,让售后帮你检查看看。 或点击右侧的浮标:联系我们 提交工单的地址:https://workorder.console.aliyun.com/#/ticket/createIndex 更多阿里云帮助文档 https://help.aliyun.com 希望对您有帮助!

阿里朵 2019-12-02 02:19:08 0 浏览量 回答数 0

回答

您可以使用 Pandora Boot 开发 HSF 应用,实现服务注册发现、异步调用,并完成单元测试。相比使用 ali-tomcat 部署 HSF 的 WAR 包,Pandora Boot部署的是 JAR 包。直接将 HSF 应用打包成 FatJar,这更加符合微服务的风格,不需要依赖外置的 ali-tomcat 也使得应用的部署更加灵活。Pandora Boot 可以认为是 Spring Boot 的增强。 前提条件 在开发应用前,您已经完成以下工作: 配置 SAE 的私服地址和轻量级配置及注册中心 启动轻量级配置及注册中心 服务注册与发现 介绍如何使用 Pandora Boot 开发应用(包括服务提供者和服务消费者)并实现服务注册与发现。 注意 严禁在应用启动时调用 HSF 远程服务,否则会导致启动失败。 Demo 源码下载:https://github.com/aliyun/alibabacloud-microservice-demo/tree/master/microservice-doc-demo/hsf-pandora-boot 使用 Git 克隆整个项目,并在 microservice-doc-demo/hsf-pandora-boot 文件夹内可以找到本文使用的示例工程。 创建服务提供者。 创建命名为 hsf-pandora-boot-provider的 Maven 工程。 在 pom.xml 中引入需要的依赖。 <java.version>1.8</java.version> <spring-boot.version>2.1.6.RELEASE</spring-boot.version> <pandora-boot.version>2019-06-stable</pandora-boot.version> com.alibaba.boot pandora-hsf-spring-boot-starter org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import com.taobao.pandora pandora-boot-starter-bom ${pandora-boot.version} pom import org.apache.maven.plugins maven-compiler-plugin 3.7.0 1.8 1.8 com.taobao.pandora pandora-boot-maven-plugin 2.1.11.8 package repackage 虽然 HSF 服务框架并不依赖于 Web 环境,但是在应用的生命周期过程中需要使用到 Web 相关的特性,所以需要添加 spring-boot-starter-web 的依赖。 pandora-hsf-spring-boot-starter 实现了 HSF 配置的自动装配。pandora-boot-maven-plugin 是 Pandora Boot 提供的 maven 打包插件,可以将 Pandora Boot HSF 工程编译为可执行的 FatJar,并在 EDAS Container 中部署运行。 dependencyManagement 中包含了 spring-boot-dependencies 和 pandora-boot-starter-bom 两个依赖,分别负责 Spring Boot 和 Pandora Boot 相关依赖的版本管理,设置之后,您的工程无需将 parent 设置为 spring-boot-starter-parent。 定义服务接口,创建一个接口类 com.alibaba.edas.HelloService。 HSF 服务框架基于接口进行服务通信,当接口定义好之后,生产者将通过该接口实现具体的服务并发布,消费者也是基于此接口去订阅和消费服务。 public interface HelloService { String echo(String string); } 接口 com.alibaba.edas.HelloService 提供了 echo 方法。 添加服务提供者的具体实现类 EchoServiceImpl ,并通过注解方式发布服务。 @HSFProvider(serviceInterface = HelloService.class, serviceVersion = "1.0.0") public class HelloServiceImpl implements HelloService { @Override public String echo(String string) { return string; } } 在 HSF 应用中,接口名和服务版本才能唯一确定一个服务,所以在注解 HSFProvider 中的需要添加接口名 com.alibaba.edas.HelloService 和服务版本1.0.0。 说明 注解中的配置拥有高优先级。 如果在注解中没有配置,服务发布时会优先在 resources/application.properties 文件中查找这些属性的全局配置。 如果注解和 resources/application.properties 文件中都没有配置,则会使用注解中的默认值。 在 resources 目录下的 application.properties 文件中配置应用名和监听端口号。 spring.application.name=hsf-pandora-boot-provider server.port=8081 spring.hsf.version=1.0.0 spring.hsf.timeout=3000 说明 建议将服务版本(spring.hsf.version)和服务超时(spring.hsf.timeout)都统一配置在 application.properties 中。 添加服务启动的 main 函数入口。 @SpringBootApplication public class HSFProviderApplication { public static void main(String[] args) { // 启动 Pandora Boot 用于加载 Pandora 容器 PandoraBootstrap.run(args); SpringApplication.run(HSFProviderApplication.class, args); // 标记服务启动完成,并设置线程 wait。防止业务代码运行完毕退出后,导致容器退出。 PandoraBootstrap.markStartupAndWait(); } } 表 1. 服务提供者属性列表 属性 是否必配 描述 类型 默认值 serviceInterface 是 服务对外提供的接口 Class java.lang.Object serviceVersion 否 服务的版本号 String 1.0.0.DAILY serviceGroup 否 服务的组名 String HSF clientTimeout 否 该配置对接口中的所有方法生效,但是如果客户端通过 methodSpecials 属性对某方法配置了超时时间,则该方法的超时时间以客户端配置为准。其他方法不受影响,还是以服务端配置为准(单位 ms) int -1 corePoolSize 否 单独针对这个服务设置最小活跃线程数,从公用线程池中划分出来 int 0 maxPoolSize 否 单独针对这个服务设置最大活跃线程数,从公用线程池中划分出来 int 0 delayedPublish 否 是否延迟发布 boolean false includeFilters 否 用户可选的自定义过滤器 String[] 空 enableTXC 否 是否开启分布式事务 GTS boolean false serializeType 否 服务接口序列化类型,hessian 或者 java String hessian supportAsynCall 否 是否支持异步调用 String false 表 2. 服务创建及发布限制 名称 示例 限制大小 是否可调整 {服务名}:{版本号} com.alibaba.edas.testcase.api.TestCase:1.0.0 最大192字节 否 组名 aliware 最大32字节 否 一个Pandora应用实例发布的服务数 N/A 最大800个 是,可在应用基本信息页面单击应用设置右侧的设置,并在下拉列表中选择 JVM,然后在弹出的应用设置对话框中选择自定义 > 自定义参数,在输入框中添加 -DCC.pubCountMax=1200属性参数(该参数值可根据应用实际发布的服务数调整) 创建服务消费者。 本示例中,将创建一个服务消费者,通过 HSFConsumer 所提供的 API 接口去调用服务提供者。 创建一个 Maven 工程,命名为 hsf-pandora-boot-consumer。 在 pom.xml 中引入需要的依赖内容。 说明 消费者和提供者的 Maven 依赖是相同。 <java.version>1.8</java.version> <spring-boot.version>2.1.6.RELEASE</spring-boot.version> <pandora-boot.version>2019-06-stable</pandora-boot.version> com.alibaba.boot pandora-hsf-spring-boot-starter org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import com.taobao.pandora pandora-boot-starter-bom ${pandora-boot.version} pom import org.apache.maven.plugins maven-compiler-plugin 3.7.0 1.8 1.8 com.taobao.pandora pandora-boot-maven-plugin 2.1.11.8 package repackage 将服务提供者所发布的 API 服务接口(包括包名)拷贝到本地,如 com.alibaba.edas.HelloService。 public interface HelloService { String echo(String string); } 通过注解的方式将服务消费者的实例注入到 Spring 的 Context 中。 @Configuration public class HsfConfig { @HSFConsumer(clientTimeout = 3000, serviceVersion = "1.0.0") private EchoService echoService; } 说明 在 HsfConfig 类里配置一次 @HSFConsumer,然后在多处通过 @Autowired 注入使用。通常一个 HSF Consumer 需要在多个地方使用,但并不需要在每次使用的地方都用 @HSFConsumer 来标记。只需要写一个统一的 HsfConfig 类,然后在其它需要使用的地方,直接通过 @Autowired 注入即可。 为了便于测试,使用 SimpleController 来暴露一个 /hsf-echo/* 的 HTTP 接口,/hsf-echo/* 接口内部实现调用了 HSF 服务提供者。 @RestController public class SimpleController { @Autowired private HelloService helloService; @RequestMapping(value = "/hsf-echo/{str}", method = RequestMethod.GET) public String echo(@PathVariable String str) { return helloService.echo(str); } } 在 resources 目录下的 application.properties 文件中配置应用名与监听端口号。 spring.application.name=hsf-pandora-boot-consumer server.port=8080 spring.hsf.version=1.0.0 spring.hsf.timeout=1000 说明 建议将服务版本和服务超时都统一配置在 application.properties 中。 添加服务启动的 main 函数入口。 @SpringBootApplication public class HSFConsumerApplication { public static void main(String[] args) { PandoraBootstrap.run(args); SpringApplication.run(HSFConsumerApplication.class, args); PandoraBootstrap.markStartupAndWait(); } } 表 3. 服务消费者属性列表 属性 是否必配 描述 类型 默认值 serviceGroup 否 服务的组名 String HSF serviceVersion 否 服务的版本号 String 1.0.0.DAILY clientTimeout 否 客户端统一设置接口中所有方法的超时时间(单位 ms) int -1 generic 否 是否支持泛化调用 boolean false addressWaitTime 否 同步等待服务注册中心( ConfigServer )推送服务提供者地址的时间(单位 ms) int 3000 proxyStyle 否 代理方式(JDK 或 Javassist) String jdk futureMethods 否 设置调用此服务时需要采用异步调用的方法名列表以及异步调用的方式,默认为空,即所有方法都采用同步调用 String[] 空 consistent 否 负载均衡是否使用一致性哈希 String 空 methodSpecials 否 配置方法级的超时时间、重试次数、方法名称 com.alibaba.boot.hsf.annotation.HSFConsumer.ConsumerMethodSpecial[] 空 表 4. 服务提供者和消费者全局配置参数列表 属性 是否必配 描述 类型 默认值 spring.hsf.version 否 服务的全局版本号,还可以使用 spring.hsf.versions.<完整的服务接口名>=<单独为该服务接口设置的版本号,String类型>,例如spring.hsf.versions.com.aliware.edas.EchoService="1.0.0"为具体某个服务设置版本号。 String 1.0.0.DAILY spring.hsf.group 否 服务的全局组名,还可以使用spring.hsf.groups.<完整的服务接口名>=<单独为该服务接口设置的组名,String类型>为具体某个服务设置组名。 String HSF spring.hsf.timeout 否 服务的全局超时时间,还可以使用spring.hsf.timeouts.<完整的服务接口名>=<超时时间,String类型>为具体某个服务设置超时时间。 Integer 无 spring.hsf.max-wait-address-time 否 同步等待服务注册中心( ConfigServer )推送服务提供者地址的全局时间(单位 ms ),还可以使用spring.hsf.max-wait-address-times.<完整的服务接口名>=<等待时间,String类型>为具体某个服务设置的等待服务注册中心(ConfigServer)推送服务提供者地址的时间。 Integer 3000 spring.hsf.delay-publish 否 服务延迟发布的全局开关,”true” or “false”,还可以使用spring.hsf.delay-publishes.<完整的服务接口名>=<是否延迟发布,String类型>为具体某个服务设置是否延迟。 String 无 spring.hsf.core-pool-size 否 服务的全局最小活跃线程数,还可以使用spring.hsf.core-pool-sizes.<完整的服务接口名>=<最小活跃线程数,String类型>单独为某服务设置最小活跃线程数。 int 无 spring.hsf.max-pool-size 否 服务的全局最大活跃线程数,还可以使用spring.hsf.max-pool-sizes.<完整的服务接口名>=<最大活跃线程数,String类型>单独为某服务设置最大活跃线程数。 int 无 spring.hsf.serialize-type 否 服务的全局序列化类型,Hessian 或者 Java,还可以使用spring.hsf.serialize-types.<完整的服务接口名>=<序列化类型>单独为某服务设置序列化类型。 String 无 说明 全局配置参数可在 Pandora Boot 应用的 application.properties 文件中设置。 本地开发调试。 配置轻量级配置及注册中心。 本地开发调试时,需要使用轻量级配置及注册中心,轻量级配置及注册中心包含了服务注册发现服务端的轻量版,详情请参见启动轻量级配置及注册中心。 启动应用。 在 IDE 中启动 通过 VM options 配置启动参数 -Djmenv.tbsite.net={$IP},通过 main 方法直接启动。其中 {$IP} 为轻量配置中心的 IP 地址。列如本机启动轻量配置中心,则 {$IP} 为 127.0.0.1。 您也可以不配置 JVM 的参数,而是直接通过修改 hosts 文件将 jmenv.tbsite.net 绑定为轻量配置中心的 IP。详情请参见启动轻量级配置及注册中心。 通过 FatJar 启动 增加 taobao-hsf.sar 依赖,这样会下载到我们需要的依赖:/.m2/com/taobao/pandora/taobao-hsf.sar/2019-06-stable/taobao-hsf.sar-2019-06-stable.jar,在后面的启动参数中依赖它。 com.taobao.pandora taobao-hsf.sar 2019-06-stable 使用 Maven 将 Pandora Boot 工程打包成 FatJar, 需要在 pom.xml 中添加如下插件。为避免与其他打包插件发生冲突,请勿在 build 的 plugin 中添加其他 FatJar 插件。 com.taobao.pandora pandora-boot-maven-plugin 2.1.11.8 package repackage 添加完插件后,在工程的主目录下,执行 maven 命令 mvn clean package 进行打包,即可在 Target 目录下找到打包好的 FatJar 文件。 通过 Java 命令启动应用。 java -Djmenv.tbsite.net=127.0.0.1 -Dpandora.location=${M2_HOME}/.m2/repository/com/taobao/pandora/taobao-hsf.sar/2019-06-stable/taobao-hsf.sar-2019-06-stable.jar -jar hsf-pandora-boot-provider-1.0.jar 说明 -Dpandora.location 指定的路径必须是全路径,使用命令行启动时,必须显示指定 taobao-hsf.sar 的位置。 访问 consumer 所在机器的地址,可以触发 consumer 远程调用 provider。 curl localhost:8080/hsf-echo/helloworld helloworld 单元测试。 Pandora Boot 的单元测试可以通过 PandoraBootRunner 启动,并与 SpringJUnit4ClassRunner 无缝集成。 我们将演示一下如何在服务提供者中进行单元测试,供大家参考。 在 Maven 中添加 Pandora Boot 和 Spring Boot 测试必要的依赖。 com.taobao.pandora pandora-boot-test test org.springframework.boot spring-boot-starter-test test 编写测试类的代码。 @RunWith(PandoraBootRunner.class) @DelegateTo(SpringJUnit4ClassRunner.class) // 加载测试需要的类,一定要加入 Spring Boot 的启动类,其次需要加入本类。 @SpringBootTest(classes = {HSFProviderApplication.class, HelloServiceTest.class }) @Component public class HelloServiceTest { /** * 当使用 @HSFConsumer 时,一定要在 @SpringBootTest 类加载中,加载本类,通过本类来注入对象,否则当做泛化时,会出现类转换异常。 */ @HSFConsumer(generic = true) HelloService helloService; //普通的调用 @Test public void testInvoke() { TestCase.assertEquals("hello world", helloService.echo("hello world")); } //泛化调用 @Test public void testGenericInvoke() { GenericService service = (GenericService) helloService; Object result = service.$invoke("echo", new String[] {"java.lang.String"}, new Object[] {"hello world"}); TestCase.assertEquals("hello world", result); } //返回值 Mock @Test public void testMock() { HelloService mock = Mockito.mock(HelloService.class, AdditionalAnswers.delegatesTo(helloService)); Mockito.when(mock.echo("")).thenReturn("beta"); TestCase.assertEquals("beta", mock.echo("")); } }

1934890530796658 2020-03-27 18:22:24 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播