Amp

数据调度平台系统二大种类及其实现方法与流程

不问归期 提交于 2020-08-08 05:02:06
什么是调度系统 调度系统,更确切地说, 作业调度系统(Job Scheduler) 或者说 工作流调度系统(workflow Scheduler) 是任何一个稍微有点规模,不是简单玩玩的大数据开发平台都必不可少的重要组成部分。 除了Crontab,Quartz这类偏单机的定时调度程序/库。开源的分布式作业调度系统也有很多, 比较知名的比如:oozie,azkaban,chronos,zeus 等等,此外,还有 包括阿里的TBSchedule,SchedulerX ,腾讯的Lhotse以及我司历尽 十年磨砺的TASKCTL 作业系统的两大种类 现在市面上的调度系统根据功能性可以分为两类 定时类作业调度系统 & DAG工作流类作业调度系统 这两类系统的架构和功能实现通常存在很大的差异,下面就来跟大家普及一下这两种作业系统的不同之处; 定时类作业系统 定时类系统的方向,重点定位于大量并发的任务分片执行场景; 在实际应用场景中,通常平时维护工作需要定时执行的业务逻辑相对离散无序,仅仅存在一定的简单关联。 例如: 需要定时批量清理一批机器的磁盘空间, 需要定时生成一批商品清单, 需要定时批量对一批数据建索引, 需要定时对一批用户发送推送通知等等。 核心目标基本两点: 1.作业分片逻辑支持: 将一个大的任务拆分成多个小任务分配到不同的服务器上执行, 难点在于要做到不漏,不重,保证负载平衡

云图说|管理与部署域家族云图说重磅推出:一图在手,谁与争锋!

感情迁移 提交于 2020-08-08 04:55:57
摘要: 管理与部署域服务包括云监控、云审计服务、云日志服务、标签管理服务、消息通知服务,这些服务为您的云资源管理提供便利。 在日常工作中,我们往往要对云资源进行部署和管理,为了方便快捷,提高工作效率,管理与部署域的服务便应运而生。管理与部署域服务可以实现对云资源的监控和日志审计,同时可以帮助您便捷的完成对各类云资源的部署、管理和维护。 “云图说”带您总览管理与部署域的服务在整个公有云系统中的角色和地位,再对各个服务进行单点描述。 您也可以点击“了解更多”,管理与部署域服务等着您! 点击关注,第一时间了解华为云新鲜技术~ 来源: oschina 链接: https://my.oschina.net/u/4526289/blog/4328488

设计通用请求与返回加解密处理

