自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mars

学无止境

  • 博客(119)
  • 收藏
  • 关注

原创 ELK日志系统浅析与部署

一、ELK应用场景在复杂的企业应用服务群中,记录日志方式多种多样,并且不易归档以及提供日志监控的机制。无论是开发人员还是运维人员都无法准确的定位服务、服务器上面出现的种种问题,也没有高效搜索日志内容从而快速定位问题的方式。因此需要一个集中式、独立的、搜集管理各个服务和服务器上的日志信息,集中管理,并提供良好的UI界面进行数据展示,处理分析。得此:ELK提供一套开源的解决方案,能高效、简便的满足以上...

2018-06-22 03:58:12 33853 37

原创 解决zookeeper集群重启 Error contacting service. It is probably not running 问题

一 问题出现情形1 集群启动后异常关闭,重启出错2 集群未正常启动二 查看zookeeper.out分析原因 1 网络问题。排查防火墙java.net.NoRouteToHostException: 没有到主机的路由 (Host unreachable) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net....

2018-06-10 12:08:49 75014 6

原创 mysql服务设置远程连接 解决1251 client does not support ..问题

一、前期准备1、虚拟机/物理机    mysql环境(非本机)2、本机 navicat软件(验证远程连接)二 、mysql配置1、使用root用户连接远程主机mysqlmysql -u root -p备注 : mysql -u 最高权限用户名 -p   再输入密码进入2、设置用户配置项(1) 查看用户信息select host,user,plugin,authentication_string f...

2018-05-23 10:10:37 67498 36

原创 docker 部署tig监控服务

a. 登陆granfa http://localhost:3000/login admin admin。telegraf 安装。启动telegraf。3.配置granfa。

2023-10-24 23:31:57 496

原创 docker 部署ui管理portainer

【代码】docker 部署ui管理portainer。

2022-11-06 02:29:11 363 1

原创 解决 golang 实现json序列化调用原生序列化stack溢出问题

实现json序列化再调用原生序列化stack溢出

2022-10-24 14:12:20 550

原创 api文档管理方案思考

代码即文档

2022-10-08 19:28:28 369

原创 centos7安装/升级docker和docker compose

【代码】centos7安装/升级docker和docker compose。

2022-09-21 17:15:17 2508 2

原创 docker 搭建redis集群/单机

基于docker环境和docker-compose当前redis 6.2.6mac访问集群时可能出现链接超时问题。是因为mac没有docker0桥接,可参考docker-connettor方案redis-cli创建集群时不识别hostname,必须使用ip。ip不固定的话,也可以使用dig命令动态获取,安装dig工具集群链接时参数 -c目录结构RedisDesktopManager可视化管理工具cluster-redis.conf(集群配置文件)docker-compose.yml

2022-06-04 16:42:28 478 1

原创 docker 搭建etcd集群/单机

etcd docker搭建

2022-06-01 00:13:09 1039

原创 docker 搭建kafka集群/单机

文章目录前言目录结构docker-compose.yml 如下golang测试代码前言基于docker环境和docker-compose依赖zk环境docker zk搭建当前kafka 2.8.1目录结构zk1,2,3 组成集群 kafka1,kafka2,kafka3组成集群zk0 为单机 kafka0 为单机sheepkiller/kafka-manager kafka可视化管理工具单机集群docker-compose.yml 如下# cd kafka/ doc

2022-05-30 23:44:35 349

原创 docker 搭建zk集群/单机

文章目录前言目录结构docker-compose.yml 如下golang测试代码前言基于docker环境和docker-compose当前zk 3.7.0目录结构zk1,2,3 组成集群zk0 为单机docker-compose.yml 如下# cd zk/ docker-compose up .version: '3.8'networks: zknet: name: zk-netservices: zk1: image: zookeeper:l

2022-05-29 11:55:28 556

原创 常见数据结构(go 简易实现)

文章目录线性结构数组链表逻辑结构栈特性应用简易实现队列特性应用简易实现哈希表简易实现非线形结构树二叉树分类遍历二叉堆图线性结构数组内存中顺序存储有序元素特性:随机访问高效,适合读多写少插入删除需要移动元素,可能遇到扩容操作操作描述时间复杂度查询下标访问,随机读取O(1)更新下标访问,随机读取,赋值O(1)插入尾部插入中间插入,后面元素右移超范围插入,触发扩容copy综合O(N)O(1)O(N)O(N)删除尾部删除中间删除,后面元素左移

2022-05-26 22:33:44 497

原创 常用设计原则和理论

