- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 一起来!白嫖Amazon DynamoDB!!!
Amazon DynamoDB是由Amazon Web Services(AWS)提供的一种快速、灵活、全托管的NoSQL数据库服务,支持文档和键/值数据模型。它具有自动扩展、低延迟、高可靠性、高吞吐量等特点,能够处理从几个字节到几TB的数据,同时还具备强大的安全和监控功能。关键是有Amazon账号就可以有免费的套餐可以使用,貌似试用期有12个月,所以今天我们来白嫖一下这个免费的产品。
2023-05-10 16:24:36 1450 1
原创 kubernetes集群监控 Kube-Prometheus-Stack
该项目开箱即用的功能,对k8s的监控指标是比较全面的,对于k8s的主要组件的运行状态如Node、Kubelet、Pod、Deployment、StatefulSet、CoreDNS、PV等资源进行了指标采集和监控,项目采用的是prometheus,并且有许多CRD资源,可以很方便通过编写yaml配置文件,来进行监控能力的扩充和告警阈值的设置。
2023-05-08 09:15:04 2434
原创 使用ControlNet控制Stable-Diffusion出图人物的姿势
在Stable-Diffusion(以下简称SD)出图中,我们往往需要对出图人物的姿势进行控制,这里我使用一个比较简单上手的方法,通过ControlNet可以很方便地对画面风格,人物姿势进行控制,从而生成更加符合自己期望的图片。
2023-05-04 22:05:11 3481
原创 chatGPT陪你读源码
chatGPT从2022年11月份崭露头角以来,一直备受关注。他的人工智能对话颠覆了以往智能对话的刻板印象,跟chatGPT聊天,感觉就像百晓生一样,什么都懂。尤其在编程方面,chatGPT可以根据实际的业务场景需求,编写业务代码,也可以对代码进行优化,改错,本文结合目前的chatGPTBox插件,来演示,如何让chatGPT陪你一起读源码。
2023-03-24 11:39:51 10595
原创 k8s权限管理
k8s的资源访问控制支持多种模式,对于资源的管理模式基于RBAC(role basic access control)。rolerole 和 clusterrole 的一个区别在于,role授予的权限只能是在所属的namespace,而clusterrole是全局的。在k8s资源中,有些资源是有namespace scope的,可以通过kubectl api-resources 进行查看。
2023-01-15 17:45:33 1241
原创 k8s ingress概念和实践
Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP/HTTPS该特性从1.19版本开始作为stable状态进行发布Ingress公开从集群外部到集群内服务的 HTTP 和 HTTPS 路由。流量路由由 Ingress 资源上定义的规则控制。如下图将所有流量都发送到同一 Service 的简单 Ingress 示例:Ingress 不会公开任意端口或协议。
2023-01-15 15:23:17 465
原创 kubernetes部署 containerd版本
对于containerd版本安装,跟k8s 1.24版本之前docker安装的步骤类似,只不过把安装docker的过程换成了containerd而已,因为在k8s 1.24版本之后,移除了docker-shim,所以无法直接使用docker-engine,本质的部署过程也是一样的。
2022-12-25 17:40:53 1981
原创 gRPC go版本的初体验
简单来说,RPC就是要像调用本地的函数一样去调远程函数,实现分布式调用,系统服务水平能力扩展。本文的环境采用的是arm版本的centos7的容器进行测试,所以安装的软件均为arm版本的。提示有些包可能需要科学上网才能下载到。在大型的业务系统中,常常会使用分布式,微服务的方式来为整个系统提供服务,这些分布式、微服务部署在千差万别的网络中,不像原先的集中式,都在同一个代码仓库中,可以直接通过包的引用来调用,而且各个服务的写的语言又不一致,这就需要有一种标准来进行规范。
2022-12-25 17:19:18 913
原创 docker-compose 如何安排容器启动的顺序
在使用百度的搜索这个问题的时候,发现大家也遇到类似的问题,但绝大多数采用的是wait-for的解决方法,这个可能应该是旧版本不支持healthcheck检查,但现在官方已经支持,这种解决方式就应该退出了,所以在遇到问题的过程中,还是阅读最新的官方文档才比较靠谱。
2022-10-31 15:28:35 5050 2
原创 前端工程项目常用的代理
在前端项目安装包的过程中,经常因为网络原因导致npm、yarn等工具安装依赖失败,这里使用国内镜像的方式来实现国内镜像源,可以明显加快速度减少因网络原因导致的失败
2022-06-29 14:18:06 362
原创 压缩go语言生成程序的大小
在使用go编译程序的时候,即时是一个入门的hello程序,编译后的大小都挺大的,经过压缩后,压缩比接近75%,还是非常可观的
2022-06-20 14:47:07 600
原创 手把手教你搭建Harbor镜像仓库
在使用docker进行部署的时候,我们需要有个仓库来对我们的自己封装的镜像文件进行管理,之前我是一直使用的是阿里云提供仓库,这个是免费的,也是挺好用的,但对仓库的数量是有限制的,无法进行企业化的管理,所以这里我们采用Harbor搭建一个属于自己的docker的镜像管理仓库。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有web管理功能,操作其实是非常简单易行的。...
2022-06-17 16:21:45 5189 4
原创 zabbix故障自愈设计
zababix故障自愈设计概述在监控系统中,故障自愈是一个老生常谈的话题,他可以对于常见的运维故障,及时响应解决,减少人工干预,实现运维故障快速恢复。这里采用zabbix的脚本功能,配合触发器,可以实现故障发生时,手动点击运行故障恢复脚本,达到故障自愈的效果。故障恢复原理在监控系统中,故障事件是由于某些指标数据不符合正常的期望数据,由此便引发了一个故障事件,提醒用户及时关注和处理。针对于某些故障场景,恢复就比较简单,像服务停止,进程停止等,直接通过简单的命令行就可以恢复,针对一些复杂的故障,可能
2022-01-18 18:01:55 3244
原创 Kubernetes部署-最详细实操可行
本文用于指导Kubernetes(以下简称为k8s)部署,采用的是较为简单便捷的kubeadmin工具进行安装,版本为1.19.0。一直以来都在说k8s,但是在网上看到好多教程都是比较杂,跟着做总是会缺失一些文件或者因为GFW下载不到某些镜像,导致安装一直失败,最近重新整理了下,将自己的k8s部署过程进行记录并分享,希望可以给到正在部署k8s的童鞋们一点参考。
2021-12-22 19:46:10 5126 2
原创 docker部署oracle12c
概述本文指导如何使用oracle的官方镜像安装部署oracle12c操作步骤注册docker账号oracle12的官方镜像需要有docker账号才能有权限进行下载docker 登录使用docker login,通过docker账号登录到dockerhub# docker loginLogin with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head ove
2021-11-27 10:51:29 2458 2
原创 远程部署zabbix代理
概述在一个有代理的监控解决方案中,最多的工作量就在于部署以及更新代理,如何快速地完成代理程序的部署和更新,是监控解决方案中需要解决的一个难点,zabbix也是如此,官方的zabbix代理支持多种方式进行部署,如rpm、源码编译等,在这个解决方案中,采用的是源码编译后进行打包部署。原理实现zabbix代理的远程部署的原理是使用ssh协议,登录到目标服务器,在具备root的权限的前提下,创建zabbix监控用户和代理安装目录,以及必要的sudo的配置。将打包后的代理介质进行解压,使用zabbix监控用户进
2021-11-25 12:05:29 875
原创 json datasource使用
json datasource使用概述在grafana的数据源中,有个比较轻量级的数据源,可以跨网络进行json数据访问,比较灵活,对于需要由grafana来渲染数据,可以通过这种方式进行暴露。安装进入grafana服务器,执行以下命令进行安装,重启后即可使用json数据源grafana-cli plugins install simpod-json-datasourcejson数据源服务这里,我使用了gin框架,实现了json数据源至少需要的3个访问点,1个用于测试连通性,其余2个为指标数
2021-09-15 17:06:56 4196
原创 使用PostgreSQL作为zabbix库,并将history和trend相关表迁移到TimescaleDB
概述本文通过实际操作,指导使用PostgreSQL作为zabbix的数据库,并将history和trend相关表迁移到TimescaleDB中。创建用户登录到PostgreSQL服务器,并切换到postgres用户下createuser --pwprompt zabbix根据命令行提示设置密码。创建zabbix数据库createdb -O zabbix -E Unicode -T template0 zabbix-O user 指定数据库owner。-E encoding 指定
2021-08-20 16:58:47 13006
原创 递归算法分析-最简单的例子
概述递归算法在算法设计中,是一种比较难以理解的算法存在,感觉递归算法无限套娃,最终居然也能返回正确结果,对于初入坑的童靴是一个神一般的存在。本文通过对递归算法的一个例子,从最简单的例子中,逐步撕开其神秘面纱。最简单的题目给你一个整数数组,要求返回这个数组中的最大值要求使用递归算法。如:数组{1,-9,10,18,6,22} 最大值为22分析相信拿到这个简单题目的同学一定很开心,这不是最简单的一道题吗?遍历数组,保存最大值即可完成。但如果是要求使用递归算法呢?那该如何做解?递归一般套路都是,将
2021-08-20 14:41:19 11975
原创 docker文件分层
概述本文使用一个docker container示例,讲述docker的文件分层的一些原理知识预备docker其实是使用了Linux Kernel的一些特性Features来实现的资源隔离,文件系统就是其中一种,但docker为了使资源可以更高效的被利用,采用了分层次的文件系统结构,来实现container的文件系统。个人觉得原理有点像平行宇宙的概念,有人认为,我们这个宇宙是存在平行宇宙的,也就是我们所做的不同的选择,都会分发出不同宇宙,并持续运行下去,而做梦就是可以游走在这些平行宇宙间。这里
2021-08-13 16:11:20 13276
原创 Golang 官方实现的双向链表
概述在go语言中,官方已经替我们实现了一个双向链表,可以用来存储、查找我们的数据,数据类型支持任意类型,其中节点的定义如下:// Element is an element of a linked list.type Element struct { // Next and previous pointers in the doubly-linked list of elements. // To simplify the implementation, internally a list
2021-08-13 15:57:48 13516
原创 Go语言中 数组和slice 走过的坑
数组和slice区别在go语言中,数组是一段连续的内存,在初始化时候需要明确声明其大小,不可以在运行时动态生成,而slice则可以自由得伸缩其大小。我们知道slice,底层其实就是一个数组。赋值区别数组赋值go语言中,数组赋值采用的是值赋值方式,赋值后的两个数组互不影响func arrayFuzhi(){ array1 := [3][3]int{{1,2,3},{4,5,6},{7,8,9}} array2 := array1 array1[0][0]=0 fmt.Prin
2021-08-10 15:53:36 13959
原创 浅谈Gin框架中bind
概述Gin框架中,有bind函数可以非常方便的将url的查询参数query parameter、http的Header,body中提交上来的数据格式,如form,json,xml等,绑定到go中的结构体中去,这期间Binding做了啥事情,这么多个Bindding函数,我们该如何选择,一起通过源码来解开其中神秘的面纱吧。Binding接口type Binding interface { Name() string Bind(*http.Request, interface{}) error
2021-07-16 11:16:24 23374
原创 前端时尚好用的图标项目-Font Awesome
概述作为一个非专业的美工和前端的技术人员,在项目上有时需要用到一些图标,才能使前端看起来比较高大上,以前都是使用收集好的一些小图标,放在目录下面,通过手动添加图片标签来实现,但是这种方式比较繁琐,要收藏较多的图标,找起来也费劲。推荐这里我推荐使用fontawesome,这里使用的图标非常好看,使用方式也很简单,同时也支持CDN加速,有着非常不错的用户体验。Font Awesome介绍Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小、颜色、阴影以及任何可以用CSS的样
2021-05-12 09:00:38 30921
原创 zabbix-agent2 监控 oracle 数据库
概述在zabbix5.0版本以上,新增了一个特性,那就是zabbix-agent2,这个是zabbix公司使用go语言重写的一个代理,可以完全替代原来的zabbix-agent。这个代理功能比原来的要强大的多,内置了很多个插件支持对基础资源的监控。这里我选用oracle的插件,来看看zabbix-agent2可以支持监控哪些指标。安装安装zabbix-agent2这里采用zabbix提供的官方repo,进行安装rpm -Uvh https://repo.zabbix.com/zabbix/
2021-05-12 08:43:49 35976 3
原创 IBM Workload Scheduler 9.5 版本特性
概述目的通过对某商业银行实施新版的IBM Workload Scheduler,总结新版本相对于老版本的一些提升,包括部署安装、功能特性等。IBM Workload Scheduler【介绍】9.5版本更新特性部署安装新版的IBM Workload Scheduler在部署方面有了极大的提升,在9.5版本之前,部署和安装非常复杂,需要预先部署IBM的Jazz、WAS8.5等基础组件,介质包极为臃肿庞大,部署过程极其繁琐。新版本的主域部署只需要以下流程即可完成:目前根据该流程封装
2021-05-12 08:39:22 28863 1
原创 初探zabbix_agent2 plugin
概述zabbix_agent2作为可以完全替代zabbix_agent功能的客户端,较以往的功能非常强大。采用go语言进行编写,插件化方式对监控的能力进行管理。一栈式代理能力,官方提供的5.2版本已经具有很强的监控能力zabbix_agent2指标在代理运行的情况下,我们可以执行zabbix_agent2 -R metrics 获取当前代理所支持的指标,以及指标的运行情况[Agent]active: truecapacity: 0/100tasks: 0agent.hostnam
2021-04-26 01:53:25 31535
原创 docker环境下部署zabbix
概述本文采用rpm包的方式,基于docker的centos7镜像层,构建一个zabbix的环境,其中包括zabbix服务端、mysql数据库、zabbix客户端以及grafana。Dockfilezabbix服务器
2021-04-21 12:13:22 32183 2
原创 prometheus 语法初探
概述Prometheus是一套使用go语言进行编写的监控工具,专注于基础监控,默认仅保留15天的监控数据,15天的监控数据,已经足够运维人员去排查和分析运维故障。Prometheus有专门的PQL语言,可以对采集上来的指标进行多维度、函数分析,具有高度的指标定制化能力。本文将同大家一起学习Prometheus的PQL语法,验证并记录下过程PQL重要概念即时向量一个时间点某指标的值,如node_cpu_seconds_total{mode="idle"}区间向量指的是在某段时间
2021-01-10 08:52:09 23607
转载 golang fmt格式“占位符”
概述golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。本篇文章通过转载,记录下常用的fmt格式。原文链接如下:[https://studygolang.com/articles/2644] (https://studygolang.com/articles/2644) 如侵必删示例定义示例类型和变量type Human struct { Name string}var people = Human{Name:"zhangsan"}普
2020-08-30 12:09:44 277
原创 locale中的变量对脚本的影响
概述最近在项目上,因为locale中的字符集影响,导致脚本输出不正常,无法正确去处理,在这篇博客中,简单地说明下locale对sed,awk等输出流处理工具的影响。locale在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化
2020-08-20 11:16:32 321
原创 Web页面插码
概述最近在忙一些项目,同时也在学习Vue.js和Go开发,发现Vue.js的组件封装功能真的太强大了,可以很快并且便捷的完成页面的开发,不需要去考虑那么多的样式和排版,直接引用社区大神们封装完成的样例模板,已经很好地满足我对前端开发的需求了。手上有些项目的,包括zabbix这些前端已经写得差不多的产品或者项目,想要在这个交互前端上面增加一些按钮或者报表,来辅助用户更好地完成页面的交互,总不可能去推倒重来,所以这里我用了页面插码的方式来进行功能的完善。原理我们知道,无论是jsp或者php写的前端
2020-08-16 15:31:19 2990
原创 Window环境下安装mattn/go-oci8库
概述mattn/go-oci8库是在go语言中,连接oracle数据库的驱动程序,之前在另外一个篇 mattn / go-oci8 库安装 (用于go连接oracle数据库) 介绍了在linux环境如何编译和安装,这次我们在Windows环境下进行安装。环境准备GCC编译环境PKG-CONFIG 程序 百度网盘提取码: r4frOracle InstanceClient 这里我用的是截止目前最新的19.6版本Oracle SDK 这里我用的是截止目前最新的19.6版本安装配置GC
2020-07-03 10:39:50 664
原创 Java手动编译命令
概述前几天有个java项目,由于没有了源代码,只剩下一个tomcat下的一个webapp应用程序,需要对其中的某个servlet类进行修改,并且重新编译为class文件,进行故障排错和修改。原理众所周知,java工程编译的class文件,目前很容易就可以被反编译为源文件并且进行修改。此次是一个web工程,但其实我不需要重新去建立一个web工程,我只需要找到相应的类,并且反编译为java文件,进行修改后,再进一步编译为java类工具反编译工具用到了jd-gui,这个工具可以将一个class
2020-05-24 10:45:59 566
原创 shell的exec命令
概述在docker的启动脚本中,我们经常可以看到有exec来启动执行命令,那这个到底有什么作用呢?我们来简单验证一下。#!/bin/bashset -euo pipefail# Check if the the user has invoked the image with flags.# eg. "apm-server -c apm-server.yml"if [[ -z $1 ]] || [[ ${1:0:1} == '-' ]] ; then exec apm-server "
2020-05-13 07:40:28 2877
原创 DataV 你值得拥有的大屏展示工具
DataVVue 大屏数据展示组件库(项目地址: http://datav.jiaminghi.com/),具有以下几个特性:开源免费长期维护,不断添加新组件以丰富组件库开箱即用大部分组件设置宽高或配置简单的数据即可使用视觉绚丽通过组合不同的配置项可以达到多变的视觉效果效果图先来几张作者的效果图,看下DataV的魅力,之前我也试用过阿里云的Datav,觉得还不错,就是...
2020-04-23 19:55:18 36177 10
转载 OLAP、OLTP的介绍和比较
OLTP与OLAP的介绍数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询...
2020-04-23 09:13:24 222
原创 git 使用入门
git介绍Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(来自百度百科:https://baike.baidu.com/item/GIT/12647237?fr=aladdin)代码库概念在配置管理中...
2020-04-20 11:08:36 194
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人