dianfu2892的博客

私信 关注
dianfu2892
码龄5年
  • 70,225
    被访问量
  • 暂无
    原创文章
  • 202,676
    作者排名
  • 4
    粉丝数量
  • 于 2016-04-04 加入CSDN
获得成就
  • 获得11次点赞
  • 内容获得0次评论
  • 获得82次收藏
荣誉勋章
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Git 版本及版本范围表示法

很多 Git 命令都使用 revision(修订版本)作为参数。根据不同的命令,有时候 revision 参 数代表一个特定的提交,有时候代表某一个提交可以追踪到的所有的父提交(比如 git log)。在 后面的这种情况中,一般也可以提供一个版本范围作为参数。另外,有的命令(例如 git show) 使用 revision 参数代表其他对象,如 blobs 或者 tree 对象。...
转载
257阅读
0评论
0点赞
发布博客于 2 年前

php-fpm解读-进程管理的三种模式

php-fpm进程管理一共有三种模式:ondemand、static、dynamic,我们可以在同一个fpm的master配置三种模式,看下图1。php-fpm的工作模式和nginx类似,都是一个master,多个worker模型。每个worker都在accept本pool内的监听套接字(linux已不存在惊群现象)。图1ondemand...
转载
81阅读
0评论
0点赞
发布博客于 2 年前

Go 笔记之如何防止 goroutine 泄露

今天来简单谈谈,Go 如何防止 goroutine 泄露。概述Go 的并发模型与其他语言不同,虽说它简化了并发程序的开发难度,但如果不了解使用方法,常常会遇到 goroutine 泄露的问题。虽然 goroutine 是轻量级的线程,占用资源很少,但如果一直得不到释放并且还在不断创建新协程,毫无疑问是有问题的,并且是要在程序运行几天,甚至更长的时间才能发现的问题。对...
转载
87阅读
0评论
0点赞
发布博客于 2 年前

Kubernetes中的Volume介绍

Kubernetes中支持的所有磁盘挂载卷简介发表于 2018年1月26日Weihai Feb 10,20167400 字 | 阅读需要 15 分钟容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像...
转载
1306阅读
0评论
0点赞
发布博客于 2 年前

使用k8s容器钩子触发事件

原文:http://yunke.science/2018/04/15/k8s-hook/容器生命周期的钩子Kubernetes为容器提供了生命周期钩子。钩子能使容器感知其生命周期内的事件,并且当相应的生命周期钩子被调用时运行指定的代码。容器钩子分为两类触发点:容器创建后PostStart和容器终止前PreStop。PostStart这个钩子在容器创建后立即执行。...
转载
604阅读
0评论
0点赞
发布博客于 2 年前

调试 Go 的代码生成

原文:https://studygolang.com/articles/19815这是一个创建于2019-04-17 23:12:26的文章,其中的信息可能已经有所发展或是发生改变。2016 年 10 月 15 日上周,我在dotGo,参加一个最棒的 Go 会议,与大西洋彼岸的 Gopher 们相聚。我做了一个简短迅速的演讲,关于使用工具链中可用工具来...
转载
126阅读
0评论
0点赞
发布博客于 2 年前

Go语言(golang)新发布的1.13中的Error Wrapping深度分析

Go 1.13发布的功能还有一个值得深入研究的,就是对Error的增强,也是今天我们要分析的 Error Wrapping.背景做Go语言开发的,肯定经常用error,但是我们也知道error非常弱,只能自带一串文本其他什么都做不了,比如给已经存在的error增加一些附加文本,增加堆栈信息等都做不了。如果我们想给error增加一些附加文本怎么做呢?有两种办法:第一种...
转载
34阅读
0评论
0点赞
发布博客于 2 年前

你确定你会写 Dockerfile 吗?

原文链接:Intro Guide to Dockerfile Best Practices如今 GitHub 仓库中已经包含了成千上万的Dockerfile,但并不是所有的 Dockerfile 都是高效的。本文将从五个方面来介绍 Dockerfile 的最佳实践,以此来帮助大家编写更优雅的 Dockerfile。如果你是 Doc...
转载
46阅读
0评论
0点赞
发布博客于 2 年前

alpine使用的避坑指南

alpine,是一个重量仅为5 MB的最小Linux发行版。它还有基本的linux工具和一个不错的包管理器APK。APK非常稳定,有相当数量的包。由于体积小,在容器中很受欢迎,但是使用上坑也很多,大部分可能是我们的无知吧。坑1 : 下载慢解决:echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main" > /etc...
转载
2194阅读
0评论
2点赞
发布博客于 2 年前

nginx fastcgi模块ngx_http_fastcgi_module详细解析、使用手册、完整翻译