文章目录分布式理论ACIDSLACAPBASE开发原则SOLIDSMART设计模型DDDTDD分布式理论ACID事务原则,保障CAP中的C名称描述原子性(Atomicity)事务内操作不可分割,要么都发生,要么都不发生。一致性(Consistency)事务前后数据的完整性必须保持一致。隔离性(Isolation)多个事务之间要相互隔离,不干扰。持久性(Durability)事务提交持久化后,不可逆SLAsla(service level agre

2022-05-26 11:08:44 189

原创 golang 深入学习总汇

文章目录前言基础篇golang简介golang环境搭建wingolang常用配置golang多版本macgolang语法golang变量常量golang运算符golang流程控制golang函数golang错误处理进阶篇golang数据类型golang反射golang面向对象golang并发编程golang内存管理应用篇前言文章以golang1.16源码作为参考仅个人阅读笔记,欢迎批评指正持续更新中基础篇golang简介golang环境搭建wingolang常用配置golang多版本m

2022-05-19 00:45:45 310

原创 golang 垃圾回收

文章目录垃圾回收算法STW标记清除法(mark-sweep)三色标记法垃圾回收算法STW暂停程序(Stop the world,STW)随着用户程序申请越来越多的内存,系统中的垃圾也逐渐增多;当程序的内存占用达到一定阈值时,整个应用程序就会全部暂停,垃圾收集器会扫描已经分配的所有对象并回收不再使用的内存空间,当这个过程结束后,用户程序才可以继续执行标记清除法(mark-sweep)标记根对象出发标记堆中所有存活对象下图A/C/D存活 B/E/F不可以达清除遍历堆中所

2022-05-19 00:29:41 209

原创 golang 内存管理

文章目录内存管理内存分配器线性分配(Bump Allocator)空闲链表分配(Free-List Allocator)线程缓存分配 (Thread-Caching Malloc,TCMalloc)对象大小多级缓存地址空间状态转移内存对齐结构体内存逃逸逃逸机制逃逸分析总结go 内存管理虚拟内存布局go内存管理设计mspanmcachemcentralmheap内存分配内存管理内存分配器线性分配(Bump Allocator)指针指向空闲内存地址,修改更新指针来分配下一个内存地址。复杂度低,执行效

2022-05-19 00:28:28 701

原创 golang 并发编程

文章目录知识点并发并行进程线程协程通信模型CSP communicating sequential processshare memory线程模型1. 用户级线程模型M:12. 内核级线程模型1:13. 两级线程模型M:N调度 GPM调度策略源码分析触发调度线程启动协程执行结束主动挂起系统调用协作式调度系统监控协程 goroutine对比状态转移源码分析使用通道 channel源码分析使用同步 sync互斥锁 mutex锁模式锁状态上锁解锁读写锁 RWMutex知识点并发多线程程序在一个cpu上调度交

2022-05-19 00:24:29 477

原创 golang 反射

文章目录反射反射类型反射对象反射种类使用场景接口结构体指针函数反射reflect实现了运行时的反射能力,能够让程序操作不同类型的对象。三大原则:inserface{}变量可以反射出对象反射对象可以获取interface{}变量修改反射对象,其值必须被设置反射类型//reflect/type.gotype Type interface { // 该类型内存分配大小(内存对齐单位子节) Align() int // 该类型作为结构体字段时内存分配大小(内存对齐单位子节

2022-05-18 17:29:27 221

原创 golang 错误处理

文章目录error使用规约panic使用规约recover使用规约error//零值为nil 引用类型////零值为无错误////有值为包含错误//error接口type error interface { Error() string}//errorsfunc New(text sring) error//fmtfunc Errorf(format string,a ...interface{}) error使用规约error建议放在返回最后面多次重试可

2022-05-18 17:26:06 144

原创 golang 面向对象

文章目录面向对象特性封装继承多态结构体空结构体struct定义成员方法定义结构体嵌套(继承)可见性就近原则接口空接口interface定义interface实现和继承interface多态类型断言多态结构体切片排序总结面向对象特性封装隐藏对象的属性和实现细节,仅对外公开可控成员方法。主要通过结构体和方法访问可见性进行封装继承子类继承父类的所有特征和行为。主要通过结构体组合实现继承的效果多态同一类对象表现出不一样的具体实现。主要通过结构体实现接口,通过接口指针指向不同实现接口的结构体实例达到多态

2022-05-18 17:24:54 415

原创 golang 函数

目录函数定义参数位置参数默认值/可选参数关键字参数可变参数参数传递值传递引用传递(地址拷贝)返回值多个返回值返回值命名注意项匿名函数特殊函数initmain内置函数defer执行顺序1. defer是LIFO,类似堆栈方式运行的2. return与defer同时出现时,defer只有被return包裹才会运行3. return变量时,并不是原子操作,分为赋值 + 返回,如果有defer将在赋值与返回间执行panicrecoverprintprinlncaplenappendcopyclosedeletema

2022-05-18 17:22:17 209

原创 golang 流程控制

文章目录分支ifif...elseif..else if ...elseswitchfallthrough循环forrangewhile?do?breakcontinuegotoselect分支if//if 中可以直接定义变量if 布尔表达式 { /* 在布尔表达式为 true 时执行 */} //例子age := 0_, _ = fmt.Scanln(&age)if age > 18{ fmt.Println("对自己负责")}if s:="呀";age&gt

2022-05-18 17:19:25 144

原创 golang 运算符

文章目录简介算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符优先级简介运算符用于在程序运行时执行数学或逻辑运算。Go 语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符算术运算符运算符描述+相加-相减*相乘/相除(保留整数)%求余// /有浮点型参与运算时会保留小数,10.0/4 结果为2.5A,B := 10,20fmt.Println(A+B) //30fmt.Printl

2022-05-18 17:17:17 153

原创 golang 变量常量

文章目录变量作用域声明初始化赋值常量缺省iota计数器变量语言变量名满足(标识符规则)由字母、数字、下划线组成,其中首个字符不能为数字使用 var 关键字声明,同作用域内不能重复声明变量初始化零值表类型类型零值bool布尔类型falseint整数0float浮点0.0string字符串“”pointer, function, interface, slice, channel, map引用类型nilarray, s

2022-05-18 17:14:38 109

原创 golang 数据类型

文章目录内置类型值类型内置常量引用类型内置函数内置接口数据类型基本类型整型浮点型布尔型字符和字符串字符字符串类型转换派生类型数组 array多维数组切片 slice哈希表 map指针类型 pointer声明取指针内存类型判断comma-ok断言type - switch内置类型定义在builtin/builtin.go值类型 bool int int8, int16, int32(rune), int64 uint uint8(byte), uint16, uint32, u

2022-05-18 17:12:24 707

原创 golang 语法

文章目录GO代码行分隔符注释关键字标识符包管理可见性GO代码go后缀文件//go 编译器 cmd/compile/internal/gc/main.go 1.通过词法分析获取所有程序token2.通过语法分析生成抽象语法树(AST)3.遍历检查抽象语法树,检查过程中改替换部分代码为内建函数4.编译检查通过抽象语法树,生成中间代码。6.执行优化中间代码并生成机器码词法分析由关键字/标识符/数字/字符串/字符/注释组成//go程序由关键字/标识符/常量/字符串/符号/注释imp

2022-05-18 16:27:06 84

原创 golang 简介

文章目录背景诞生优势特色特征对比背景硬件技术更新快,性能逐步提高,现有的主流编程不能合理利用多核多cpu的优势。软件系统复杂,维护成本高,缺乏一个足够简洁高效编程语言。风格不一计算力不够并发支持不友好c/c++项目编译慢(静态编译),存在内存泄露问题诞生思想**less can be more** 大道至简才是最难的创始人Ken Thompson(肯·汤普逊):1983年图灵奖、1998年美国国家技术奖得主,他与Dennis Ritchie是Unix系统的原创者。Thom

2022-05-18 16:24:14 326

原创 docker 配置安全访问

一 前言实验机器腾讯云centos7docker启用远程管理端口默认没有ssl,容易被当作矿机使用。所以可以启用ca签发证书来加密客户端和服务端。docker版本Client: Docker Engine - Community Version: 20.10.0 API version: 1.41 Go version: go1.13.15 Git commit: 7287ab3 Built: Tue

2021-12-09 00:22:36 831

原创 linux配置sftp

一 前言实验机器腾讯云,centossftp是在ssh上支持ftp功能,相对于ftp增加了rsa等非对称加密,私密性更良好,但是传输速率上低于ftp。sftp基于ssh则需要客户端将公钥放置ssh的公钥信任列表。默认位置位 .ssh/authorized_keys,加入客户端公钥即可登录ssh二 准备# 添加用户组groupadd 用户组名# 删除用户组groupdel 用户组名# 添加用户useradd 用户名-g 用户组 # 用户名归于用户组-s<shell&gt

2021-12-06 23:06:22 1150

原创 linux安装ftp(vsftpd)

文章目录一 前言二 准备命令ftp命令yum命令环境step1:检查SELinuxstep2:关闭SELINUX or 降低防护等级step3:检查防火墙step4: 如果没有开放端口 则开放防火墙三 安装ftp步骤其他四 配置ftpstep1:备份配置step2:配置ftpstep3:配置用户权限五 验证ftp一 前言实验机器,腾讯云centosvsftpd版本 3.0.2vsftpd运行模式为被动模式,客户端与服务端均保持防火墙,ftp用户为非虚拟用户。二 准备命令ftp命令# 启动

2021-12-02 23:24:56 573

原创 linux 安装node

文章目录前言资源安装setp1 下载安装step2 添加环境变量step3 验证前言腾讯云服务器,centos7资源node包资源node官网查找自己系统对应的安装包,建议使用node包资源右键拷贝链接。当前最新版为v16.13.0wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.gz安装setp1 下载安装cd /usr/localwget https://nodejs.org/dist/v16.1

2021-12-01 20:26:24 1326

原创 linux安装配置nginx(ssl)

文章目录一.前言二.前置三.安装nginxrpm包方式(推荐)源码编译方式四.配置nginx1.ssl配置step1: 上传证书(无ca证书请使用openssl生成自己的证书)step2: 配置nginxstep3: 开放防火墙端口step4: 验证一.前言实验机器:腾讯云centos7配置结果:启用https二.前置linux常用命令(可选)nginx常用命令# 启动服务(常用)nginx# 退出服务(常用)nginx -s quit# 强制关闭服务nginx -s stop#

2021-11-30 22:49:06 523

原创 ngrok私有服务搭建(docker交叉编译)

文章目录前言docker镜像介绍使用编译配置介绍没有证书有自己域名证书注意关键编译脚本编译结果比较有参考性的文章前言ngrok是golang编写的开源内网穿透工具,1.x是开源 2.x是闭源,目前免费的服务器也没有几个。ngork的主要配置在于公网服务器的域名。但是由于遍以后的客户端和服务端将ca文件生成在了代码中一起打包编译,所有修改域名和ca文件都需要重新编译。恰逢双十一买了服务器和域名,有使用需求遍把编译环境制作成docker环境,使用docker交叉编译快速获得可执行的客户端和服务端。

2021-11-29 22:30:27 1092

原创 golang 常用配置

文章目录前言环境变量开发配置交叉编译maclinuxwin前言记录一些常用环境变量配置或者命令,提高开发效率环境变量软件基础环境变量# linux 修改环境变量vim /etc/profile # 必要配置export GOROOT="/usr/local/go" # go安装位置export PATH=$PATH:$GOROOT/bin # go可执行文件加入全局# 非必要配置export GOPATH="/home/mygo" # 项目位置export PATH=$P

2021-11-28 18:29:59 1132

原创 Typora+PicGo+github+git+docsify搭建个人静态页面网站

目录一.前言二.安装步骤1.安装[Typora](https://www.typora.io/)2.安装[PicGo](https://molunerfinn.com/PicGo/)3.安装[docsify](https://blog.csdn.net/qq_22211217/article/details/121446815)4.安装[git](https://git-scm.com/download/win)5.github.iostep1: 创建仓库step2: 配置权限6. 配置PicGo目的: 将

2021-11-22 22:42:50 1275

原创 docsify搭建和简单使用(mac)

文章目录一.前言二. 安装docsifystep1.安装node环境step2.配置npmstep3.安装docsify三.使用docsifystep0. 常用命令step1. 快速开始step2. 自定义组件一.前言docsify是一款文档生成静态页面的轻量级软件,与gitbook相比轻量且更易扩展。作为一款实时渲染文档为静态网页,其不需要编译静态网页,所以更专注与文档创作。常见的组合拳 typora + docsify/gitbook + github.pages/gitee.pages 快速

2021-11-20 23:58:47 8314

原创 mac 安装homebrew

# 查看brewbrew -v# 安装brewruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"# 查看源git -C "$(brew --repo)" remote -v# origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git (fetch)# origin https://mir

2021-11-20 22:41:02 220

原创 node 多版本管理(mac)

目录0.前言1.预备nvm常用命令node常用命令npm常用命令3.安装step1 安装nvm方式1:brew安装(推荐使用)方式2:git安装step2 安装node设置源前设置源后step3 配置npm配置源(推荐)安装cnpm(推荐)0.前言最近对静态文档软件感兴趣,例如gitbook,docsify等使用到了node搭建本地静态文档服务。node的版本管理主要使用nvm做管理主要以mac系统角度处理1.预备nvm常用命令# nvmnvm --version#查看已经安装的版本

2021-11-20 00:56:47 5146 1

原创 golang 多版本管理(mac)

目录前文golangIDE(推荐)step1 下载gostep2 指定go 版本使用gvmstep0 常用命令step1 下载gvmstep2 使用gvm前文基于gomod管理后,经常出现需要多个版本的go进行代码构建。如果仅仅是为了编译,个人推荐使用docker进行交叉编译即可;如果是为了本地调试运行,可以参考一下方式golangIDE(推荐)原理: 指定go版本左右软件环境的goroot,替代系统环境gorootstep1 下载gofile->other settings-&g

2021-11-15 21:38:02 3522

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除