Go语言中文网 为您找到相关结果 132

涂鸦智能分布式定时调度系统Sigmax设计与实践

1.导读 Sigmax是涂鸦智能中间件团队基于Golang开发的一款高性能,分布式的定时任务调度引擎。针对IoT领域特有的复杂多样的定时任务场景,Sigmax提供了一套统一,稳定,精准的定时调度平台,来协助公司内各业务线方便的实现定时场景。 目前Sigmax已经在公司内部稳定运行了1年时间,单集群的日任务调度、日均任务触发数达千万次。 2.背景 涂鸦智能作为全球领先的AI+IoT平台,连接着海量的智能设备,每天会有大量的用户控制自己的智能设备以实现一些智能化的场景,比如: 用户A,每天早上7点自动打开窗帘; 用户B,当访客通过智能门禁之后,定时移除访客的权限; 用户C,日出或者日落之后,延时执行一个联动的场景,等等; 除此之外,我们的内部服务之间也存在大量的定时任务,比如: BI同学每天定时...阅读全文

博文 2020-05-30 08:32:42 涂鸦智能技术团队

go任务调度8(op取代get,put,delete方法)

package main import ( "go.etcd.io/etcd/clientv3" "time" "fmt" "context" ) func main() { var ( config clientv3.Config client *clientv3.Client err error kv clientv3.KV putOp clientv3.Op getOp clientv3.Op opResp clientv3.OpResponse ) // 客户端配置 config = clientv3.Config{ Endpoints: []string{"0.0.0.0:2379"}, DialTimeout: 5 * time.Second, } // 建立连接 if clie...阅读全文

博文 2019-04-21 03:35:09 梁十八

Golang实现简单爬虫框架(4)——队列实现并发任务调度

前言 在上一篇文章《Golang实现简单爬虫框架(3)——简单并发版》中我们实现了一个最简单并发爬虫,调度器为每一个Request创建一个goroutine,每个goroutine往Worker队列中分发任务,发完就结束。所有的Worker都在抢一个channel中的任务。但是这样做还是有些许不足之处,比如控制力弱:所有的Worker在抢同一个channel中的任务,我们没有办法控制给哪一个worker任务。 其实我们可以自己做一个任务分发的机制,我们来决定分发给哪一个Worker 注意:本次并发是在上一篇文章简单并发实现的基础上修改,所以没有贴出全部代码,只是贴出部分修改部分,要查看完整项目代码,可以查看上篇文章,或者从github下载项目源代码查看 1、项目架构 在上一篇文章实现简单并发...阅读全文

博文 2019-05-27 21:34:41 盐的甜

2019-08-05

分布式任务调度平台 前言 在企业系统开发过程中难免少不了一些定时任务来进行定时触发执行任务,对于非分布式环境系统中,我们只需要在对应系统中内部集成一些调度库进行配置定时触发即可。 比如:使用Spring框架集成quartz,只需要进行一些简单的配置就能定时执行任务了。但是随着企业的系统越来越多、逐步从单一应用慢慢演变为微服务集群。 在分布式集群系统中主要面临出如:任务的重复执行、没有统一定时任务配置、任务节点故障转移、任务监控&报警等一些列的功能都是要在分布式系统中进行解决。 此分布式的定时任务调度平台,它非常轻量小巧,使用简单,后端以中心服务器为调度核心,负责集群中各种任务的动态分配和调度执行。 在平台前端支持Web界面可视化管理,我们可以创建、暂停/启动任务、删除未执行的任务快照、或者查...阅读全文

博文 2019-08-05 22:32:44 busgo

go任务调度1(go的操作系统命令调用)

package main import ( "fmt" "os/exec" ) func main() { var ( cmd *exec.Cmd err error ) cmd = exec.Command("/bin/bash", "-c", "echo 1") err = cmd.Run() fmt.Println(err) } package main import ( "fmt" "os/exec" ) func main() { var ( cmd *exec.Cmd output []byte err error ) // 生成Cmd cmd = exec.Command("/bin/bash", "-c", "ls -la /") // 执行了命令, 捕获了子进程的输出( p...阅读全文

博文 2019-04-19 16:35:13 梁十八

Golang实现简单爬虫框架(3)——简单并发版

在上篇文章Golang实现简单爬虫框架(2)——单任务版爬虫中我们实现了一个简单的单任务版爬虫,对于单任务版爬虫,每次都要请求页面,然后解析数据,然后才能请求下一个页面。整个过程中,获取网页数据速度比较慢,那么我们就把获取数据模块做成并发执行。在项目的基础上,实现多任务并发版爬虫。 项目github地址:https://github.com/NovemberChopin/golang-crawler, 回滚到相应记录食用,效果更佳。 1、项目架构 首先我们把但任务版爬虫架构中的Fetcher模块和Parser模块合并成一个Worker模块,然后并发执行Worker模块 批注 2019-05-22 090404.png 然后得到并发版的架构图: 批注 2019-05-22 091229.png...阅读全文

博文 2019-05-22 17:34:52 盐的甜

Golang实现简单爬虫框架(2)——单任务版爬虫

上一篇博客《Golang实现简单爬虫框架(1)——项目介绍与环境准备》中我们介绍了go语言的开发环境搭建,以及爬虫项目介绍。 本次爬虫爬取的是珍爱网的用户信息数据,爬取步骤为: 1.进入珍爱网城市页面爬取所有的城市信息 2.进入城市详情页爬取用户URL地址信息 3.进入用户详情页爬取所需要的用户信息 注意:在本此爬虫项目中,只会实现一个简单的爬虫架构,包括单机版实现、简单并发版以及使用队列进行任务调度的并发版实现,以及数据存储和展示功能。不涉及模拟登录、动态IP等技术,如果你是GO语言新手想找练习项目或者对爬虫感兴趣的读者,请放心食用。 1、单任务版爬虫架构 首先我们实现一个单任务版的爬虫,且不考虑数据存储与展示模块,首先把基本功能实现。下面是单任务版爬虫的整体框架 下面是具体流程说明: 1...阅读全文

博文 2019-05-22 09:34:39 jsfantasy

使用docker构建vim-golang开发环境

使用docker构建vim-golang开发环境 原理 docker可以构建一个属于自己的开发环境容器,需要使用时,下载镜像,开箱即用,避免每次都搭建开发环境,浪费不少的时间。 路线图Road Map vim-golang 开发环境 spacemacs Org-mode --放弃,鸡肋 目的(抓住主要矛盾,围绕目标来展开工作) 搭建基于Docker的开箱即用的,工作和开发环境 支持golang开发 支持TypeScript的开发 需要解决的问题 vim插件vim-airline,状态栏图标不显示 --优先级,低 重新构建devenv-vim镜像,使用dockerfile技术构建,减小体积,去除冗余 如何使用 家里-运行 docker run -itd \ `# 注释请忽略,---------...阅读全文

博文 2019-12-13 21:32:40 笑吧小鸟

Win10下sublime text3搭建go语言开发环境--工具篇

进行go语言开发环境的搭建。 最近进行了大量的搜索,因为在搭建的过程中遇到了挺多的问题。先介绍搭建的环境。  系统:Win10  IDE:sublime text3  相关插件:GoSublime  这篇文会介绍如下几个部分:  1、下载Golang  2、sublime text中Package Control的安装(3种方法,重点介绍)  3、安装GoSublime  4、配置sublime settings文件,使得可以直接运行Go文件 一、下载Golang 下载Golang,直接安装。现在会自动配置好GoPath,默认在C://Administrator/User/Go里面,如果不喜欢,可以修改为别的路径。 二、sublime text3中Package Control的安装 方法一...阅读全文

博文 2018-12-12 15:34:46 小胖鸡_1ec6

基于Eclipse的Go语言可视化开发环境

基于Eclipse的Go语言可视化开发环境搭建与使用一个基于Eclipse的Go语言可视化开发环境。注意:在阅读此片经验前,先确保必要工具已经安装或打开工具/原料搭建好Go语言开发环境,详细步骤见经验:http://jingyan.baidu.com/article/c85b7a6414e5ee003bac95c6.htmlEclipse开发平台官方下载地址:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/junosr2当然,如果你所使用的计算机的网速较慢,你也可以选择我已经下载好了的Goclipse(即:无需看步骤2~4了)百度网盘地址:http://pan.baidu.com/share/link...阅读全文

博文 2017-02-09 08:01:02 umigo0819

Snow——简单易用的Go语言业务框架

项目地址 中文文档 changelog Snow Snow是一套简单易用的Go语言业务框架,整体逻辑设计简洁,支持HTTP服务、队列调度和任务调度等常用业务场景模式。 Goals 我们致力于让PHPer更方便地切入到Go语言开发,在业务框架选择上贴合PHP主流框架的设计思想,以更低的学习成本快速熟悉框架,致力于业务逻辑的开发。 Features HTTP服务:基于gin进行模块化设计,简单易用、核心足够轻量;支持平滑重启; 任务调度:基于cron进行模块化设计,简单易用; 队列调度:基于自研的队列调度服务worker,通过Queue接口化,解耦队列调度与底层队列驱动;支持平滑关闭; Cache: 通用的接口化设计,框架实现了redis作为缓存底层驱动,支持可扩展; Database: 使用成...阅读全文

博文 2019-07-09 01:34:21 Wilee

Snow——简单易用的 Go 语言业务框架

## Snow Snow是一套简单易用的Go语言业务框架,整体逻辑设计简洁,支持HTTP服务、队列调度和任务调度等常用业务场景模式。 ## Goals 我们致力于让PHPer更方便地切入到Go语言开发,在业务框架选择上贴合PHP主流框架的设计思想,以更低的学习成本快速熟悉框架,致力于业务逻辑的开发。 ## Features - HTTP服务:基于[gin](https://github.com/gin-gonic/gin)进行模块化设计,简单易用、核心足够轻量;支持平滑重启; - 任务调度:基于[cron](https://github.com/robfig/cron)进行模块化设计,简单易用; - 队列调度:基于自研的队列调度服务[worker](https://github.com/qi...阅读全文

博文 2019-07-09 11:05:57 tinson

图解kubernetes容器探活机制核心实现状态管理

k8s为实现容器探活worker的管理构建了一个Manager组件,该组件负责底层探活worker的管理,并且缓存当前的容器的状态,并对外同步容器的当前状态,今天我们就来分析下其部分核心组件 1. 核心原理实现 Manager缓存的状态主要是会被kubelet、状态组件消费,并且在Pod同步状态的时候,会通过当前Manager里面的探测状态来更新Pod的容器的就绪与启动状态的更新,让我们一起看看Manager自身的一些关键实现吧 2. 探活结果管理 即prober/results/results_manager组件,其主要作用是:存储探测结果和通知探测结果 2.1 核心数据结构 cache负责容器的探测结果的保存,updates则负责对外更新状态的订阅,其通过新的结果和cache中的状态进行...阅读全文

博文 2020-02-12 12:34:18 8小时_2020

Golang实现简单爬虫框架(3)——简单并发版

在上篇文章Golang实现简单爬虫框架(2)——单任务版爬虫中我们实现了一个简单的单任务版爬虫,对于单任务版爬虫,每次都要请求页面,然后解析数据,然后才能请求下一个页面。整个过程中,获取网页数据速度比较慢,那么我们就把获取数据模块做成并发执行。在项目的基础上,实现多任务并发版爬虫。 项目github地址:https://github.com/NovemberCh..., 回滚到相应记录食用,效果更佳。 1、项目架构 首先我们把但任务版爬虫架构中的Fetcher模块和Parser模块合并成一个Worker模块,然后并发执行Worker模块 然后得到并发版的架构图: 在并发版爬虫中,会同时执行多个Worker,每个Worker任务接受一个Request请求,然后请求页面解析数据,输出解析出的Re...阅读全文

博文 2019-05-22 11:34:41 jsfantasy

手摸手教你用go写爬虫之三(单任务版爬虫1.0)

> 本文介绍爬虫相关流程和搭建 ### 1. 项目需求 > 我们的需求分三步: 1. 从租房网站上获取到杭州市的所有区的链接和名称 2. 根据每个区的链接抓取第一页列表内容,找到房屋的链接和名称 3. 根据第2步中获取的链接,抓取对应的房屋的具体信息 ### 2. 项目流程 > step 1 从项目需求中可以分解出俩个信息 三步中均需要抓取 那么就要提供 url 三步中均需要解析 那么需要提供解析函数 func > 每一步解析到的结果我们需要暂存下来,如果含有链接需要继续抓取 这里我们抽象出两个结构体 ```go //请求结构体 type Request struct { Url string ParserFunc func(string) RequestResult } //结果解析结构体...阅读全文

博文 2019-02-20 20:13:19 wujiangwei

Golang websocket结合一致性哈希算法构建高并发推送服务

Golang websocket结合一致性哈希算法构建高并发推送服务 2018年9月2日 1 场景介绍 web应用中,常有业务状态需要实时更新的场景。如一个较长的后台任务,从浏览器用户触发执行到执行完成可能需几十秒的时间,这时前端需隔几秒请求一次后台,查询任务执行进度。此种方式是长轮询的方式,是存在一定弊端的,增加了后台服务的负载,若并发操作量太大,后台压力会成倍激增。业界常采用http1.1的websocket扩展协议与浏览器建立长连接来实现实时业务状态更新。 2 实现方案 本文采用golang实现一个长连接服务,对外提供两个接口,一个是基于http的rest消息发送接口,一个是基于websocket的cient接入接口,如下图所示。 为使前端的接入更简单,从建立连接到用户关闭浏览器,中间...阅读全文

博文 2019-06-21 11:48:46 Larry

Golang实现简单爬虫框架(2)——单任务版爬虫

Golang实现简单爬虫框架(2)——单任务版爬虫 上一篇博客Golang实现简单爬虫框架(1)——项目介绍与环境准备 )中我们介绍了go语言的开发环境搭建,以及爬虫项目介绍。 本次爬虫爬取的是珍爱网的用户信息数据,爬取步骤为: 1.进入珍爱网城市页面爬取所有的城市信息 2.进入城市详情页爬取用户URL地址信息 3.进入用户详情页爬取所需要的用户信息 注意:在本此爬虫项目中,只会实现一个简单的爬虫架构,包括单机版实现、简单并发版以及使用队列进行任务调度的并发版实现,以及数据存储和展示功能。不涉及模拟登录、动态IP等技术,如果你是GO语言新手想找练习项目或者对爬虫感兴趣的读者,请放心食用。 1、单任务版爬虫架构 首先我们实现一个单任务版的爬虫,且不考虑数据存储与展示模块,首先把基本功能实现。下...阅读全文

博文 2019-05-22 01:34:40 盐的甜

Golang实现简单爬虫框架(4)——队列实现并发任务调度

前言 在上一篇文章《Golang实现简单爬虫框架(3)——简单并发版》中我们实现了一个最简单并发爬虫,调度器为每一个Request创建一个goroutine,每个goroutine往Worker队列中分发任务,发完就结束。所有的Worker都在抢一个channel中的任务。但是这样做还是有些许不足之处,比如控制力弱:所有的Worker在抢同一个channel中的任务,我们没有办法控制给哪一个worker任务。 其实我们可以自己做一个任务分发的机制,我们来决定分发给哪一个Worker 注意:本次并发是在上一篇文章简单并发实现的基础上修改,所以没有贴出全部代码,只是贴出部分修改部分,要查看完整项目代码,可以查看上篇文章,或者从github下载项目源代码查看 1、项目架构 在上一篇文章实现简单并发...阅读全文

博文 2019-06-03 23:34:19 盐的甜

大数据工程师技能总结

业务分层划分 边缘部分 数据收集,高效、不丢、资源消耗低、可审计监控 数据传输,域名、链路选择 数据开发,部分数据开发需要下沉到边缘 中央部分 通用基础设施 机器选型,针对不同服务选择合适的机型 集群搭建,选择合适的发行版本 配置管理,做到自动化下发配置,管理集群,服务 监控管理,监控大数据平台组建,为调优、扩容提供数据支撑 数据平台基础 数据接入,选择Flume,易扩展,方便接入各类数据 数据计算,选择Spark,MR 数据存储,Kafka、HDFS、HBase、ClickHouse、ES、Mongodb 计算管理,yarn进行计算资源管理 任务调度,选择azkaban 数据分析,hiveSQL、sparkSQL 数据管理 数据开发,工具封装、任务调度、测试等 数据仓库,ODS、DW(视情...阅读全文

博文 2020-01-08 19:32:48 x4passer

go to definition 总是提示 rebuild fix 解决办法

刚拷贝来工程的时候,go to definition 总是报错误;然而编译也通过了;查了很多资料,自己解决了,解决方法如下:(1)把 options for target 配置下的 output里的 select folder for objects 选择目录下的文件全部删掉(2)把listing菜单栏的里的select folder for listing...和select folder for objects目录选择一样的目录然后在rebuild就可以成功了,如果不成功的小伙伴可以先确认你的文件路径有没有对,还不行可以在其他的地方重新复制一份执行在操作...阅读全文

博文 2019-04-28 14:35:10 我叫妄想

深入理解Go-垃圾回收机制

Go的GC自打出生的时候就开始被人诟病,但是在引入v1.5的三色标记和v1.8的混合写屏障后,正常的GC已经缩短到10us左右,已经变得非常优秀,了不起了,我们接下来探索一下Go的GC的原理吧 三色标记原理 我们首先看一张图,大概就会对 三色标记法 有一个大致的了解: 原理: 首先把所有的对象都放到白色的集合中 从根节点开始遍历对象,遍历到的白色对象从白色集合中放到灰色集合中 遍历灰色集合中的对象,把灰色对象引用的白色集合的对象放入到灰色集合中,同时把遍历过的灰色集合中的对象放到黑色的集合中 循环步骤3,知道灰色集合中没有对象 步骤4结束后,白色集合中的对象就是不可达对象,也就是垃圾,进行回收 写屏障 Go在进行三色标记的时候并没有STW,也就是说,此时的对象还是可以进行修改 那么我们考虑一...阅读全文

博文 2019-08-15 21:02:38 tyloafer

Golang搭建并行版爬虫信息采集框架!

1.简介Go语言在分布式系统领域有着更高的开发效率,提供了海量并行的支持。本博文介绍的是采用Go语言搭建一个并行版爬虫信息采集框架,博文中使用58同城中租房网页做案例。相比较其他爬虫程序它的优点是:1.抓取信息速度非常快,因为是并行处理的,通过配置协程数量,可以比普通的爬虫信息采集程序快上上百倍。2.功能模块化,每个功能模块各司其职,配置简单。通过修改信息抓取规则,就可以采集不同网站中的数据。程序源代码放到github上,链接地址是: https://github.com/GuoZhaoran/crawler2.项目架构下面是项目整体架构的示意图:2.1 Request(请求)该爬虫架构中Request请求可以理解为:抓取请求url的内容,例如抓取58同城北京市的租房信息时,请求的url是:...阅读全文

博文 2018-12-27 14:34:44 919b0c54458f

Go语言开发分布式任务调度 轻松搞定高性能Crontab

第1章 课程介绍本章中将介绍一下本课程的基本内容,包括:我们要做什么、要求什么基础、将学会哪些工具、收获哪些独家干货,以及课程具体安排。1-1 课程导学试看第2章 如何执行shell命令执行"定时任务"其实就是执行"shell命令"。在本章中,将首先带大家区分"程序"与"命令",接着了解bash命令解释器的2种工作模式,并图示分析shell执行任务的底层原理与涉及的系统调用。最后,我们使会用Go语言的Command标准库,实现任务的执行,输出捕获,杀死任务等重要功能。 ...2-1 原理介绍2-2 执行任务2-3 捕获任务输出2-4 强制结束任务第3章 如何解析cron表达式cron表达式是配置定时任务执行周期的核心工具。在本章中,将首先分析cron表达式的构成以及解析逻辑,并利用开源项目c...阅读全文

博文 2019-03-28 13:34:40 itsource论坛

golang简单应用

学习的golang的练习,推荐学习golang。https://www.liwenzhou.com mian.go 文件 package main import ( "fmt" "os" ) func showAction() { fmt.Println("学生管理系统!") fmt.Println("1. 添加学生信息") fmt.Println("2. 编辑学生信息") fmt.Println("3. 显示学生信息") fmt.Println("4. 退出学生管理系统") } //getInput 获取输入信息 func getInput() *Student { var ( name string id int ages int ) fmt.Println("输入信息") fmt.Pr...阅读全文

爬虫性能分析及优化

前两天我们写了单任务版爬虫爬取了珍爱网用户信息,那么它的性能如何呢? 我们可以通过网络利用率看一下,我们用任务管理器中的性能分析窗口可以看到下载速率大概是保持在了200kbps左右,这可以说是相当慢了。 我们针对来通过分析单任务版爬虫的设计来看下: 从上图我们可以看出,engine将request从任务队列取出来,送到Fetcher取获取资源,等待数据返回,然后将返回的数据送到Parser去解析,等待其返回,把返回的request再加到任务队列里,同时把item打印出来。 慢就慢在了没有充分利用网络资源,其实我们可以同时发送多个Fetcher和Pareser,等待其返回的同时,可以去做其他的处理。这一点利用go的并发语法糖很容易实现。 上图中,Worker是Fetcher和Parser的合并...阅读全文

软件结构很重要!嵌入式C语言修炼之道

模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了>相对论),C语言模块化程序设计需理解如下概念:(1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;(2) 某模块提供给其它模块调用的外部函数及数据需在.h中文件中冠以extern关键字声明;(3) 模块内的函数和全局变量需在.c文件开头冠以static关键字声明;(4) 永远不要在.h文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外...阅读全文

博文 2019-01-17 17:14:57 wangzijuan

go学习笔记-goroutine的好兄弟channel

上一篇介绍了atomic包以及互斥锁 mutex来解决并发竞争状态的问题。这一篇主要来介绍go中与goroutine经常搭档的好兄弟channel channel不仅可以可以来用消除竞争状态,还可以用于不同的goroutine中进行通信,发送与接受数据。chaanel的定义有两种,分为有缓存与无缓冲 创建channel chan1 := make(chan int) // 创建一个无缓冲的 整形 channel chan2 := make(chan int,2)// 创建一个有缓冲的 整形 channel 上面的代码片段,我们分别创建了一个无缓冲的channel与一个有缓冲的channel。channel的创建是使用make(chan type,[lenght])来创建,如果指定了第二个参数...阅读全文

博文 2020-01-11 13:32:40 旧梦发癫

Snow——简单易用的Go语言业务框架

项目地址 中文文档 changelog Snow Snow是一套简单易用的Go语言业务框架,整体逻辑设计简洁,支持HTTP服务、队列调度和任务调度等常用业务场景模式。 Goals 我们致力于让PHPer更方便地切入到Go语言开发,在业务框架选择上贴合PHP主流框架的设计思想,以更低的学习成本快速熟悉框架,致力于业务逻辑的开发。 Features HTTP服务:基于gin进行模块化设计,简单易用、核心足够轻量;支持平滑重启; 任务调度:基于cron进行模块化设计,简单易用; 队列调度:基于自研的队列调度服务worker,通过Queue接口化,解耦队列调度与底层队列驱动;支持平滑关闭; Cache: 通用的接口化设计,框架实现了redis作为缓存底层驱动,支持可扩展; Database: 使用成...阅读全文

博文 2019-07-08 20:02:38 wilee

leetcode_621

Golang: 思路:任务调度,这里用了个很麻烦的实现,所以效率上来说不太高,思路可以这么想,如何将一个有长板和短板的木桶以最快的速度归0。 代码如下: func mergeTrees(t1 *TreeNode, t2 *TreeNode) *TreeNode { if t1==nil&&t2!=nil{ return t2 }else if t1!=nil&&t2==nil{ return t1 }else if t1==nil&&t2==nil{ return nil }else{ return &TreeNode{ Val:t1.Val+t2.Val, Left:mergeTrees(t1.Left,t2.Left), Right:mergeTrees(t1.Right,t2.Righ...阅读全文

博文 2020-04-01 09:33:05 淳属虚构

图解kubernetes批处理Job控制器的关键设计

K8s中的批处理任务模块主要是由Job控制器完成,今天我们就来关注下其底层的关键设计,包括完成状态、并行模式、并行策略等关键机制 1. 基础概念 在聊k8s的任务模块的实现的时候,我们先看一下传统的任务系统的设计与实现,然后聊下基于k8s的基础的概念 1.1 传统的任务系统设计 传统的任务系统设计主要可以分为master(任务分配/故障感知/负载均衡)、Worker(任务执行/任务监控/任务管理)、分布式协调(etcd等存储元数据)、任务仓库(存储任务的实现比如类或者接口)等几部分, 从大的部分又可以切分为两个部分管控端(分布式协调/master/仓库)、执行端(Worker),传统的任务系统大概就是这样 通常复杂的就是如何在master如何做任务的负载均衡、任务的快速完成、依赖等管控功能,...阅读全文