• 关于

    容器服务固定ip

    的搜索结果

问题

容器服务固定ip

阿里云的容器服务启动的docker,怎么固定容器的ip地址,我要借第三方服务的api,有ip白名单的要求,阿里云的docker容器怎么固定ip 地址,防止重启的时候ip...
易奇门 2019-12-01 18:51:41 188 浏览量 回答数 1

问题

kubernetes容器出网ip如何固定?

容器里的服务需要访问外网服务,该服务有白名单限制,如何固定出网ip,不用每次都要添加?...
91拼团 2019-12-01 18:57:52 532 浏览量 回答数 1

问题

【精品问答】Docker与JVM常见bug解决方案50问(附源码)

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。每个Java程序都离不开Java虚拟机&#x...
游客pklijor6gytpx 2019-12-01 21:57:35 53 浏览量 回答数 0

问题

如何用域名访问带端口的ip?

同一个服务器,同一个ip,我有三个容器,apache 用端口80,nginx用端口9090,tomcat用端口8080,有多个域名,现在想实现如下功能:aa.com 访问apachebb.com 访问nginxcc.com 访问tomcat...
06peng 2019-12-01 20:26:07 1348 浏览量 回答数 3

问题

使用Docker容器的十大误区

​本文来源:Ghostcloud原创     对于用户来说,可能一开始在不了解的情况下会对容器报以拒绝的态度,但是在尝到容器的甜头、体验到它的强大性能之后,相信大家最终是无...
ghostcloud 2019-12-01 21:10:44 7758 浏览量 回答数 1

回答

1. 可以根据来访IP或token等等固定特征来转发固定服务端,轮询策略就有这么一种的 2. sync instance 3.  JProfiler神器,不过是收费软件,免费用VisualVM或者自带的Jvisualvm 看看######1. 在负载均衡器上进行配置,比如nginx根据ip分发 2. 类似Spring容器代理方式实现 3. jmap dump内存文件后,使用Eclipse Memory Analyzer进行内存泄露分析 ######1、使用路由,如nginx或者ha等 2、参见http://blog.csdn.net/cselmu9/article/details/51366946 3、导出内存dump,分析大对象,检查回收是否合理###### 引用来自“Eric_林”的评论 1. 可以根据来访IP或token等等固定特征来转发固定服务端,轮询策略就有这么一种的 sync instance 3.  JProfiler神器,不过是收费软件,免费用VisualVM或者自带的Jvisualvm 看看 感谢这位朋友的回复,主要是第二个问题,需要实现一个线程安全的单例模式,需要懒加载模式,而且是不能出现sync和lock关键字的,我在网上找到一个类似的实例,请帮忙看下是否可行。最后能否给举个简单的代码例子,谢谢 ######回复 @Eric_林 : 定时任务?######参考 http://blog.csdn.net/huyang1990/article/details/78551578###### 引用来自“cxxyjsj”的评论 在负载均衡器上进行配置,比如nginx根据ip分发类似Spring容器代理方式实现jmap dump内存文件后,使用Eclipse Memory Analyzer进行内存泄露分析 感谢这位朋友的回复,主要是第二个问题,需要实现一个线程安全的单例模式,需要懒加载模式,而且是不能出现sync和lock关键字的,我在网上找到一个类似的实例,请帮忙看下是否可行。最后能否给举个简单的代码例子,谢谢 ###### 引用来自“尚浩宇”的评论 1、使用路由,如nginx或者ha等 2、参见http://blog.csdn.net/cselmu9/article/details/51366946 3、导出内存dump,分析大对象,检查回收是否合理 感谢这位朋友的回复,主要是第二个问题,需要实现一个线程安全的单例模式,需要懒加载模式,而且是不能出现sync和lock关键字的,我在网上找到一个类似的实例,请帮忙看下是否可行。最后能否给举个简单的代码例子,谢谢 ######回复 @smh821025 : 看着没问题######回复 @尚浩宇 : 上面这个写法正确么######我记得最好的好像是用枚举实现单例######1.可以路由。比如dubbo可以按参数路由。但实际上不会有人这么做,一般服务都是没状态的 2.可以使用原子类或者volatile 3.jmap可以把堆导出来,甚至可以分析到每种类有多少个实例,内容是什么######第二问题:基于静态内部类的单例模式######加内存
kun坤 2020-06-09 11:34:25 0 浏览量 回答数 0