ngx_http_fastcgi_module模块允许将请求传递给 FastCGI 服务器。示例配置location / { fastcgi_pass localhost:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$...
转载
114阅读
0评论
0点赞
发布博客于 2 年前

深入理解 Kubernetes 资源限制:CPU

原文地址:https://www.yangcs.net/posts/understanding-resource-limits-in-kubernetes-cpu-time/在关于 Kubernetes 资源限制的系列文章的第一篇文章中,我讨论了如何使用ResourceRequirements对象来设置 Pod 中容器的内存...
转载
269阅读
0评论
0点赞
发布博客于 2 年前

使用xdebug对php做性能分析调优

作为PHP程序员我们或多或少都了解或使用过xdebug。此文章记录安装和配置xdebug,以及如何使用它来分析php程序。我的机器环境:mac,php安装 xdebug推荐使用 pecl 安装扩展pecl install xdebug注:可以选择版本, https://pecl.php.net/package/xdebug启用和配置如果不知道...
转载
81阅读
0评论
0点赞
发布博客于 2 年前

alpine安装sshd/ssh server

1、下载alpine镜像12345678910[root@docker43 ~]# docker pull alpineUsing default tag: latestTrying to pull repository docker.io/library/alpine...latest: ...
转载
1210阅读
0评论
0点赞
发布博客于 2 年前

冒泡排序的终极改进优化

1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。(1)初始  R[1..n]为无序区。(2)第一趟扫描  从无序区底部向...
转载
37阅读
0评论
0点赞
发布博客于 2 年前

精心整理史上最全数学公式及知识点,学习工作能用!

原文:http://www.sohu.com/a/283253465_3724491 函数的单调性2 函数的奇偶性3 函数在某处的导数的几何意义4 几种常见函数的导数5 导数的运算法则6 求函数的极值7 分数指数幂8 根式的性质9 有理数指数幂的运算性质10 对数公式11 常见的函数图像...
转载
82阅读
0评论
0点赞
发布博客于 2 年前

非对称加密和对称加密的区别

在了解对称加密和非对称加密的区别之前我们先了解一下它们的定义:对称加密(Symmetric Cryptography),又称私钥加密对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效...
转载
54阅读
0评论
0点赞
发布博客于 2 年前

彻底搞懂B树、B+树、B*树、R 树

出处:http://blog.csdn.net/v_JULY_v。第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉...
转载
168阅读
0评论
0点赞
发布博客于 2 年前

基于Golang的逃逸分析(Language Mechanics On Escape Analysis)

何为逃逸分析在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法——分析在程序的哪些地方可以访问到指针。它涉及到指针分析和形状分析。当一个变量(或对象)在子程序中被分配时,一个指向变量的指针可能逃逸到其它执行线程中,或是返回到调用者子程序。如果使用尾递归优化(通常在函数编程语言中是需要的),对象也可以看作逃逸到被调用的子程序中。如果一种语言支持第一类型的延续性在Sche...
转载
62阅读
0评论
0点赞
发布博客于 2 年前

秒杀99%的海量数据处理面试题

前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名 :-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言...
转载
53阅读
0评论
0点赞
发布博客于 2 年前

不用临时的变量 优雅、高效的交换两个数方法

int a = 1;int b = 2;a = a + b;b = a - b;a = a - b;这个思路很巧妙,但也存在一定问题: 万一溢出了怎么办? 这显然不是正确的做法。到目前为止,我们的答题思路是没错的,就是寻找另外一种数据存储的模式,用一个变量保存两条信息的集合,我们仍然需要采用这种模式解决这个问题,但原先的简单相加的模式是不行了,于是我们想到,集合两个整型数字,...
转载
25阅读
0评论
0点赞
发布博客于 2 年前

Linux中的RCU的那点事

原文:https://zhuanlan.zhihu.com/p/67520807今天来讲一下这Linux内核中的RCU(Read Copy Update,读复制更新)机制。我主要参考的文章是这一篇:What is RCU, Fundamentally?​lwn.net当然,英文看起来还是比较慢的,我这里也...
转载
423阅读
0评论
0点赞
发布博客于 2 年前

docker,containerd,runc,docker-shim之间的关系

原文:https://blog.csdn.net/u013812710/article/details/79001463关于containerd关于containerd的一些详解介绍,请参考containerd的官网:(https://containerd.io/)关于dockerdocker本身而言包括了,docker client和dockerd(docker daemon)...
转载
354阅读
0评论
0点赞
发布博客于 2 年前

计数计量单位KMGTPEZY【计算机】【天文】

· 1 Bit = Binary Digit· 8 Bits = 1· 1024 s = 1 Kilo · 1024 Kilo s = 1 Mega · 1024 Mega s = 1 Giga · 1024 Giga s = 1 Tera · 1024 Tera s = 1 Peta · 1024 Peta s = 1 Exa· 1024 Exa s...
转载
343阅读
0评论
0点赞
发布博客于 2 年前

彻底搞懂etcd raft选举、数据同步

etcd raft选举机制etcd 是一个分布式的k/V存储系统。核心使用了RAFT分布式一致性协议。一致性这个概念,它是指多个服务器在状态达成一致,但是在一个分布式系统中,因为各种意外可能,有的服务器可能会崩溃或变得不可靠,它就不能和其他服务器达成一致状态。这样就需要一种Consensus协议,一致性协议是为了确保容错性,也就是即使系统中有一两个服务器当机,也不会影响其处理过...
转载
181阅读
0评论
0点赞
发布博客于 2 年前

乐观锁、悲观锁,这一篇就够了!

1. 乐观锁乐观锁顾名思义就是在操作时很乐观,认为操作不会产生并发问题(不会有其他线程对数据进行修改),因此不会上锁。但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS(compare and swap)算法实现。简单理解:这里的数据,别想太多,你尽管用,出问题了算我怂,即操作失败后事务回滚、提示。...
转载
55阅读
0评论
0点赞
发布博客于 2 年前

完全图解 HTTPS

安全基础我们先来看下数据在互联网上数据传递可能会出现的三个比较有代表性的问题,其实后面提到的所有方法,都是围绕解决这三个问题而提出来的。窃听伪造否认对称密钥加密假设A正在通过互联网向B发送数据,如果不对数据进行加密,数据就可能被恶意的第三者X看到因此,需要保密的数据需要进行加密再发送...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

几分钟打造超级好看又好用的zsh command line环境

source:https://www.pexels.com/photo/office-working-app-computer-97077/注:这篇适用于用MAC 开发的developer身为程式开发者,很大一部分的时间是在用command line 做事,如果能把command line 调整成好用又酷炫的模样,不只是效率提升非常多,...
转载
179阅读
0评论
0点赞
发布博客于 2 年前

一些常用的算法技巧总结

今天和大家讲讲,在做算法题时常用的一些技巧。对于平时没用过这些技巧的人,或许你可以考虑试着去看看在实践中能否用的上这些技巧来优化问题的解。1. 巧用数组下标数组的下标是一个隐含的很有用的数组,特别是在统计一些数字,或者判断一些整型数是否出现过的时候。例如,给你一串字母,让你判断这些字母出现的次数时,我们就可以把这些字母作为下标,在遍历的时候,如果字母a遍历到,则arr[a]...
转载
33阅读
0评论
0点赞
发布博客于 2 年前

这两个小技巧,让我的SQL语句不仅躲了坑,还提升了1000 倍

原文:https://cloud.tencent.com/developer/article/1465618本次来讲解与 SQL 查询有关的两个小知识点,掌握这些知识点,能够让你避免踩坑以及提高查询效率。1、允许字段的值为 null,往往会引发灾难首先,先准备点数据,后面好演示create table animal(id int,name char(20),...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

如何抓住重点,系统高效地学习数据结构与算法?

原文:https://www.infoq.cn/article/rajw*TKbsG95M7CGHhE7你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这门课时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书。正是这个原因,让很多初学者对这门课望而却步。我个人觉得,其实真正的原因是你没有找到好的学习方法,没有抓...
转载
25阅读
0评论
0点赞
发布博客于 2 年前

Golang 是否有必要内存对齐?

原文:https://ms2008.github.io/2019/08/01/golang-memory-alignment/内存模型Posted by ms2008 on August 1, 2019有些同学可能不知道,struct 中的字段顺序不同,内存占用也有可能会相差很大。比如:type T1 struct { ...
转载
158阅读
0评论
0点赞
发布博客于 2 年前

淘宝服务端高并发分布式架构演进之路

原文:https://segmentfault.com/a/11900000186261631. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,...
转载
26阅读
0评论
0点赞
发布博客于 2 年前

kubernetes(k8s) Prometheus+grafana监控告警安装部署

主机数据收集主机数据的采集是集群监控的基础;外部模块收集各个主机采集到的数据分析就能对整个集群完成监控和告警等功能。一般主机数据采集和对外提供数据使用cAdvisor 和node-exporter等工具。cAdvisor概述Kubernetes的生态中,cAdvisor是作为容器监控数据采集的Agent,其部署在每个节点上,内部代码结构大致如下:代码结构很良好,c...
转载
112阅读
0评论
0点赞
发布博客于 2 年前

kubernetes(k8s)集群安装calico

添加hosts解析cat /etc/hosts10.39.7.51 k8s-master-5110.39.7.57 k8s-master-5710.39.7.52 k8s-master-52下载calicowget http://docs.projectcalico.org/v3.2/getting-started/kuber...
转载
1183阅读
0评论
0点赞
发布博客于 2 年前

Kubeadm 1.9 HA 高可用集群本地离线镜像部署【已验证】

k8s介绍k8s 发展速度很快,目前很多大的公司容器集群都基于该项目,如京东,腾讯,滴滴,瓜子二手车,易宝支付,北森等等。kubernetes1.9版本发布2017年12月15日,每三个月一个迭代版本, Workloads API成为稳定版本,这消除了很多潜在用户对于该功能稳定性的担忧。还有一个重大更新,就是测试支持了Windows了,这打开了在kubernetes中...
转载
162阅读
0评论
0点赞
发布博客于 2 年前

Kubernetes(k8s)网络插件(CNI)的基准测试对比

Kubernetes是一个伟大的容器"乐队"。但它不管理Pod-to-Pod通信的网络。这是容器网络接口(CNI)插件的使命,它是实现容器集群工具(Kubernetes,Mesos,OpenShift等)的网络抽象的标准化方法。但重点是:这些CNI之间有什么区别?哪一个性能最好?哪一个最精瘦?本文展示了我在10Gbit / s网络上进行的基准...
转载
391阅读
0评论
0点赞
发布博客于 2 年前

systemd - CentOS 7进程守护&监控

需求:运行环境为CentOS 7系统,我们开发了一个程序,需要在开机时启动它,当程序进程crash或者开机之后,守护进程立即拉起进程。解决方案:使用CentOS 7中的init进程systemdsystemd简介Linux Init & CentOS systemdLinux一直以来采用init进程。例如下面的命令用来启动服务:$s...
转载
68阅读
0评论
0点赞
发布博客于 2 年前

ansible模块command、shell、raw、script

简介环境:ansible端: ip:192.168.100.129 hostname:node1.lansgg.comclient端: ip:192.168.100.131 hostname:v2.lansgg.com ip:192.168.100.132 hostname:...
转载
25阅读
0评论
0点赞
发布博客于 2 年前

分布式系统根基:物理时钟和Lamport逻辑时钟

分布式系统解决了传统单体架构的单点问题和性能容量问题,另一方面也带来了很多的问题,其中一个问题就是多节点的时间同步问题:不同机器上的物理时钟难以同步,导致无法区分在分布式系统中多个节点的事件时序。1978年Lamport在《Time, Clocks and the Ordering of Events in a Distributed System》中提出了逻辑时钟的概念,来解...
转载
290阅读
0评论
0点赞
发布博客于 2 年前

[K8s 1.9实践]Kubeadm 1.9 HA 高可用 集群 本地离线镜像部署

k8s介绍k8s 发展速度很快,目前很多大的公司容器集群都基于该项目,如京东,腾讯,滴滴,瓜子二手车,北森等等。kubernetes1.9版本发布2017年12月15日,每是那三个月一个迭代, Workloads API成为稳定版本,这消除了很多潜在用户对于该功能稳定性的担忧。还有一个重大更新,就是测试支持了Windows了,这打开了在kubernetes中...
转载
95阅读
0评论
0点赞
发布博客于 2 年前

Linux下快速安装Python3和pip

如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境,比如yum!!!!!不要动现有的python2环境!一、安装python3.61. 安装依赖环境  #yum -y install zlib-devel bzip2-devel openssl-devel ncurses-dev...
转载
19阅读
0评论
0点赞
发布博客于 2 年前

数字证书和证书颁发机构的基础知识

什么是数字证书数字证书是电子凭证,用于断言网络上的个人,计算机和其他实体的在线身份。数字证书的功能类似于护照和驾驶执照等身份证。最常见的是,它们包含公钥和所有者的身份。它们由证书颁发机构(CA)颁发,证书颁发机构必须在颁发证书之前和使用证书时验证证书持有者的身份。常见用途包括需要身份验证,加密和数...
转载
827阅读
0评论
0点赞
发布博客于 2 年前

ansible超详细使用指南

在工作中有用到ansible用于自动部署和环境配置,这里整理了一份很详尽的使用指南,如果有用到的可以看看。关于使用ansible自动部署一个网站和docker化,将在下一篇文章中介绍,敬请期待。文章内容主要翻译整理自ansible官方网站推荐的Ansible-Up and Running一书。1 为什么选择Ansible来源:ansible一词源于科幻小说,是一...
转载
140阅读
0评论
0点赞
发布博客于 2 年前

YAML语言简明教程

编程免不了要写配置文件,如果你还在用xml/ini/json,就有点过时了,怎么写配置也是一门学问。YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。本文介绍 YAML 的语法,以JS-YAML的实现为例。你可以去在线 Demo验证下面的例子。一、简介YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质...
转载
45阅读
0评论
0点赞
发布博客于 2 年前

GitLab CI/CD的官译【原】

CI / CD方法简介软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性。从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预。它涉及在每次小迭代中不断构建,测试和部署代码更改,从而减少基于有缺陷或失败的先前版本开发新代码的风险。这有三种主要方法,每种方法都根据最适合您的策略进行应用。持续集成(Continuous Int...
转载
67阅读
0评论
0点赞
发布博客于 2 年前

创建和使用CI / CD管道【译】【原】

在GitLab 8.8中引入。介绍管道是持续集成,交付和部署的顶级组件。管道包括:定义要运行的作业的作业。例如,代码编译或测试运行。定义何时以及如何运行的阶段。例如,该测试仅在代码编译后运行。如果有足够的并发Runners,则Runners并行执行同一阶段中的多个作业。如果一个阶段的所有工作:成功,管道进入下一阶段。失败,下一阶...
转载
69阅读
0评论
0点赞
发布博客于 2 年前

Gearman介绍、原理分析、实践改进

gearman是什么?它是分布式的程序调用框架,可完成跨语言的相互调用,适合在后台运行工作任务。最初是2005年perl版本,2008年发布C/C++版本。目前大部分源码都是(Gearmand服务job Server)C++,各个API实现有各种语言的版本。PHP的Client API与Worker API实现为C扩展,在PHP官方网站有此扩展的中英文文档。gearman架构中的...
转载
50阅读
0评论
0点赞
发布博客于 2 年前

Golang逃逸分析

Golang逃逸分析介绍逃逸分析的概念,go怎么开启逃逸分析的log。 以下资料来自互联网,有错误之处,请一定告之。 sheepbao 2017.06.10什么是逃逸分析wiki上的定义In compiler optimization, escape analysis is a method for determining the dynamic scope of p...
转载
88阅读
0评论
1点赞
发布博客于 2 年前

分布式系统的常见玩法

1 概念1.1 模型节点在具体的工程项目中,一个节点往往是一个操作系统上的进程。在本文的模型中,认为节点是一个完整的、不可分的整体,如果某个程序进程实际上由若干相对独立部分构成,则在模型中可以将一个进程划分为多个节点。异常机器宕机:机器宕机是最常见的异常之一。在大型集群中每日宕机发生的概率为千分之一左右,在实践中,一台宕机的机器恢复的时间通常认为是24 ...
转载
61阅读
0评论
0点赞
发布博客于 2 年前

Go 程序是怎样跑起来的

刚开始写这篇文章的时候,目标非常大,想要探索 Go 程序的一生:编码、编译、汇编、链接、运行、退出。它的每一步具体如何进行,力图弄清 Go 程序的这一生。在这个过程中,我又复习了一遍《程序员的自我修养》。这是一本讲编译、链接的书,非常详细,值得一看!数年前,我第一次看到这本书的书名,就非常喜欢。因为它模仿了周星驰喜剧之王里出现的一本书 ——《演员的自我修养》。...
转载
50阅读
0评论
0点赞
发布博客于 2 年前

开发更高可用、高质量的服务的一些建议

1.引言产品要求的功能都都开发完了,但这并不是终结。怎么样做才能让我们的服务具有更好的质量。笔者结合自己的遇到的问题和工作中的经验,并以提问的方式,给读者一点点建议2. 提问QA (重要性不分先后)2.1 如果服务器重启,服务是否能自动拉起?建议加入/etc/init.d/local开机启动2.2 如果程序异常退出,服务是否能够自动拉起?建议用sup...
转载
38阅读
0评论
0点赞
发布博客于 2 年前

理解 Kubernetes 的亲和性调度

这次给大家介绍下k8s的亲和性调度:nodeSelector、nodeAffinity、podAffinity、Taints以及Tolerations用法。一般情况下我们部署的 POD 是通过集群自动调度选择某个节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 POD 的调度,...
转载
338阅读
0评论
0点赞
发布博客于 2 年前

服务发现对比:Zookeeper vs etcd vs Consul

我们拥有的服务越多,如果我们使用预定义的端口,就会发生冲突的可能性越大。毕竟,在同一端口上不能监听两个服务。管理一百个服务所使用的所有端口的紧密列表本身就是一项挑战。将那些服务所需的数据库添加到该列表中,数量会增长得更多。出于这个原因,我们应该在不指定端口的情况下部署服务,并让Docker为我们分配一个随机服务。唯一的问题是我们需要发现端口号并让其他人了解它。当我...
转载
21阅读
0评论
0点赞
发布博客于 2 年前

服务发现框架选型: Consul、Zookeeper还是etcd ?

背景本文并不介绍服务发现的基本原理。除了一致性算法之外,其他并没有太多高深的算法,网上的资料很容易让大家明白上面是服务发现。想直接查看结论的同学,请直接跳到文末。目前,市面上有非常多的服务发现工具,《Open-Source Service Discovery》一文中列举了如下开源的服务发现工具。NameTypeAP or CPLanguageDepend...
转载
42阅读
0评论
0点赞
发布博客于 2 年前

探索etcd,Zookeeper和Consul一致键值数据存储的性能

这篇博文是探索三个分布式、一致性键值数据存储软件性能的系列文章中的第一篇:etcd、Zookeeper和Consul,由etcd团队所写,可以让我们全面地了解如何评估三个分布式一致存储软件的性能。翻译过程中难免有误差,还请大家谅解一致性键值存储的用处许多现代分布式应用程序都建立在分布式一致键值存储之上。Hadoop生态系统中的应用程序和“Netflix栈”的许多部分都使用...
转载
36阅读
0评论
0点赞
发布博客于 2 年前

简单聊聊服务发现(redis, zk,etcd, consul)

什么是服务发现?服务发现并没有怎样的高深莫测,它的原理再简单不过。只是市面上太多文章将服务发现的难度妖魔化,读者被绕的云里雾里,顿觉自己智商低下不敢高攀。服务提供者是什么,简单点说就是一个HTTP服务器,提供了API服务,有一个IP端口作为服务地址。服务消费者是什么,它就是一个简单的进程,想要访问服务提供者提供的服务来干一些事情。一个HTTP服务器既可以是服务提...
转载
46阅读
0评论
0点赞
发布博客于 2 年前

Go defer 会有性能损耗,尽量不要用?

上个月在 @polaris @轩脉刃 的全栈技术群里看到一个小伙伴问“说 defer 在栈退出时执行,会有性能损耗,尽量不要用,这个怎么解?”。恰好前段时间写了一篇《深入理解 Go defer》去详细剖析defer关键字。那么这一次简单结合前文对这个问题进行探讨一波,希望对你有所帮助,但在此之前希望你花几分钟,自己思考一下答案,再继续往下看。测试func DoD...
转载
44阅读
0评论
0点赞
发布博客于 2 年前

优雅的重启服务

前言每次更新完代码,更新完配置文件后 就直接这么ctrl+c真的没问题吗,ctrl+c到底做了些什么事情呢?在这一节中我们简单讲述ctrl+c背后的信号以及如何在Gin中优雅的重启服务,也就是对HTTP服务进行热更新项目地址:https://github.com/EDDYCJY/go-gin-examplectrl + c内核在某些情况下发送信号,比如...
转载
660阅读
0评论
0点赞
发布博客于 2 年前

浅谈有趣的 //go: 指令

前言如果你平时有翻看源码的习惯,你肯定会发现。咦,怎么有的方法上面总是写着//go:这类指令呢。他们到底是干嘛用的?今天我们一同揭开他们的面纱,我将简单给你介绍一下,它们都负责些什么go:linkname//go:linkname localname importpath.name该指令指示编译器使用importpath.name作为源代码中声明为l...
转载
36阅读
0评论
0点赞
发布博客于 2 年前

浅谈分词算法基于字的分词方法(HMM)

前言在浅谈分词算法(1)分词中的基本问题我们讨论过基于词典的分词和基于字的分词两大类,在浅谈分词算法(2)基于词典的分词方法文中我们利用n-gram实现了基于词典的分词方法。在(1)中,我们也讨论了这种方法有的缺陷,就是OOV的问题,即对于未登录词会失效在,并简单介绍了如何基于字进行分词,本文着重阐述下如何利用HMM实现基于字的分词方法。目录浅谈分词算法(1)...
转载
95阅读
0评论
0点赞
发布博客于 2 年前

从实践到原理,带你参透 gRPC

gRPC 在 Go 语言中大放异彩,越来越多的小伙伴在使用,最近也在公司安利了一波,希望这一篇文章能带你一览 gRPC 的巧妙之处,本文篇幅比较长,请做好阅读准备。本文目录如下:简述gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中...
转载
759阅读
0评论
0点赞
发布博客于 2 年前

Kubernetes(K8s)基础知识(docker容器技术)

  今天谈谈K8s基础知识关键词:  一个目标:容器操作;两地三中心;四层服务发现;五种Pod共享资源;六个CNI常用插件;七层负载均衡;八种隔离维度;九个网络模型原则;十类IP地址;百级产品线;千级物理机;万级容器;相如无亿,K8s有亿:亿级日服务人次。一个目标:容器操作Kubernetes(k8s)是自动化容器操作的开源平台。这些容器操作包括:部署,调度和节点集群间扩...
转载
135阅读
0评论
0点赞
发布博客于 2 年前

kubernetes使用securityContext和sysctl

前言在运行一个容器时,有时候需要使用sysctl修改内核参数,比如net.、vm.、kernel等,sysctl需要容器拥有超级权限,容器启动时加上--privileged参数即可。那么,在kubernetes中是如何使用的呢?Security Contextkubernetes中有个字段叫securityContext,即安全上下文,它用于定义Pod或Container的权...
转载
1809阅读
0评论
0点赞
发布博客于 2 年前

高性能Golang研讨会【精】

by Dave Cheney概观本次研讨会的目标是为您提供诊断Go应用程序中的性能问题并进行修复所需的工具。通过这一天,我们将从小工作 - 学习如何编写基准,然后分析一小段代码。然后走出去讨论执行跟踪器,垃圾收集器和跟踪运行的应用程序。剩下的时间将是您提出问题的机会,并尝试使用您自己的代码。您可以在此处找到...
转载
303阅读
0评论
0点赞
发布博客于 2 年前

Golang glog使用详解

golang/glog是 C++ 版本google/glog的 Go 版本实现,基本实现了原生 glog 的日志格式。在 Kuberntes 中,glog 是默认日志库。glog 的使用与特性通用功能glog 将日志级别分为 4 种,分别是:INFO:普通日志;WARNING:告警日志;ERROR:错误日志;FATAL:严重错误日志,打印完日...
转载
635阅读
0评论
0点赞
发布博客于 2 年前

Linux生产环境上,最常用的一套“AWK“技巧【转】

最有用系列:《Linux生产环境上,最常用的一套“vim“技巧》《Linux生产环境上,最常用的一套“Sed“技巧》《Linux生产环境上,最常用的一套“AWK“技巧》《"Sed" 高级功能:我这小脑瓜都快绕晕了》敢用自己的名字做软件名字的,都有非常强大的自信。比如,垠语言什么的。awk的命名得自于它的三个创始人姓别的首字母,都是80来岁的老爷爷了。当然...
转载
28阅读
0评论
0点赞
发布博客于 2 年前

实战Go内存泄露【转】

最近解决了我们项目中的一个内存泄露问题,事实再次证明pprof是一个好工具,但掌握好工具的正确用法,才能发挥好工具的威力,不然就算你手里有屠龙刀,也成不了天下第一,本文就是带你用pprof定位内存泄露问题。关于Go的内存泄露有这么一句话不知道你听过没有:10次内存泄露,有9次是goroutine泄露。我所解决的问题,也是go...
转载
70阅读
0评论
0点赞
发布博客于 2 年前

Golang/Go goroutine调度器原理/实现【原】

Go语言在2016年再次拿下TIBOE年度编程语言称号,这充分证明了Go语言这几年在全世界范围内的受欢迎程度。如果要对世界范围内的gopher发起一次“你究竟喜欢Go的哪一点”的调查,我相信很多Gopher会提到:goroutine。Goroutine是Go语言原生支持并发的具体实现,你的Go代码都无一例外地跑在goroutine中。你可以启动许多甚至成千上万的goroutine...
转载
129阅读
0评论
0点赞
发布博客于 2 年前

Go 程序的性能监控与分析 pprof

你有没有考虑过,你的goroutines是如何被go的runtime系统调度的?是否尝试理解过为什么在程序中增加了并发,但并没有给它带来更好的性能?go执行跟踪程序可以帮助回答这些疑问,还有其他和其有关性能的问题,例如延迟、竞争和较低的并行效率。该工具是Go 1.5版本加入的,通过度量go语言特定事件的运行时,例如:创建,启动和终止goroutines阻塞/非...
转载
241阅读
0评论
0点赞
发布博客于 2 年前

如何定位 golang 进程 hang 死的 bug

之前在 golang 群里有人问过为什么程序会莫名其妙的 hang 死然后不再响应任何请求。单核 cpu 打满。这个特征和我们公司的某个系统曾经遇到的情况很相似,内部经过了很长时间的定位分析总结,期间还各种阅读 golang 的 runtime 和 gc 代码,最终才定位到是业务里出现了类型下面这样的代码:package mainimport "runti...
转载
212阅读
0评论
0点赞
发布博客于 2 年前

Go内存分配器可视化指南【译】【精】

当我第一次开始尝试理解 Go 语言的内存分配器时,整个过程让我抓狂。一切看起来都像一个神秘的黑盒子。因为几乎所有技术魔法(technical wizardry)都隐藏在抽象之下,所以你需要一层一层的剥离才能去理解它。我们将通过这篇文章来一层层的剥离这些细节。如果你想学习所有关于 Go 内存分配器的知识,那么这篇文章正适合你。物理内存和虚拟内存每一个内存分配器都需要运行在由底层...
转载
19阅读
0评论
0点赞
发布博客于 2 年前

docker容器入门最佳教程

为什么要写这个简单回答是:容器技术非常热门,但门槛高。容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行。对 IT 行业来说,这是一项非常有价值的技术。而对 IT 从业者来说,掌握容器技术是市场的需要,也是提升自我价值的重要途径。拿我自己的工作经历来说,毕业后的头几年是做 J2EE 应用开发。后来到一家大型IT公司,公司的产品从中间件到操...
转载
492阅读
0评论
1点赞
发布博客于 2 年前

玩转dockerfile

镜像的缓存特性Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建。举例说明。在前面的 Dockerfile 中添加一点新内容,往镜像中复制一个文件:① 确保 testfile 已存在。②重点在这里:之前已经运行过相同的 RUN 指令,这次直接使用缓存中的镜像层 35ca89798937。③ 执行 COPY 指令...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

Nginx fastcgi_cache权威指南

一、简介Nginx版本从0.7.48开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当做Key,用Md5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在该目录内。NginxWeb缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令手动清除缓存;但是我们可以通过Nginx的模块ngx_cach...
转载
39阅读
0评论
0点赞
发布博客于 2 年前

百度搜索常用api

http://www.baidu.com/s?wd=关键字 wd(Keyword):查询的关键词;http://www.baidu.com/s?wd=关键字&cl=3 cl(Class):搜索类型,cl=3为网页搜索,cl=2为图片搜索;http://video.baidu.com/v?rn=20&pn=0 pn(Page Number):显示结果的页数;http://w...
转载
2004阅读
0评论
0点赞
发布博客于 2 年前

相似文档查找算法之 simHash及其 java 实现

传统的 hash 算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法。产生的两个签名,如果相等,说明原始内容在一定概 率 下是相等的;如果不相等,除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差别极大。从这个意义 上来 说,要设计一个 hash 算法,对相似的内容产生的签名也相近,是更为艰难的任务,因为它的签...
转载
29阅读
0评论
0点赞
发布博客于 2 年前

相似数据检测算法汇总

相似数据检测算法对给定的一对数据序列计算两者之间的相似度([0,1], 1表示完全相同)或距离([0, ), 0表示完全相同),从而度量数据之间的相似程度。相似数据检测在信息科学领域具有非常重要的应用价值,比如搜索引擎检索结果的聚类与排序、数据聚类与分类、Spam检测、论文剽窃检测、重复数据删除、Delta数据编码等应用。正是由于它的重要性,近年来成为了研究的重点,不断有新检测方法涌现并...
转载
208阅读
0评论
0点赞
发布博客于 2 年前

docker save load export import的区别

exportexport命令用于持久化容器(不是镜像)。所以,我们就需要通过以下方法得到容器ID:sudo docker ps -a接着执行导出:sudo docker export <CONTAINER ID> > /home/export.tarsaveSave命令用于持久化镜像(不是容器)。所以,我们就需要通过以下方法得到镜像名称:sudo d...
转载
53阅读
0评论
0点赞
发布博客于 2 年前

linux 压力测试工具之ab

简介Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用在此提供 ab 在 centOS7 下的安装和使用方法注:个人发现,之前安装的centos6.5 默认已安装了ab,具体原因不明①.ab(apache benchmark)安装命令: yum -y install httpd httpd-tools②.ab测试的命令参...
转载
287阅读
0评论
0点赞
发布博客于 2 年前

K8S 中的容器编排和应用编排

众所周知,Kubernetes 是一个容器编排平台,它有非常丰富的原始的 API 来支持容器编排,但是对于用户来说更加关心的是一个应用的编排,包含多容器和服务的组合,管理它们之间的依赖关系,以及如何管理存储。在这个领域,Kubernetes 用 Helm 的来管理和打包应用,但是 Helm 并不是十全十美的,在使用过程中我们发现它并不能完全满足我们的需求,所以在 Hel...
转载
288阅读
0评论
0点赞
发布博客于 2 年前

手把手教你打造高效的 Kubernetes 命令行终端

Kubernetes 作为云原生时代的操作系统,熟悉和使用它是每名用户的必备技能。本文将介绍一些提高操作 Kubernetes 效率的技巧以及如何打造一个高效的 Kubernetes 命令行终端的方法。Kubectl 自动补全Kubectl 这个命令行工具非常重要,与之相关的命令也很多。我们也记不住那么多的命令,而且也会经常写错,所以命令行自动补全是很有必要的。Kube...
转载
295阅读
0评论
0点赞
发布博客于 2 年前

linux mount一个目录到另外一个目录

从linux内核2.4.0以后mount支持mount --bind 一个目录到另外一个目录比如:[root@localhost wind]# mkdir test1 test2 dir3mount --bind test1 test2把test1挂载到test2,如果test2目录有内容将被遮住(dir2目录的内容一样存在。就好像窗帘把窗户遮住一样。窗户始终存...
转载
629阅读
0评论
0点赞
发布博客于 2 年前

各种安全证书间的关系及相关操作

本文部分摘录于SSL Shopper,这里提供了大量有价值的信息。一、证书标准1、X.509  这是一种证书标准,主要定义了证书中应该包含哪些内容。其详情可以参考RFC5280,SSL 使用的就是这种证书标准。同样的X.509证书,可能有不同的编码格式。最常见的就是 PEM 和 DER 两种...
转载
64阅读
0评论
0点赞
发布博客于 2 年前

"Sed" 高级实用功能汇总

sed命令有两个空间,一个叫pattern space,一个叫hold space。这两个空间能够证明人类的脑瓜容量是非常小的,需要经过大量的训练和烧脑的理解,才能适应一些非常简单的操作。不信看下面简单的命令,作用是,删除文件中最后两行。sed 'N; $!P;$!D;$d' file复制代码在《Linux生产环境上,最常用的一套“Sed“技巧》一文中,我们介绍...
转载
15阅读
0评论
0点赞
发布博客于 2 年前

vim打开多个文件、同时显示多个文件、在文件之间切换

打开多个文件:1.vim还没有启动的时候:在终端里输入vim file1 file2 ... filen便可以打开所有想要打开的文件2.vim已经启动输入:open file可以再打开一个文件,并且此时vim里会显示出file文件的内容。:e ../myFile.pl1. vim 文档名 普通方式打开文档2. vim +n 文档名...
转载
27阅读
0评论
1点赞
发布博客于 2 年前

工程师的自我修炼

作者 |刘德超,腾讯专家工程师我们这一行,有人称我们为码农,但是我们这行和农业差距甚远;有人称我们为程序员,但是我们的工作不仅仅是在写程序。我们更愿意自称为:工程师。我们这一行和传统工业的分工很像,有人做设计,有人打地基,有人做框架,有人做浇筑,有人做美工。我们在虚拟世界中建造高楼大厦,去改变人们的生活,改变这个世界。面对这个世界日新月异的变化,我们也有困惑。如果...
转载
35阅读
0评论
0点赞
发布博客于 2 年前

Linux Shell/Bash wildcard通配符、元字符、转义符使用

说到shell通配符(wildcard),大家在使用时候会经常用到。下面是一个实例:11234[chengmo@localhost ~/shell]$ lsa.txt b.txt c.old#2...
转载
63阅读
0评论
0点赞
发布博客于 2 年前

Linux生产环境上,最常用的一套“Sed“技巧

sed命令应用广泛,使用简单,是快速文本处理的利器。它其实没多少技巧,背诵、使用是最合适的学习渠道,属于硬技能。但它又很复杂,因为高级功能太多。本篇不去关注sed的高级功能,仅对常用的一些操作,进行说明。随着使用,你会发现它和vim的一些理念是想通的,正则表达式的语法也基本上一样,并没有多少学习成本。从个人视野和工作效率上来看,se...
转载
14阅读
0评论
0点赞
发布博客于 2 年前

吉他演奏中的速度与节拍

摘要: 正文:“为什么我弹对了所有的音,还是弹不出一首好听的歌?”相信很多刚开始弹吉他的朋友都遇到过这样的问题,事实上,弹吉他就像唱歌,你不仅需要唱对每个音,还需要跟着整首歌的速度、节拍来演奏,在弹奏吉他时, ...正文:“为什么我弹对了所有的音,还是弹不出一首好听的歌?”相信很多刚开始弹吉他的朋友都遇到...
转载
101阅读
0评论
0点赞
发布博客于 2 年前

30 分钟快速入门 Docker 教程

原文地址:梁桂钊的博客博客地址:blog.720ui.com30 分钟快速入门 Docker 教程一、欢迎来到 Docker 世界1. Docker 与虚拟化在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系统上建立了一个中间虚拟软件层 Hypervisor ,并利用物理机器的资源虚拟出多个虚拟硬...
转载
29阅读
0评论
0点赞
发布博客于 2 年前

Alfred神器使用手册【转】

我曾经耗费巨大的精力,试图在计算机的使用效率上找到一条优化的捷径,一直以来都收效甚微。直到遇上 alfred,它强大的工作流机制,彻底解决了输入输出的痛点,极大的减少了程序之间的切换成本和重复按键成本,这才让我明白,原来计算机可以这么玩。神奇的魔法帽,alfred 初印象。如何安装alfred首先可以从alfred官网自行下载安装,免费用户可以使用除 workflow...
转载
433阅读
0评论
0点赞
发布博客于 2 年前

Xinetd服务的安装与配置详解

1.什么是xinetdxinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。经常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。2.xinetd的特色1)强大的存取控制功能—内置对恶意用户和善意用户...
转载
503阅读
0评论
0点赞
发布博客于 2 年前

从技术演变的角度看互联网后台架构

这是去年在部门内部做的一个面向后台开发新同学的课程,因为其他BG一些同学要求分享,所以发一下。其实内容都是些常见开源组件的high level描述,比如flask, express框架,中间件的演化,micro service的概念,一些对nosql/column based db的概念介绍,docker的一些简单概念等等。从单个概念来说,这只是一些科普。但是为什么当时要开...
转载
27阅读
0评论
0点赞
发布博客于 2 年前

设计模式的六大原则

设计模式的学习,可以增强自己的代码复用意识。同时,也可以清晰地表达自己的编程思路。本文将介绍设计模式的六大原则:单一职责原则定义不要存在多于一个导致类变更的原因。**通俗的说,即一个类只负责一项职责。问题由来类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案遵循...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

Linux信号处理

Linux信号处理原创:songLinux内核那些事3天前什么是信号信号本质上是在软件层次上对中断机制的一种模拟,其主要有以下几种来源:程序错误:除零,非法内存访问等。外部信号:终端Ctrl-C产生SGINT信号,定时器到期产生SIGALRM等。显式请求:kill函数允许进程发送任何信号给其他进程或...
转载
30阅读
0评论
0点赞
发布博客于 2 年前

linux route详细解读

route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是 为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为 Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路...
转载
20阅读
0评论
0点赞
发布博客于 2 年前

用PHP写PHP7扩展,超级简单对吧!

【图片打不开,请用代理】介绍:PHP扩展是编译库,它允许在您的PHP代码中使用特定的功能(主要是使用C编写的php扩展)。例如,您需要使用PHP使用SQLite3,您可以实现自己的方法和功能来连接到Sqlite3,从您的应用程序级别向DB进行查询,但这不是一项简单的任务,插件不仅是您自己的要求,但其他开发人员需要做类似的事情。所以有人开发了它并将其作为php...
转载
81阅读
0评论
0点赞
发布博客于 2 年前

图文详解k8s自动化持续集成之GitLab CI/CD

前言持续集成的好处主要有两个:快速发现错误  每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易防止分支大幅偏离主干  如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动...
转载
335阅读
0评论
0点赞
发布博客于 2 年前

Go语言的成功也预示着Rust的成功【转】

从整体的角度来看Go,很难理解他是怎么取得这么大的成功的。从理论的角度上来说Go是一门非常糟糕的语言,就算是和C++或者Ada之类旧语言相比也是这样。从整体的角度来看Go,很难理解他是怎么取得这么大的成功的。从理论的角度上来说Go是一门非常糟糕的语言,就算是和C++或者Ada之类旧语言相比也是这样。它缺乏大量的编译时的检查和编译时的逻辑,它缺乏销毁逻辑导致许多样板文...
转载
31阅读
0评论
0点赞
发布博客于 2 年前

GitLab CI/CD 进行持续集成

简介从 GitLab 8.0 开始,GitLab CI 就已经集成在 GitLab 中,我们只要在项目中添加一个.gitlab-ci.yml文件,然后添加一个 Runner,即可进行持续集成。 而且随着 GitLab 的升级,GitLab CI 变得越来越强大,本文将介绍如何使用 GitLab CI 进行持续集成。一些概念在介绍 GitLab CI 之前,我们先...
转载
42阅读
0评论
0点赞
发布博客于 2 年前