![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
青丶空゛
一歩ずつ歩み続けてはじめて千里の遠くに行き着けるし.
(如果个别文章图片不见了,建议访问我的博客园找对应文章,[https://www.cnblogs.com/ailumiyana],懒癌又犯了,懒得改了 哈哈)
展开
-
linux c++ 非阻塞tcp socket client简单实现
需求还需上报下数据,服务本身就是单进程线程安全的,不能用阻塞socket,通过getsockopt() TCP_INFO弄了个简单判断连接存活的方法,数据不是很重要,可靠性要求不高,也可以考虑udp.原创 2023-07-14 15:38:59 · 1410 阅读 · 0 评论 -
k8s学习笔记一(搭建&部署helloworld应用)
k8s学习笔记一(搭建&部署helloworld应用)文章目录k8s学习笔记一(搭建&部署helloworld应用)虚拟机创建三个节点k8s install部署hello world 应用issue 汇总node 一直处理NotReady状态重启系统后虚拟机的网络不通虚拟机创建三个节点这里略过.网络模式用的hostonly系统ubuntu 20.04k8s installset -x#根据规划设置主机名(在3台机上分别运行)hostnamectl set-hostn原创 2022-03-23 12:01:43 · 2246 阅读 · 1 评论 -
[golang] go中如何监听一组channels
go中如何监听一组channelsreflect.Selectfunc Select(cases []SelectCase) (chosen int, recv Value, recvOK bool)cases := make([]reflect.SelectCase, len(chans))for i, ch := range chans { cases[i] = reflect.SelectCase{Dir: reflect.SelectRecv, Chan: reflect.Valu原创 2021-08-20 19:54:59 · 937 阅读 · 0 评论 -
go微服务框架kratos学习笔记十(熔断器)
go微服务框架kratos学习笔记十(熔断器)文章目录go微服务框架kratos学习笔记十(熔断器)什么是熔断熔断器逻辑kratos Breakerkratos 熔断逻辑kratos熔断器使用说明bladmaster client breaker配置说明test什么是熔断假设存在这样的调用链:服务A -> 服务B -> 服务C如果服C crash 或者一些原因导致不可...原创 2020-03-02 18:57:47 · 1768 阅读 · 0 评论 -
go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)
go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)文章目录go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)zipkin使用demo数据持久化当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,...原创 2020-02-25 23:21:30 · 1469 阅读 · 0 评论 -
go微服务框架kratos学习笔记八(kratos的依赖注入)
go微服务框架kratos学习笔记八(kratos的依赖注入)文章目录go微服务框架kratos学习笔记八(kratos的依赖注入)什么是依赖注入google wirekratos中的wireProvidersinjector(注入器)Binding Interfaces笔记二提过依赖注入,和如何生成,但没有细讲,本文来简单看看kratos的依赖注入。什么是依赖注入来看一个小程序,创...原创 2020-02-21 18:20:17 · 1829 阅读 · 0 评论 -
go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)文章目录go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)demodemo serverdemo client池daoservicep2croundrobingrpc官方负载均衡工作流程源码本节看看kratos的学习负载均衡策略的使用。kratos 的负...原创 2020-01-19 18:56:11 · 3148 阅读 · 0 评论 -
go笔记--几个例子理解context的作用
go笔记–几个例子理解context的作用文章目录go笔记--几个例子理解context的作用context interface先看一个简单的例程context的作用派生contxt经常在http框架里面看到一个context参数,它是做什么的呢,先简单看看它的定义。context interfacetype Context interface { // Deadline ret...原创 2020-01-17 18:20:51 · 1146 阅读 · 0 评论 -
go微服务框架kratos学习笔记六(kratos 服务发现 discovery)
文章目录@[toc]discovery 服务服务注册服务发现简测本节介绍kratos的discovery服务发现的使用,稍微看了下grpc的服务发现接口原理,感觉挺复杂的,打算还是抽出来下次单独写一篇原理性质的文章吧。所以先看使用大致过程是1、我们先启动bilibili的discovery服务2、然后服务先向discovery注册一个appid(唯一)3、client根据ap...原创 2020-01-13 19:31:23 · 2443 阅读 · 2 评论 -
go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])
go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])文章目录go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])静态配置flag注入在线热加载配置远程配置中心本节看看kratos的配置中心paladin(骑士)。kratos对配置文...原创 2019-12-30 23:17:58 · 2289 阅读 · 0 评论 -
go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)
go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)文章目录go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)warden directdemo-servergrpc.toml服务注册服务发现client direct 调用...原创 2019-12-29 12:56:40 · 1304 阅读 · 0 评论 -
go1.13 mod 常见问题
转载于知乎 :https://zhuanlan.zhihu.com/p/980756580,go mod 要求所有依赖的 import path 的path 以域名开头,如果现有项目转1.13的go mod 模式,且不是以域名开头则需要修改。 eg: code.be.mingbai.com/tools/any_test_del_free1, 既然已经更新到...转载 2019-12-29 00:22:03 · 3872 阅读 · 0 评论 -
go微服务框架kratos学习笔记三(构建单独的http或者rpc demo项目)
文章目录go微服务框架kratos学习笔记三(构建单独的http或者grpc demo项目)grpchttpgo微服务框架kratos学习笔记三(构建单独的http或者grpc demo项目)前面两篇跑通了demo项目,和大概了解了kratos demo整体结构,本篇分别构建一个http和一个grpc微服务单独测试。grpc先从grpc 开始, 上篇没有测试grpc接口,这回来尝试,直接...原创 2019-12-26 22:01:13 · 2510 阅读 · 2 评论 -
go笔记--协程安全map的四种方法
go笔记–协程安全map的四种方法文章目录go笔记--协程安全map的四种方法读写锁sync.mapatomic.Valuechan读写锁这个应该是最简单的方法,读取的时候加读锁,修改的时候加写锁。type LockMap struct { m map[interface{}]interface{} sync.RWMutex}func (lm *LockMap) Get(key...原创 2019-12-26 12:16:32 · 1503 阅读 · 0 评论 -
go微服务框架kratos学习笔记二(kratos demo 结构)
文章目录apicmdconfigsdaodimodelserverservice上篇文章go微服务框架kratos学习笔记一(kratos demo)跑了kratos demo本章来看看demo项目的整体结构。目录结构├─api # 对外接口├─cmd # main├─configs # 配置├─internal │ ├─dao #数据访问...原创 2019-12-24 22:56:34 · 3499 阅读 · 0 评论 -
go笔记--json包使用
json包实现了json对象的编解码,参见RFC 4627。Json对象和go类型的映射关系主要通过Marshal和Unmarshal函数实现Marshalfunc Marshal(v interface{}) ([]byte, error)Marshal函数返回v的json编码。Marshal函数会递归的处理值。如果一个值实现了Marshaler接口切非nil指针,会调用其Marshal...原创 2019-12-15 19:55:37 · 239 阅读 · 0 评论 -
golang消息系统nats的消息传递模型介绍
nats的消息传递模型文章目录nats的消息传递模型What is NATS主题式消息(Subject-Based Messaging)主题的层次结构通配符发布订阅(Publish-Subscribe)example请求应答(Request-Reply)example队列组exampleAcknowledgementsexampleWhat is NATSnats是一个go语言开发的开源的...原创 2019-12-03 18:30:55 · 1745 阅读 · 0 评论 -
[golang] golang简洁的文件上传与接收服务
最近自己阿里云上的文件共享总是不怎么方便,本来开了samb,感觉也不是很便利,于是只能自己整个简洁点的了。不过用go的话也非常快啦。需要注意的是http post文件一般用的都是multipart表单格式,看一看就好了。uploadhandlepackage mainimport ( "io" "io/ioutil" "net/http" "os" ...原创 2019-12-01 16:11:00 · 2663 阅读 · 0 评论 -
[ffmpeg][goav]ffmpeg代码例子pcmu重采样并转码aac格式
8k双声道的pcmu格式重采样44.1kHz的aac格式例子src : 其中adts包是给aac填充头部的,这里就没给了。package mainimport( "github.com/ailumiyana/goav-incr/goav/avcodec" "github.com/ailumiyana/goav-incr/goav/avutil" "github.com/ailumiy...原创 2019-11-27 18:33:20 · 2254 阅读 · 0 评论 -
[ffmpeg] ffmpeg filter模型介绍及开发指南
[ffmpeg] ffmpeg filter模型介绍及开发指南文章目录[ffmpeg] ffmpeg filter模型介绍及开发指南FFmpeg filter简介滤镜链图介绍滤镜链图(filtergraph)滤镜链(filterchain)滤镜垫(filterpad)滤镜(filter)1、基本滤镜2、 滤镜链3、滤镜链图开发API主要API示例FFmpeg filter简介libavfi...原创 2019-11-22 15:02:09 · 1491 阅读 · 0 评论 -
docker初体验
文章目录docker 安装安装ubuntu容器本地主机与容器互联ssh最近在windows下跑流媒体服务器,但是登录服不太便利移植,决定试用下docker,在docker的ubuntu容器中跑另一个server。Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后...原创 2019-11-12 18:18:12 · 260 阅读 · 0 评论 -
[golang]select优先级
golang 的select 用来同步处理任务非常便利也十分安全,类似于c的epoll和c++里面的eventloop模型。如果select中的通道chan是无缓冲通道,那么很有可能丢失数据,两个定时任务同时发生时,可能只是随机执行了其中一个,另一个通道数据可能就丢失了,那么可以增加优先级来规避这个问题。除了数据丢失外,配置优先级主要还是为了解决随机性问题,如果一个缓冲通道的缓冲区一直是满的,...原创 2019-10-29 18:39:15 · 1202 阅读 · 0 评论 -
[golang]UDP端口池
[golang]UDP端口池)·好久没来csdn了,懒癌犯了,今天1024,水一篇文章吧,哈哈。池子会保存一定范围内数量的udp端口号,get获取一个put放回去一个源码: “github.com/ailumiyana/tools/udp”tools包里面还有一个延迟统计包和一个基于logrus的滚动日志package main import( "github.com/a...原创 2019-10-24 23:22:49 · 747 阅读 · 0 评论 -
[ffmpeg][vaapi][goav][golang] ffmpeg使用vaapi示例代码(基于goav-incr)
[ffmpeg][vaapi][goav][golang] ffmpeg使用vaapi代码示例(基于goav)自己写的一份比较完备的vaapi硬件加速示例代码,包含了vaapi的解码,编码,及滤波的使用。基于goav,介于goav还有点bug,几个内存释放的函数会crash, 有可能版本不一致吧,作者貌似也不维护了,就没给作者提,其次我还需要加点硬件加速代码,就弄了个goav-incr,只要还...原创 2019-10-24 11:09:21 · 2787 阅读 · 0 评论 -
一个go延迟统计工具
一个go延迟统计工具一个go延迟工具,从gin框架的日志中间件上掰下来的,帮助分析系统任务性能package mainimport ( "github.com/ailumiyana/latency" "fmt" "time")func main(){ qsv := latency.New("QSV", "QSV-Overlay") qsv.Start() time.Sl...原创 2019-08-02 18:38:23 · 1290 阅读 · 0 评论 -
golang--redigo中连接池的使用
redigo连接池的使用文章目录redigo连接池的使用前言conn连接池例程前言最近使用redigo的时候遇到了并发问题,于是想起了redigo并发是否存在安全性的问题,查了下源码,发现可以用连接池解决,简单介绍一下。connredigo实现了不止一种的Conn对象,一般初次使用,会用redis.Dial()获取一条连接对象。它是在conn.go中定义的对象。// conn is...原创 2019-07-16 20:20:27 · 3094 阅读 · 0 评论 -
go笔记--容器heap包简单使用
golang 容器heap接口type Interfacetype Interface interface { sort.Interface Push(x interface{}) // 向末尾添加元素 Pop() interface{} // 从末尾删除元素}任何实现了该接口的类型都可以用于构建最小堆。最小堆可以通过heap.Init建立,数据是递增顺序或者...原创 2019-07-07 16:54:50 · 1812 阅读 · 0 评论 -
go笔记--切片排序sort包的使用
golang切片排序sort包的使用golang的sort包提供了部分切片排序的函数和用户自定义数据集的函数。排序切片func Example1() { arry := []int{5,8,3,1,4,2,7,6} fmt.Println(arry) sort.Ints(arry) fmt.Println(arry) // Output: // [5 8 3 1 4 2 7 6...原创 2019-07-07 15:58:50 · 4400 阅读 · 0 评论 -
gin框架源码学习笔记(二)中间件
gin框架源码学习笔记(二)中间件gin 默认时使用了logger和recovery两个中间件。// Default returns an Engine instance with the Logger and Recovery middleware already attached.func Default() *Engine { debugPrintWARNINGDefault() ...原创 2019-07-06 22:02:02 · 1125 阅读 · 0 评论 -
rtp协议打包拆包h264数据
rtp协议打包拆包h264数据文章目录rtp协议打包拆包h264数据nalu头rtp包头rtp打拆包h264打包拆包最近也在玩直播了,会写一点流媒体和ffmpeg滤波器和编解码器API方面的文章,本文简述一下rtp打包h264和拆包h264数据的方法。nalu头H264在网络上传输的是NALU,NALU的结构是:NAL头+RBSPNAL头只有一个字节:±--------------...原创 2019-07-06 16:05:15 · 1497 阅读 · 0 评论 -
go笔记--缓冲channel简单使用
golang的缓冲channel简单使用文章目录golang的缓冲channel简单使用阻塞型非阻塞我们常用的是无缓冲channel :make(chan type)其实make() 创建chan的第二个参数可设置缓冲channel的大小。上述语句等价于 make(chan type, 1) 即创建了一个缓冲区大小为1channel下面看有缓冲channel的两个例子.阻塞型d...原创 2019-06-29 22:42:58 · 599 阅读 · 0 评论 -
golang协程同步的几种方法
golang协程同步的几种方法本文简要介绍下go中协程的几种同步方法。协程概念简要理解协程类似线程,是一种更为轻量级的调度单位,但协程还是不同于线程的,线程是系统级实现的,常见的调度方法是时间片轮转法,如每隔10ms切换一个线程执行。协程则是应用软件级实现,它和线程的原理差不多,当一个协程调度到另一个协程时,将上一个协程的上下文信息压入堆栈,来回切换。一个线程可以跑很多个协程,由这个线程来...原创 2019-06-29 16:39:57 · 1259 阅读 · 0 评论 -
红黑树原理详解及golang实现
红黑树原理详解及golang实现文章目录红黑树原理详解及golang实现二叉查找树性质红黑树性质operation红黑树的插入`情形1`:空树`情形2`:插入节点父节为黑色,`情形3` 插入节点的父节点为红色,父节点为父父节点的左孩子,父父节点的右孩子为黑色,插入节点为左孩子(或者父节点为父父节点的右孩子,父父节点的左孩子为黑色,插入节点为右孩子)。`情形4` 插入节点父节点为红色,父父节点的...原创 2019-06-02 17:49:41 · 957 阅读 · 0 评论 -
gin框架源码学习笔记(一)简单解读一个hello程序
gin框架源码学习笔记(一)简单解读一个hello程序文章目录gin框架源码学习笔记(一)简单解读一个hello程序hello程序Default()EngineGET()run()小结先把源码拉下来,go get github.com/gin-gonic/gin之后本章简单解读一个hello程序.hello程序package main import ( "github.co...原创 2019-05-25 23:27:27 · 720 阅读 · 0 评论 -
golang编译源代码和交叉编译方法
文章目录@[toc]golang编译源代码和交叉编译方法编译源代码编译go1.4编译go1.12交叉编译golang编译源代码和交叉编译方法编译源代码golang编译其实很简单,下载一份最新的源代码后,进入src目录运行all.bash即可,但是你可能会遇到下面问题,这是因为现在golang都是用go语言编译的了,所以你的系统必须先安装好 >= go1.4 的版本../all.ba...原创 2019-04-19 12:35:27 · 3889 阅读 · 0 评论 -
golang 开源项目
src :https://www.open-open.com/lib/view/open1396063913278.html#Networking内容目录Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑器 Enc...转载 2019-04-16 12:48:48 · 3012 阅读 · 0 评论 -
golang实现分布式缓存笔记(一)基于http的缓存服务
文章目录golang http包简要使用介绍hello.goRedirect.gohttp-cache-server 实现cacheHandler程序测试golang http包简要使用介绍Golang自带的http包已经实现了,htpp客户端和服务端,我们可以利用它更为快速的开发http服务。本章仅介绍一下http包服务端的使用。Golang中处理 HTTP 请求主要跟两个东西相关:Ser...原创 2019-02-15 09:30:58 · 2094 阅读 · 0 评论 -
Go语言安装
Go语言安装使用教程文章目录Go语言安装使用教程Go语言简介Go语言安装HelloWolrdGo语言简介Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。Go 亦称为 Golang(译注:按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站...原创 2018-12-08 17:37:31 · 599 阅读 · 0 评论 -
go微服务框架kratos学习笔记一(kratos demo)
文章目录kratos微服务框架学习笔记一(kratos-demo)kratos本体demokratos微服务框架学习笔记一(kratos-demo)今年大部分时间飘过去了,没怎么更博和github,现在开发任务也差不多完成了,会比较轻松,考虑到今后发展,打算看看微服务框架。常见微服务框架主要有这么几个gizmo, a microservice toolkit from The Ne...原创 2019-12-18 19:08:52 · 7353 阅读 · 0 评论