Magiceses
码龄6年
关注
提问 私信
  • 博客:119,310
    119,310
    总访问量
  • 42
    原创
  • 1,999,218
    排名
  • 16
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2018-11-14
博客简介:

magices的博客

查看详细资料
个人成就
  • 获得36次点赞
  • 内容获得7次评论
  • 获得180次收藏
  • 代码片获得209次分享
创作历程
  • 18篇
    2021年
  • 41篇
    2020年
成就勋章
TA的专栏
  • golang
    5篇
  • web
  • MacOS
    1篇
  • elasticsearch
    1篇
  • prometheus
    5篇
  • kubernetes
    1篇
兴趣领域 设置
  • 后端
    架构
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

golang strings包使用

分析strings标准库包主要涉及字符串的基本操作。常见字符串的操作有:字符串求长度求子串是否存在某个字符或者子串子串出现的次数(字符串匹配)字符串分割(切分)成[]string字符串是否存在某个前缀或后缀字符或者子串在字符串中首次出现的位置或最后一次出现的位置通过某个字符串将[]string进行拼接字符串重复次数字符串中子串替换大小写转换等等。由于string类型可以看成是一种特殊的slice类型,因此获取长度可以用内置的函数len;同时支持 ****切片 操作****,
原创
发布博客 2021.07.11 ·
1549 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

记一次mac设置export环境变量之后,重启失效的解决方式

最近在研究kubebuilder和cobra,但是安装文件之后,命令一直找不到,当时是记得已经export二进制文件地址了下面是解决办法:首先在 /Users/HOME/.bash_profile 中声明,export xxxx,和命令行中声明一致然后找到下面文件 /Users/HOME/.zshrc 中文件中关联 .bash_profile在 .zshrc 文件中添加一句source ~/.bash_profile做一个.bash_profile关联保存关闭之后 source .zshr
原创
发布博客 2021.07.03 ·
3370 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

golang pflag包源码和用法解析

pflag 简介之前我们讲过golang flag包的源码和基本用法,其实对于命令行参数解析,golang有一个更好用的包,叫做pflagpflag是Go的flag包的直接替代,实现了POSIX / GNU样式的–flags。pflag是Go的本机标志包的直接替代。如果您在名称“ flag”下导入pflag,则所有代码应继续运行且无需更改。flag和pflag都是源自于Google,工作原理甚至代码实现基本上都是一样的。 flag虽然是Golang官方的命令行参数解析库,但是pflag却得到更加广泛的
原创
发布博客 2021.07.02 ·
3028 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

golang flag包源码解析

在写命令行程序(工具、server)时,对命令行参数进行解析,是一种常见的需求。各种语言一般都会提供相应的方法或库,以方便开发者使用。在go标准库中提供了一个包:flag,方便进行命令行解析。也就是说,Go的flag包用来解析命令行参数。flag 用法命令行flag的语法有如下三种形式:-flag // 只支持bool类型-flag=x-flag x // 只支持非bool类型第三种形式只能用于非bool类型的原因是:对于这样的命令 cmd -x *,如果有一个文件名字是:0或false等,则
原创
发布博客 2021.07.01 ·
2066 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

Golang包管理,go module模式、go mod和go sum等文件介绍

Go 包管理详解理解 vendor 特性先来理解一下 vendor随着Go 1.5 release版本的发布,vendor目录被添加到除了GOPATH和GOROOT之外的依赖目录查找的解决方案。在Go 1.6之前,你需要手动的设置环境变量GO15VENDOREXPERIMENT=1才可以使Go找到Vendor目录,然而在Go 1.6之后,这个功能已经不需要配置环境变量就可以实现了。即使使用vendor,也必须在GOPATH中,无论是通过IDE设置项目目录的GOPATH还是通过go环境变量设置GOPA
原创
发布博客 2021.06.27 ·
17601 阅读 ·
13 点赞 ·
2 评论 ·
41 收藏

golang交叉编译总结

Golang 在 Mac、Linux、Windows 下如何交叉编译Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。Mac 下编译 Linux 和 Windows 64位可执行程序CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.goLinux 下编译 Mac 和 Windo
原创
发布博客 2021.06.26 ·
2324 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Elasticsearch 原理,安装,生产配置以及常见CRUD,ILM管理,常见API解析,go-elasticsearch-client使用

工作中用到了 Elasticsearch 对接 fluent-bit,这里查些资料,做些摘录和总结ES 快速开始Elasticsearch安装简介Elastic Stack 是应对多种搜索场景的一站式解决方案。主要产品包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。其中Beats 平台集合了多种单一用途数据采集器。它们可以从成百上千或成千上万台机器和系统
原创
发布博客 2021.06.26 ·
2218 阅读 ·
4 点赞 ·
2 评论 ·
8 收藏

kubernetes cronjob 时区问题

看文档Caution:All CronJob schedule: times are based on the timezone of the kube-controller-manager.If your control plane runs the kube-controller-manager in Pods or bare containers, the timezone set for the kube-controller-manager container determines the
原创
发布博客 2021.06.25 ·
1275 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Alertmanager使用介绍以及源码剖析

优秀文章的搬运工: http://just4fun.im/2018/05/25/study_alertmanager/alertmanager功能介绍我们先从应用的角度来看详细的介绍一下alertmanager以下简称am,以下是官方文档介绍。The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, groupin
转载
发布博客 2021.06.15 ·
1283 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