问题

独家| 对阿里云庞大的技术产品一知半解?这里是16大领域,超过4000个技术问答

hi developers~ 四月初,为解决大家对于云计算问题难以找到正确答案的难题,四位热心大咖做了一件“轰轰烈烈”的事情~我们将阿里云帮助文档中频率出现最高的内容全部整理出来,供大家参考以及查阅...
问问小秘 2020-04-03 13:39:45 14707 浏览量 回答数 10

回答

拿PHP提供的session来说,默认使用的是文件存储的方式,会话文件就保存在当前的服务器,一般是/tmp下: session.save_handler=files session.save_path=/tmp PHP的会话机制会给客户端设置一个cookie用来保存sesseion_id,对应服务器上的会话文件/tmp/sess_ sesseion_id 把这些session绑定在本机的Web应用放到 Nginx的upstream应用集群应该是不合适的,就算 设置ip_hash让固定IP只访问一个后端, 但如果客户端IP在会话中改变,那就有可能连上后端其他的服务器,这样会导致找不到会话. 还有如果这台后端服务器宕机,那用户的会话也会丢失. 所以最好还是自己用cookie实现一套适合自己的session机制,比如用mysql内存表或者memcached来保存cookie对应的会话数据,非关键和不敏感的数据直接设置cookie保存到客户端,这样会话数据就不会存储在具体的应用服务器上,方便了使用Nginx的 upstream进行php-fpm应用服务器集群扩展. 引用来自“eechen”的答案 拿PHP提供的session来说,默认使用的是文件存储的方式,会话文件就保存在当前的服务器,一般是/tmp下: session.save_handler=files session.save_path=/tmp PHP的会话机制会给客户端设置一个cookie用来保存sesseion_id,对应服务器上的会话文件/tmp/sess_ sesseion_id 把这些session绑定在本机的Web应用放到 Nginx的upstream应用集群应该是不合适的,就算 设置ip_hash让固定IP只访问一个后端, 但如果客户端IP在会话中改变,那就有可能连上后端其他的服务器,这样会导致找不到会话. 还有如果这台后端服务器宕机,那用户的会话也会丢失. 所以最好还是自己用cookie实现一套适合自己的session机制,比如用mysql内存表或者memcached来保存cookie对应的会话数据,非关键和不敏感的数据直接设置cookie保存到客户端,这样会话数据就不会存储在具体的应用服务器上,方便了使用Nginx的 upstream进行php-fpm应用服务器集群扩展. 回复 @eechen:同样多谢大神,我刚开始学习nginx,太复杂的话反而我怕造成其他问题,ip_hase这样的方式也算是适合我们想在的系统环境了,不是完全“均衡”的负载,但是也能分担单个节点压力,存在节点的宕机风险导致部分用户无法使用,也好过现在单个节点承受的风险,是不是这个道理哈~~这个你最好问下Tengine作者 @shudu,看看有没有可行的方法。把内网特定的IP段用Nginx分流到后端Tomcat上,可以试着这样干: server{if($remote_addr=192.168.0.20){location~\.(jsp|do)${proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$remote_addr;proxy_set_headerHost$host;proxy_passhttp://192.168.0.1:8080;}}} 把来自192.168.0.20的jsp和do请求proxy给后面192.168.0.1的服务器。 条件$remote_addr 那里可以用正则匹配一个IP段,这样应该就可以把该IP段的动态请求导到指定的Tomcat服务器上。后台系统是java吗?回复 @夏天198801:不一定非要序列化,可以后台转换成json,存入memcached,取出json再映射成session回复 @屁屁果:额,这个之前试过,但是后来发现tomcat里面有一个工程的session没有序列化,做不了session共享,上面描述问题里面我也提到过了,我们的开发不好协调,找他们做session序列化没做好回复 @夏天198801:可以扩展tomcat,实现容器级别的session共享,就和应用没有关系了http://www.9iu.org/2011/11/25/tomcat-memcached-session-sso.html是啊,后台是java,容器是tomcat 可以把session托管到memcache或者redis嘛 推荐你使用Tengine: 1、使用Tengine的consistent_hash功能,以你的登录的cookie为key,这样的话一个固定的用户(登录cookie值)可以hash到一台固定的机器上。 2、如果没有登录(即没有登录cookie),则使用round-robin方式(默认的负载均衡方式)。 3、你可以使用if来判断cookie值是否为空。兼容从nginx转tengine有无什么限制?都兼容么?赞一个mark客户端服务器session是靠浏览器cookie维持的,每次去请求都会带一个参数SESSIONID。so...只要把nginx的分发策略设置为根据cookie中的SESSIONID来分发。可以满足你的需求。只要第一次登陆(不管ip是否登陆过)都会走负载,重新分配节点;如果已经访问过(带cookie)则可以保证分配到同一节点。QQ:875881559欢迎交流
爱吃鱼的程序员 2020-06-22 14:22:45 0 浏览量 回答数 0

回答

Re大家是怎么防止SLB健康检查写入服务器日志 况且这破SLB还不如云监控, 因为出问题没法收到邮件或短信提醒..... ------------------------- 回 2楼(billlee) 的帖子 老大, 专门一个端口不能保证网站的端口正常的呀...... 能否针对nginx, apache, IIS...等推出一些过滤教程......这样省事多了, 也不担心真实端口挂了没法知道. 我自己尝试过滤的, 但是发现检查的IP总是换来换去不固定.... ------------------------- 回 4楼(billlee) 的帖子 菜鸟看不懂啊.也不会. 希望强大工程师团队让工作简化, 直接提供解决方案. 谢谢 ------------------------- 公布一下解决方案: Apache, IIS(其他的也差不多):1.新建一个空站点(首页放个空文件也行:如空的index.html文件)2.使用当前端口(无需用其他端口)新增一个站点. 并把服务器头设置为: slbtest.你的域名.com3.启动服务器容器保证能正常打开新站点4.进入SLB设置,打开健康检查, 无需修改任何一个地方,把域名设置为上面的域名就可以了.(这个域名不需要在万网域名中配置, 只是一个假的头而已. 你无需为它做解析).最后保存5.打开你的云服务器, 等一会儿并打开日志, 确保目前正在正常记录检查SLB日志.6.针对刚新建的站点, 关闭日志. (关闭日志方法就不写了, 自己网上搜一下). 然后重启服务器容器这样就能在同端口下利用指定的域名头访问站点, 域名外网用户也访问不了,因为没做解析. 同一个端口挂了也能顺利检测到.也不需要单独配置过滤IP来消耗资源最后说一下, 使用SLB大家最好别关闭健康检查, 如果你有两个云服务器连接到SLB, 如果其中一个宕机或端口挂了. 健康检测查到后自动把所有请求转到正常的云服务器, 如果你关闭了. 它完全不知啊.所以还是会有请求转到有问题云服务器,而用户就无法打开网页.  你就杯具了.
huangjinshe 2019-12-02 02:55:22 0 浏览量 回答数 0

问题

容器服务中使用 ELK

本文档介绍如何在容器服务里使用 ELK。 背景信息 日志是 IT 系统的重要组成部分,记录了系统在什么时候发生了什么事情。我们可以根据日志排查系统故障,也可以做统计分析。 通常日志存放在本机的日志文件里&#...
反向一觉 2019-12-01 21:23:24 1839 浏览量 回答数 0

问题

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

为了方便Java开发者快速找到相关技术问题和答案,开发者社区策划了Java技术1000问内容,包含最基础的如何学Java、实践中遇到的技术问题、RocketMQ面试、Java容器部署实践等维度内容。 我们会以每...
问问小秘 2019-12-01 21:57:43 46087 浏览量 回答数 16

回答

Cromwell 是 Broad Institute 开发的工作流管理系统,当前已获得阿里云批量计算服务的支持。通过 Cromwell 可以将 WDL 描述的 workflow 转化为批量计算的作业(Job)运行。用户将为作业运行时实际消耗的计算和存储资源付费,不需要支付资源之外的附加费用。本文将介绍如何使用 Cromwell 在阿里云批量计算服务上运行工作流。 准备工作 A) 开通批量计算服务 要使用批量计算服务,请根据官方文档里面的指导开通批量计算和其依赖的相关服务,如OSS等。 注意:创建 OSS Bucket 的区域,需要和使用批量计算的区域一致。 B) 下载 Cromwell Cromwell 官方下载 注意:为了确保所有的特性可用,建议下载45及之后的最新版本。 C) 开通 ECS 作为 Cromwell server 当前批量计算提供了 Cromwell server 的 ECS 镜像,用户可以用此镜像开通一台 ECS 作为 server。镜像中提供了 Cromwell 官网要求的基本配置和常用软件。在此镜像中,Cromwell 的工作目录位于/home/cromwell,上一步下载的 Crowwell jar 包可以放置在 /home/cromwell/cromwell 目录下。 注意:用户也可以自己按照 Cromwell 官方的要求自己搭建 Cromwell server, 上面的镜像只是提供了方便的方式,不是强制要求。 使用 Cromwell 配置文件 Cromwell 运行的配置文件,包括: Cromwell 公共配置。 批量计算相关配置,包含了批量计算作为后端需要的存储、计算等资源配置。 关于配置参数的详细介绍请参考 Cromwell 官方文档。如下是一个批量计算配置文件的例子 bcs.conf: include required(classpath("application")) database { profile = "slick.jdbc.MySQLProfile$" db { driver = "com.mysql.jdbc.Driver" url = "jdbc:mysql://localhost/db_cromwell?rewriteBatchedStatements=true&useSSL=false&allowPublicKeyRetrieval=true" user = "user_cromwell" #Your mysql password password = "" connectionTimeout = 5000 } } workflow-options { workflow-log-dir = "/home/cromwell/cromwell/logs/" } call-caching { # Allows re-use of existing results for jobs you've already run # (default: false) enabled = false # Whether to invalidate a cache result forever if we cannot reuse them. Disable this if you expect some cache copies # to fail for external reasons which should not invalidate the cache (e.g. auth differences between users): # (default: true) invalidate-bad-cache-results = true } docker { hash-lookup { enabled = false # Set this to match your available quota against the Google Container Engine API #gcr-api-queries-per-100-seconds = 1000 # Time in minutes before an entry expires from the docker hashes cache and needs to be fetched again #cache-entry-ttl = "20 minutes" # Maximum number of elements to be kept in the cache. If the limit is reached, old elements will be removed from the cache #cache-size = 200 # How should docker hashes be looked up. Possible values are "local" and "remote" # "local": Lookup hashes on the local docker daemon using the cli # "remote": Lookup hashes on docker hub and gcr method = "remote" #method = "local" alibabacloudcr { num-threads = 5 #aliyun CR credentials auth { #endpoint = "cr.cn-shanghai.aliyuncs.com" access-id = "" access-key = "" } } } } engine { filesystems { oss { auth { endpoint = "oss-cn-shanghai.aliyuncs.com" access-id = "" access-key = "" } } } } backend { default = "BCS" providers { BCS { actor-factory = "cromwell.backend.impl.bcs.BcsBackendLifecycleActorFactory" config { root = "oss://your-bucket/cromwell_dir" region = "cn-shanghai" access-id = "" access-key = "" filesystems { oss { auth { endpoint = "oss-cn-shanghai.aliyuncs.com" access-id = "" access-key = "" } caching { # When a cache hit is found, the following duplication strategy will be followed to use the cached outputs # Possible values: "copy", "reference". Defaults to "copy" # "copy": Copy the output files # "reference": DO NOT copy the output files but point to the original output files instead. # Will still make sure than all the original output files exist and are accessible before # going forward with the cache hit. duplication-strategy = "reference" } } } default-runtime-attributes { failOnStderr: false continueOnReturnCode: 0 autoReleaseJob: true cluster: "OnDemand ecs.sn1.medium img-ubuntu-vpc" #cluster: cls-6kihku8blloidu3s1t0006 vpc: "192.168.0.0/16" } } } } } 如果使用前面章节中的镜像开通 ECS 作为 Cromwell server,配置文件位于 /home/cromwell/cromwell/bcs_sample.conf,只需要填写自己的配置即可使用 Cromwell。 注意:Cromwell 可以在公网环境(如本地服务器、配置了公网 IP 的阿里云 ECS 等)运行,也可以在阿里云 VPC 环境下运行。在 VPC 环境下使用时,有如下几处要修改为 VPC 内网下的配置: OSS 的内网 endpoint : engine.filesystems.oss.auth.endpoint = "oss-cn-shanghai-internal.aliyuncs.com" backend.providers.BCS.config.filesystems.oss.auth.endpoint = "oss-cn-shanghai-internal.aliyuncs.com" 添加批量计算的内网 endpoint: backend.providers.BCS.config.user-defined-region = "cn-shanghai-vpc" backend.providers.BCS.config.user-defined-domain = "batchcompute-vpc.cn-shanghai.aliyuncs.com" 添加容器镜像服务的内网 endpoint: docker.hash-lookup.alibabacloudcr.auth.endpoint = "cr-vpc.cn-shanghai.aliyuncs.com" 运行模式 Cromwell支持两种模式: run 模式 server 模式 关于两种模式的详细描述,请参考 Cromwell 官网文档。下面重点介绍这两种模式下如何使用批量计算。 A) run模式 run模式适用于本地运行一个单独的 WDL 文件描述的工作流,命令行如下:java -Dconfig.file=bcs.conf -jar cromwell.jar run echo.wdl --inputs echo.inputs WDL 文件:描述详细的工作流。工作流中每个 task 对应批量计算的一个作业(Job)。 inputs文件:是 WDL 中定义的工作流的输入信息inputs 文件是用来描述 WDL 文件中定义的工作流及其 task 的输入文件。如下所示: { "workflow_name.task_name.input1": "xxxxxx" } 运行成功后,WDL 文件中描述的工作流中的一个 task 会作为批量计算的一个作业(Job)来提交。此时登录批量计算的控制台就可以看到当前的 Job 状态。 show_bcs_job 当 workflow 中所有的 task 对应的作业运行完成后,工作流运行完成。 B) server 模式 启动 server 相比 run 模式一次运行只能处理一个 WDL 文件,server 模式可以并行处理多个 WDL 文件。关于 server 模式的更多信息,请参考 Cromwell 官方文档。可以采用如下命令行启动 server:java -Dconfig.file=bsc.conf -jar cromwell.jar serverserver 启动成功后,就可以接收来自 client 的工作流处理请求。下面分别介绍如何使用 API 和 CLI 的方式向 server 提交工作流。 使用 API 提交工作流 server 启动后,可以通过浏览器访问 Cromwell Server,比如 Server 的 IP 为39.105.xxx.yyy,则在浏览器中输入http://39.105.xxx.yyy:8000,通过如下图所示的界面提交任务:cromwell_server更多API接口及用法,请参考 Cromwell 官网文档。 使用 CLI 提交工作流[推荐] 除了可以使用 API 提交工作流以外,Cromwell 官方还提供了一个开源的 CLI 命令行工具 widder。可以使用如下的命令提交一个工作流: python widdler.py run echo.wdl echo.inputs -o bcs_workflow_tag:tagxxx -S localhost 其中-o key:value是用于设置option,批量计算提供了 bcs_workflow_tag:tagxxx 选项,用于配置作业输出目录的tag(下一节查看运行结果中会介绍)。 如果使用前面章节中的镜像开通 ECS 作为 Cromwell server,镜像中已经安装了 widdler,位于 /home/cromwell/widdler。可以使用如下的命令提交工作流: widdler run echo.wdl echo.inputs -o bcs_workflow_tag:tagxxx -S localhost 更多命令用法可使用widdler -h命令查看,或参考官方文档。 查看运行结果 工作流运行结束后,输出结果被上传到了配置文件或 WDL 中定义的 OSS 路径下。在OSS路径上面的目录结构如下: cromwell_output_dir如上图所示,在配置文件中的config.root目录下有如下输出目录: 第一层:workflowname 工作流的名称 第二层:通过上一节中 CLI 命令的-o设置的目录tag 第三层:workflow id,每次运行会生成一个 第四层:workflow 中每个 task 的运行输出,比如上图中的 workflow 15e45adf-6dc7-4727-850c-89545faf81b0 有两个 task,每个task对应的目录命名是call-taskname,目录中包含三部分内容: 批量计算的日志,包括 bcs-stdout 和 bcs-stderr 当前 task 的输出,比如图中的 output1/output2 等 当前 task 执行的 stdout 和 stderr 4. 使用建议 在使用过程中,关于 BCS 的配置,有如下的建议供参考: 使用集群 批量计算提供了两种使用集群的方式: 自动集群 固定集群 A) 自动集群 在config配置文件中指定默认的资源类型、实例类型以及镜像类型,在提交批量计算 Job 时就会使用这些配置自动创建集群,比如: default-runtime-attributes { cluster : "OnDemand ecs.sn1ne.large img-ubuntu-vpc" } 如果在某些 workflow 中不使用默认集群配置,也可以通过inputs文件中指定 workflow 中某个 task 的对应的批量计算的集群配置(将 cluster_config 作为 task 的一个输入),比如: { "workflow_name.task_name.cluster_config": "OnDemand ecs.sn2ne.8xlarge img-ubuntu-vpc" } 然后在 task 中重新设置运行配置: task task_demo { String cluster_config runtime { cluster: cluster_config } } 就会覆盖默认配置,使用新的配置信息创建集群。 B) 固定集群 使用自动集群时,需要创建新集群,会有一个等待集群的时间。如果对于启动时间有要求,或者有了大量的作业提交,可以考虑使用固定集群。比如: default-runtime-attributes { cluster : "cls-xxxxxxxxxx" } 注意:使用固定集群时,如果使用完毕,请及时释放集群,否则集群中的实例会持续收费。 Cromwell Server 配置建议 大压力作业时,建议使用较高配置的机器作为 Cromwell Server,比如ecs.sn1ne.8xlarge等32核64GB的机器。 大压力作业时,修改 Cromwell Server 的最大打开文件数。比如在ubuntu下可以通过修改/etc/security/limits.conf文件,比如修改最大文件数为100万: root soft nofile 1000000 root hard nofile 1000000 * soft nofile 1000000 * hard nofile 1000000 确认 Cromwell Server 有配置数据库,防止作业信息丢失。 设置 bcs.conf 里面的并发作业数,比如 system.max-concurrent-workflows = 1000 开通批量计算相关配额 如果有大压力场景,可能需要联系批量计算服务开通对应的配额,比如: 一个用户所有作业的数量(包括完成的、运行的、等待的等多种状态下); 同时运行的作业的集群的数量(包括固定集群和自动集群); 使用 NAS 使用 NAS 时要注意以下几点: NAS 必须在 VPC 内使用,要求添加挂载点时,必须指定 VPC; 所以要求在 runtime 中必须包含: VPC 信息 mounts 信息 下面的例子可供参考: runtime { cluster: cluster_config mounts: "nas://1f****04-xkv88.cn-beijing.nas.aliyuncs.com:/ /mnt/ true" vpc: "192.168.0.0/16 vpc-2zexxxxxxxx1hxirm" } 高级特性支持 Glob Cromwell 支持使用 glob 来指定工作流中多个文件作为 task 的输出,比如: task globber { command <<< for i in seq 1 5 do mkdir out-$i echo globbing is my number $i best hobby out-$i/$i.txt done output { Array[File] outFiles = glob("out-/.txt") } } workflow test { call globber } 当 task 执行结束时,通过 glob 指定的多个文件会作为输出,上传到 OSS 上。 Call Caching Call Caching 是 Cromwell 提供的高级特性,如果检测到工作流中某个 task (对应一个批量计算的 job )和之前已经执行过的某个 task 具有相同的输入和运行时等条件,则不需要再执行,直接取之前的运行结果,这样可以为客户节省时间和费用。一个常见的场景是如果一个工作流有 n 个 task,当执行到中间某一个 task 时由于某些原因失败了,排除了错误之后,再次提交这个工作流运行后,Cromwell 判断如果满足条件,则已经完成的几个 task 不需要重新执行,只需要从出错的 task 开始继续运行。 配置 Call Caching 要在 BCS 后端情况下使用 Call Caching 特性,需要如下配置项: database { profile = "slick.jdbc.MySQLProfile$" db { driver = "com.mysql.jdbc.Driver" url = "jdbc:mysql://localhost/db_cromwell?rewriteBatchedStatements=true&useSSL=false" user = "user_cromwell" password = "xxxxx" connectionTimeout = 5000 } } call-caching { # Allows re-use of existing results for jobs you have already run # (default: false) enabled = true # Whether to invalidate a cache result forever if we cannot reuse them. Disable this if you expect some cache copies # to fail for external reasons which should not invalidate the cache (e.g. auth differences between users): # (default: true) invalidate-bad-cache-results = true } docker { hash-lookup { enabled = true # How should docker hashes be looked up. Possible values are local and remote # local: Lookup hashes on the local docker daemon using the cli # remote: Lookup hashes on alibab cloud Container Registry method = remote alibabacloudcr { num-threads = 10 auth { access-id = "xxxx" access-key = "yyyy" } } } } engine { filesystems { oss { auth { endpoint = "oss-cn-shanghai.aliyuncs.com" access-id = "xxxx" access-key = "yyyy" } } } } backend { default = "BCS" providers { BCS { actor-factory = "cromwell.backend.impl.bcs.BcsBackendLifecycleActorFactory" config { #其他配置省略 filesystems { oss { auth { endpoint = "oss-cn-shanghai.aliyuncs.com" access-id = "xxxx" access-key = "yyyy" } caching { # When a cache hit is found, the following duplication strategy will be followed to use the cached outputs # Possible values: copy, reference. Defaults to copy # copy: Copy the output files # reference: DO NOT copy the output files but point to the original output files instead. # Will still make sure than all the original output files exist and are accessible before # going forward with the cache hit. duplication-strategy = "reference" } } } default-runtime-attributes { failOnStderr: false continueOnReturnCode: 0 cluster: "OnDemand ecs.sn1.medium img-ubuntu-vpc" vpc: "192.168.0.0/16" } } } } } database 配置:Cromwell 将 workflow 的执行元数据存储在数据库中,所以需要添加数据库配置,详细情况参考Cromwell 官网指导。 call-caching 配置:Call Caching 的开关配置等; docker.hash-lookup 配置: 设置 Hash 查找开关及阿里云 CR 等信息,用于查找镜像的 Hash 值。 backend.providers.BCS.config.filesystems.oss.caching 配置:设置 Call Caching命中后,使用原来输出的方式,批量计算在这里支持 reference 模式,不需要拷贝原有的结果,节省时间和成本。 命中条件 使用批量计算作为后端时,Cromwell 通过如下条件判断一个 task 是否需要重新执行: 条件 解释 inputs task 的输入,比如 OSS 上的样本文件 command task 定义中的命令行 continueOnReturnCode 公共运行时参数,可以继续执行的返回码 docker 公共运行时参数,后端的Docker配置 failOnStderr 公共运行时参数,stderr非空时是否失败 imageId 批量计算后端运行时参数,标识作业运行的 ECS 镜像,如果使用的官方镜像如img-ubuntu-vpc可不用填写此项 userData 批量计算后端,用户自定义数据 如果一个 task 的上述参数未发生改变,Cromwell 会判定为不需要执行的 task,直接获取上次执行的结果,并继续工作流的执行。
1934890530796658 2020-03-28 20:47:14 0 浏览量 回答数 0

问题

ECS云服务器产品优化

[font=微软雅黑, 'Microsoft Yahei', 'Hiragino Sans GB', tahoma, arial, 宋体]ECS云服务器产品优化【优化调整】ECS用户带宽升级可以选择“...
ecs优化 2019-12-01 21:34:28 13425 浏览量 回答数 0

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动: 或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了 他们用户自己手中的技术来帮助用户成长 本次活动特邀百位阿里技术专家对Java常...
管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT