master

master/worker工作模式

我的梦境 提交于 2020-01-07 19:10:20
master/worker模式 master: 读取并验证配置信息。 创建,绑定及关闭套接字。 启动、终止worker进程以及维护worker进程的个数。 平滑重启升级:无须终止服务而重新配置工作。 控制非中断式程序升级,启用新的二进制程序并在需要的时回滚到老版本。 重新打开日志文件。 编译嵌入式perl脚本。 worker: 接收,传入并处理来自客户端的连接。 提供反向代理及过滤功能。 nginx任何能完成的其他任务。 ※ worker 进程数一般设成机器 cpu 核心数。太多worker 只会导致进程相互竞争 cpu,从而带来不必要的上下文切换。 来源: CSDN 作者: hyacinth。ฅ 链接: https://blog.csdn.net/qq_39311053/article/details/103879031

Kubernetes与Jenkins的CI/CD

丶灬走出姿态 提交于 2020-01-07 18:44:24
结构 发布流程设计 部署Harbor镜像仓库 部署Git仓库 构建Jenkins-Slave镜像 在Kubernetes中部署Jenkins Jenkins与Kubernetes集成 流水线发布Java项目 回滚 1.发布流程设计 软件环境: Jenkins + Kubernetes + Git + Maven + Harbor 工作流程:手动/自动构建 -> Jenkins 调度 K8S API ->动态生成 Jenkins Slave pod -> Slave pod 拉取 Git 代码/编译/打包镜像 ->推送到镜像仓库 Harbor -> Slave 工作完成,Pod 自动销毁 ->部署到测试或生产 Kubernetes平台 。 2. 部署Harbor镜像仓库 https://192.168.1.25/harbor 3. 部署Git仓库 192.168.1.25 4. 构建Jenkins-Slave镜像 Jenkins-Slave:作用是缓解master上的负载压力 master 分派任务(job)给Jenkins-Slave 完成工作 参考文档: https://github.com/jenkinsci/docker-jnlp-slave [root@docker jenkins-salve]# ls dockerfile-jenkins-slave jenkins

【转】爬虫入门一

别来无恙 提交于 2020-01-07 17:39:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 基本的爬虫工作原理 基本的http抓取工具,scrapy Bloom Filter: 大规模数据处理利器(爬虫判重) 如果需要大规模网页抓取,你需要学习分布式爬虫的概念。其实没那么玄乎,你只要学会怎样维护一个所有集群机器能够有效分享的分布式队列就好。最简单的实现是python-rq: https://github.com/nvie/rq rq和Scrapy的结合:darkrho/scrapy-redis · GitHub 后续处理,网页析取(grangier/python-goose · GitHub),存储(Mongodb) 怎样对连接进行判重? Bloom Filter . 简单讲它仍然是一种hash的方法,但是它的特点是,它可以使用固定的内存(不随url的数量而增长)以O(1)的效率判定url是否已经在set中。可惜天下没有白吃的午餐,它的唯一问题在于,如果这个url不在set中,BF可以100%确定这个url没有看过。但是如果这个url在set中,它会告诉你:这个url应该已经出现过,不过我有2%的不确定性。注意这里的不确定性在你分配的内存足够大的时候,可以变得很小很少。一个简单的教程:Bloom Filters by Example 集群化抓取 爬取豆瓣的时候

Python爬虫综述(笔记)

好久不见. 提交于 2020-01-07 17:38:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、什么是爬虫? 网络爬虫 (又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。 1)你需要学习 基本的爬虫工作原理 基本的http抓取工具,scrapy Bloom Filter: Bloom Filters by Example 如果需要大规模网页抓取,你需要学习分布式爬虫的概念。其实没那么玄乎,你只要学会怎样维护一个所有集群机器能够有效分享的分布式队列就好。最简单的实现是python-rq: https://github.com/nvie/rq rq和Scrapy的结合: darkrho/scrapy-redis · GitHub 后续处理,网页析取( grangier/python-goose · GitHub ),存储(Mongodb) import Queue initial_page = "http://www.renminribao.com" url_queue = Queue.Queue() seen = set() seen.insert(initial_page) url_queue.put(initial_page) while(True): #一直进行直到海枯石烂 if url_queue.size()

Redis集群