prometheus 指标抓取分析

scrape模块在prometheus中负责着采集具体指标,并记录到后端存储中的功能,可以说是prometheus最为核心的一个功能模块篇幅较长,需要耐心指标采集简介为了从服务发现(serviceDiscover)实时获取监控服务(targets),指标采集(scrapeManager)通过协程把管道(chan)获取来的服务(targets)存进一个map类型:map[string][]*targetgroup.Group.其中,map的key是job_name,map的value是结构体targe
原创
发布博客 2021.06.15 ·
3042 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

prometheus 服务发现分析

服务发现简介云原生、容器场景下按需的资源使用方式对于监控系统而言就意味着没有了一个固定的监控目标,所有的监控对象(基础设施、应用、服务)都在动态的变化,这对基于Push模式传统监控软件带来挑战。对于Prometheus这一类基于Pull模式的监控系统,显然也无法继续使用的static_configs的方式静态的定义监控目标。而对于Prometheus而言其解决方案就是引入一个中间的代理人(服务注册中心),这个代理人掌握着当前所有监控目标的访问信息,Prometheus只需要向这个代理人询问有哪些监
原创
发布博客 2021.06.15 ·
646 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

prometheus 源码分析-总览

以下包括链接中的分析皆是平时网上学习以及自己用到的一些知识,简单做个总结,基于版本2.27架构总览Prometheus server 的核心功能模块是 HTTP server、TSDB 、服务发现和指标抓取Prometheus 整个工作流程大概是这样的:通过 Service discovery 知道要抓取什么指标抓取指标数据存入 TSDB客户通过 HTTP server 使用 PromQL 查询结果主要工作流程(main.go)设置命令行参数及其默认值和描述信息解析启动命令的命令行
原创
发布博客 2021.06.15 ·
2849 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

Alertmanager 配置文件分析、原理和源码分析

相关prometheus组件的基本知识总结,以下分析仅代表个人观点,如有错误还请指出,不胜感谢!基本概述我们先从应用的角度来看详细的介绍一下alertmanager以下简称am,以下是官方文档介绍。The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to
原创
发布博客 2021.06.04 ·
2116 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

记一次gmail邮件发送失败问题,smtplib.SMTPServerDisconnected: Connection unexpectedly closed

# 通过 smtp.gmail.com:587 发送import smtplibsmtp = smtplib.SMTP()(code, resp) = smtp.connect("smtp.gmail.com:587")smtp.ehlo()smtp.starttls()smtp.ehlo()(code, resp) = smtp.login("sender@gmail.com", "password")smtp.sendmail("sender@gmail.com", ["receive
原创
发布博客 2021.04.23 ·
1872 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

纯干货整理,一文看懂 kubebuilder 安装,部署以及源码controller-runtime等库分析

快速开始构建go环境curl -o /tmp/go1.13.14.linux-amd64.tar.gz https://dl.google.com/go/go1.13.14.linux-amd64.tar.gzrm -rf /usr/local/go/ && tar -C /usr/local/ -zxf /tmp/go1.13.14.linux-amd64.tar.gzcat <<"EOF" | tee -a ~/.bashrc# add by chengql st
原创
发布博客 2021.04.20 ·
2822 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

使用python发送个人邮箱和企业邮箱区别以及如何使用exchange server 发送邮件

对于邮箱协议和常用的服务器配置,请见 here使用个人邮箱和企业邮箱的代码有点差别使用个人邮箱,QQ为例密码使用qq的授权码,进入网页版qq邮箱->账号下smtp服务部分可看见#发送邮件通知成绩for stu in student: smtpObj = smtplib.SMTP('smtp.qq.com', 587) #smtpObj.set_debuglevel(1) # 方便debug smtpObj.ehlo() smtpObj.starttls()
原创
发布博客 2021.02.07 ·
1192 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

邮件协议POP3/IMAP/SMTP学习总结 SSL/TLS介绍 常用邮箱服务器设置

邮箱协议介绍首先,SMTP、POP和IMAP都是与邮件有关的协议。SMTP主要是负责传送邮件,而POP和IMAP是负责接收邮件。SMTPSMTP (Simple Mail Transfer Protocol),即简单邮件传输协议,默认端口是25,通过SSL协议加密之后的默认端口是465。正如名字所暗示的那样,它其实是一个非常简单的传输协议,无需身份认证,而且发件人的邮箱地址是可以由发信方任意声明的,利用这个特性可以伪造任意发件人。它是用于从源地址到目的地址传输邮件的协议,通过它来控制邮件的中转方式。S
原创
发布博客 2021.02.07 ·
20324 阅读 ·
6 点赞 ·
0 评论 ·
23 收藏

kuberbetes client-go的使用及源码剖析

1. client-go简介1.1 client-go说明client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象(包括deployment、service、ingress、replicaSet、pod、namespace、node等)的增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。client-go官方文档:https://github.com/k
转载
发布博客 2021.02.04 ·
729 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

python socket 原理及底层实现

python socket 三部曲
转载
发布博客 2020.11.27 ·
372 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

kubernetes 强制删除资源

一般强制删除 kubernetes 的资源:kubectl delete <resource> <resourename> --grace-period=0 --force --wait=false强制删除不掉的话,可以使用:kubectl patch <resource> <resourename> -p '{"metadata":{"finalizers":null}}'...
原创
发布博客 2020.09.16 ·
2421 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏
加载更多