不问归期 提交于 2020-08-08 04:37:58
1. 场景 1.要求对接口中部分输入和输出参数进行加解密。如密码要求前端加密后传给后端进行解密。 2.对整个请求头requestBody和返回内容ResponseBody进行加解密,如涉及到金额时,整个请求内容都加密传输。 2.解决方案 为了减少代码的侵入,采用注解形式进行处理。 /** * 进行参数解密 */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DecryptField { String algorithm() default "AES"; } /** * 进行参数加密 */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface EncryptField { String algorithm() default "AES"; } @Target({ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface DecryptRequestBody { boolean decryptBody

PHP字符串加密解密

白昼怎懂夜的黑 提交于 2020-08-08 04:28:12
/** * 字符串加密、解密函数 * @param string $string 字符串 * @param string $operation ENCODE为加密,DECODE为解密,可选参数,默认为ENCODE, * @param string $key 密钥:数字、字母、下划线 * @param int $expiry 过期时间 * @return string */ function str_crypt($string, $operation = 'ENCODE', $key = '', $expiry = 0) { $key_length = 4; $key = md5($key != '' ? $key : KEY); $fixedkey = md5($key); $egiskeys = md5(substr($fixedkey, 16, 16)); $runtokey = $key_length ? ($operation == 'ENCODE' ? substr(md5(microtime(true)), -$key_length) : substr($string, 0, $key_length)) : ''; $keys = md5(substr($runtokey, 0, 16) . substr($fixedkey, 0, 16) . substr(

Consul 启动命令,Web UI

柔情痞子 提交于 2020-08-08 04:24:04
一、服务端: nohup consul agent -server -bootstrap-expect 1 -config-dir /etc/consul.d/ -data-dir /var/opt/consul -bind=125.72.214.83 >> /var/opt/consul/consul.log 2>&1 注册服务: curl -X PUT -d '{"type":"localService","outPort":8085,"outPath":"/websocket", "forwardAddress":"125.72.2·4.83", "forwardPort":"8085"}' http: // localhost:8500/v1/kv/websocket/my webui添加: http://localhost:8500/ui -client 0.0.0.0 -ui 二、客户端: nohup consul agent -config-dir /etc/consul.d/ -data-dir /var/opt/consul -bind=121.42.204.73 -join=121.42.204.73 >consul.log 2>&1 & 1. 配置生效顺序 : 命令行>环境变量>配置文件 2. 重加载 : SIGHUP信号触发。 3. 命令行配置 :

软件测试人如何体现自己的价值?

夙愿已清 提交于 2020-08-08 04:03:49
首先,我们了解软件测试从业者处于阶段:高级岗位、中级从业者、菜鸟小白。 高级岗位:部门leader、核心测试开发岗位等。->对应的上级是:质量部Leader(经理/总监)、技术VP->公司老板。 中级岗位:能独立负责一个项目的整体测试工作,从事2-3年的从业者。 初级岗位:刚入行1年左右。 高级岗位汇报工作注意 (1)汇报对象:质量部Leader 1.考虑当前部分现状,了解部门leader的期望,需要处理什么问题。整年部门规范。 2.落地能力、事项推进能能力。主动推进一些事项落地、主动汇报进度、主动抛出问题并给出一些思考。 3.万一leader不满意时,沟通问题,高效处理。 (2)汇报对象:老板(无论是否懂技术) 1.规划部门发展方向,提高全公司的研发效率&质量(减少线上问题反馈、bug漏测率) 2.制定一些流程规范。 3.梳理公司目前存在的问题,并且提出建议。 4.培养团队能力,提升团队的能力和士气。 5.通过实际数据来体现价值。如:bug率每周下降,把其他部门关注的数据报表化。 高级岗位了解知识 1.业务能力 (1)功能业务:确定核心业务后,再开始进行任务。 (2)了解业务:深刻理解业务,尤其Leader更要首当其冲,仔细评估产品原型、交互设计,我们是关键人物先过初稿确定技术、运营可行避免浪费集体的时间,然后所有相关人一起过。 (3)保持节奏感

运维告警管理——告警的灵活分派

偶尔善良 提交于 2020-08-08 02:38:06
当下 IT 运维 人员的一大头疼事,便是复杂而凌乱的告警,无法将告警信息进行灵活分类,通知给不同的人,这样就加大了运维人员对告警信息的判断难度,进而无法快速的的定位到根因,也就无法快速的解决问题。 睿象云 智能告警 平台Cloud Alert(简称CA)快速接入各类事件,通过人工智能算法自动发现、诊断、修复IT系统运行事故,并能帮助企业形成最佳事件管理流程,让业务运行更加安全可靠; 灵活的分派策略: 在CA的分派策略当中,用户可以根据不同的应用,选定不同的筛选条件,将条件相结合,让指定的告警通知到特定的人;例如:在zabbix应用中,用户可以选择告警级别、告警内容、主机、服务、告警对象、hostgroups、applications等筛选条件,将告警条件相结合,使得告警通知到的人。用户也可以选择将告警通知到组、排班、钉钉、企业微信等协作通知方式;为了防止重要的告警遗漏,CA平台也推出了分派升级策略,当告警在用户指定的时间内未被认领或关闭时,会通知到第二负责人,同样的也可以设置第三、第四负责人,以此类推。 功能详情见视频: http://video.aiops.com/CA.assignment.mp4 或扫描二维码观看视频: 更多功能欢迎登陆 睿象云 官网进行体验~ 来源: oschina 链接: https://my.oschina.net/u/4157713/blog

Java并发编程七 CAS自旋锁

拟墨画扇 提交于 2020-08-07 21:36:18
public class CASLockUtil { public static AtomicReference casLock = new AtomicReference<Thread>() ; /** * 加锁 * @param waitMillis 重试时间,如果超过这个时间则放弃当前的锁Millis * @return */ public static boolean lock ( long waitMillis){ long end = System. currentTimeMillis ()+waitMillis ; boolean isLock = casLock .compareAndSet( null, Thread. currentThread ()) ; while (!isLock&&end> System. currentTimeMillis ()){ isLock = casLock .compareAndSet( null, Thread. currentThread ()) ; } //如果是0就无限尝试 while (waitMillis== 0 &&!isLock){ isLock = casLock .compareAndSet( null, Thread. currentThread ()) ; } return isLock ; } /**

02Vulkan——应用程序架构与创建实例

流过昼夜 提交于 2020-08-07 21:33:49
1.总体结构 #include <vulkan/vulkan.h> #include <iostream> #include <stdexcept> #include <functional> class CApplicationTest { public: void run() { initVulkan(); mainLoop(); cleanup(); } private: void initVulkan() { } void mainLoop() { } void cleanup() { } }; int main() { CApplicationTest ApplicationTest; try { app.run(); } catch (const std::runtime_error& e) { std::cerr << e.what() << std::endl; return EXIT_FAILURE; } return EXIT_SUCCESS; } 头文件作用: 首先从 LunarG SDK 中添加 Vulkan 头文件,它提供了 Vulkan 应用程序需要的函数、结构体、和枚举。 stdexcept 和 iostream 头文件用于抛出异常信息,而 functional 头文件用于资源管理部分支持 lambda 表达式。 程序思路: 程序被封装到一个类中

freemaker简单分页功能

岁酱吖の 提交于 2020-08-07 21:31:05
<#-- page 页码 totalPages 总页数 --> <#macro pageTag page totalPages url> <style> .china-pages{ width: 100%; height: 36px; text-align: center; margin: 30px auto; font-size: 14px; color: #999; } .china-pages a{ height: 34px; border: 1px solid #e4e4e4; line-height: 34px; text-align: center; display: inline-block; padding: 0 13px; font-size: 14px; color: #999; margin: 0 3px; } .china-pages a:hover{ color: #c00; border-color: #c00; } .china-pages a.cur{ background: #c00; color: #fff; border-color: #c00; } .china-pages span{ margin: 0 3px;} .china-pages input{ width: 48px; height: 34px; padding: 0 4px;