落花浮王杯 提交于 2020-01-07 16:58:22
目录 Redis集群 理论 安装 管理 增加新-主节点  增加新-从节点 删除节点 我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。 个人博客: 传送阵 笔者微信: zhanghe15069028807 ,非诚勿扰。 Redis集群 理论 Redis集群起码是三个服务器做,每个服务器里面都有两个实例,两个实例并不能是单纯的一主一从,而是错开,防止一个服务器挂了之后,数据丢失,如下图所示: 当集群安装好之后,会生成16384个槽位用于存储键值,其中0--5500在master1这个槽位上,5501--11000在master2槽位上,11001--16384在第三个槽位上,如下所示: 当我们存储一个键值的时候,redis会通过一个公式计算出一个值,假如这个值 是6666的话,那么这个键值就存储到master2这个实例上,依次类推,存的时候是这样存,取的时候同样也是这样取。 客户端在连接的时候无论连接哪一个节点都可以,如果本节点上没有要存取的键值的话,本节点会帮客户端转发,客户端不需要重新连接。 万一其中的一个主挂了,并不是从立马主顶上,而是剩下的两个主一同投票来决定,并不是利用了“哨兵sentinel”的机制。 安装 我们操作的时候用一台服务器,然后开6个实例:7000-----7005 [root

Redis-技术汇总

跟風遠走 提交于 2020-01-07 16:34:05
Redis Redis-优势总结 1 性能高,读每秒是11w,写每秒是8w 2 丰富的数据结构,支持string,list,set,hash,sortedset 3 原子性操作,要不全部成功,要不全部失败 4 发布与订阅,完成类似队列功能 5 分布式锁的内在支持 6 高可用,高性能,支持集群,支持哨兵,支持读写分离 Redis-使用场景 数据缓存(商品数据、新闻、热点数据) 单点登录 秒杀、抢购 网站访问排名,排行榜 应用的模块开发 Redis-RESP协议 Redis 的客户端和服务端之间采取了一种独立名为 RESP(REdis Serialization Protocol) 的协议,它的特点是容易实现和解析快,可读性强 在 RESP 中, 一些数据的类型通过它的第一个字节进行判断: 单行回复:回复的第一个字节是 “+” 错误信息:回复的第一个字节是 “-” 整形数字:回复的第一个字节是 “:” 多行字符串:回复的第一个字节是 “$” 数组:回复的第一个字节是 “*” 举例 比如使用set命令, SET simpleKey simpleValue, 3 代表有三个字符串 9 代表有九个字符串 11 代表有十一个字符串 \\r\\n代表空格和换行 *3\\r\\n$3\\r\\nSET\\r\\n$9\\r\\nsimpleKey\\r\\n$11\\r\\nsimpleValue

将一个本地已有的git仓库添加到git远程仓库

此生再无相见时 提交于 2020-01-07 13:15:59
步骤1:在github上创建repostiry项目 新建项目时如果选择创建readme文件,则需要注意(见下面的所遇问题部分) 步骤2:在本地添加远程库地址,使本地可以通过origin识别/代替远程库 命令:git remote add origin git@github.com:mazhongjia/mybatis-reverseProject.git 命令说明:本地关联远程库,origin是git中约定俗成的名字,用来执行上述命令后,在本地代表远程仓库 执行git remote show origon命令查看关联结果 步骤3:推送本地库内容到远程库 命令:git push --set-upstream origin master 或者 git push -u origin master 命令说明:本地库推送到远程库,表示将本地的master分支推送到远程(-u表示进行关联,关联:将本地的master与远程的master进行关联,以后再次提交时不用指定master了,只要调用git push就可以将本地的master推送到远程master) 补充:git push --set-upstream的完整命令如下: 至此,已经成功将本地工程推送并关联至远程仓库工程 所遇问题: 执行步骤3或者步骤4时可能出现如下错误 出现错误的主要原因是github中创建项目时选择自动创建的README

K8s中helm下载镜像问题

雨燕双飞 提交于 2020-01-07 08:46:45
[root@k8s-master bin]# kubectl get pod -n kube-system NAME READY STATUS RESTARTS AGE coredns-58cc8c89f4-9gn5g 1/1 Running 11 17d coredns-58cc8c89f4-xxzx7 1/1 Running 11 17d etcd-k8s-master 1/1 Running 13 17d kube-apiserver-k8s-master 1/1 Running 13 17d kube-controller-manager-k8s-master 1/1 Running 23 17d kube-flannel-ds-amd64-4bc88 1/1 Running 15 17d kube-flannel-ds-amd64-lzwd6 1/1 Running 17 17d kube-flannel-ds-amd64-vw4vn 1/1 Running 15 17d kube-proxy-bs8sd 1/1 Running 12 17d kube-proxy-nfvtt 1/1 Running 11 17d kube-proxy-rn98b 1/1 Running 13 17d kube-scheduler-k8s-master 1/1 Running 20 17d

K8s资源对象的基本管理(升级、回滚、扩容、缩容)

邮差的信 提交于 2020-01-07 07:13:09
博文大纲: 一、资源创建 二、解决客户端无法访问k8s内部pod所运行的服务 三、搭建私有仓库,并自定义镜像 四、版本扩容、缩容 五、服务的升级与回滚 一、资源创建 本次博文主要介绍如何使用命令行的方式创建资源! [root@master ~]# kubectl run test --image=nginx:latest --replicas=5 //基于httpd的镜像创建一个deployment类型的控制组,名称为test,并指定副本数量为5 [root@master ~]# kubectl get deployments. //查看deployment控制器 NAME READY UP-TO-DATE AVAILABLE AGE test 5/5 5 5 6m26s //可以看到deployment的name是我们指定的test [root@master ~]# kubectl get replicasets. //查看replicasets这个控制器 NAME DESIRED CURRENT READY AGE test-66cbf74d74 5 5 5 7m50s //可以看到replicasets的NAME就是在deployment的NAME后面追加了一串ID号 [root@master ~]# kubectl get pod -o wide //查看pod的详细信息

git 命令常用总结

◇◆丶佛笑我妖孽 提交于 2020-01-07 05:13:34
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 极速版: 查看分支: git branch 或者 git branch -v A) 创建分支 git branch mystudygit1.0 B)拉取分支 1、查看远程分支: git branch -a 2、拉取并切换分支: git checkout -b v1.3.11 3、查看本地分支: git branch,带*号表示当前所在分支 C) 切换分支 git checkout mystudygit1.0 D) 删除分支 git branch -d mystudygit1.0 //如果该分支没有合并到主分支会报错 或者 git branch -D mystudygit1.0 //强制删除 E) 分支合并 比如,如果要将开发中的分支(develop),合并到稳定分支(master), 首先切换的master分支:git checkout master。 然后执行合并操作:git merge develop。 如果有冲突,会提示你,调用git status查看冲突文件。 解决冲突,然后调用git add或git rm将解决后的文件暂存。 所有冲突解决后,git commit 提交更改。 例如:将acc2f69提交合并到当前分支 git merge acc2f69 F)合并 git如何clone