golang
文章平均质量分 61
日落班
后台开发,主要从事golang相关工作,对编程非常喜爱
展开
-
Golang实现php的str_replace方法
package mainimport ( "fmt" "strings")func Replace(a1, a2 []string) []string { r := make([]string, 2*len(a1)) for i, e := range a1 { r[i*2] = e r[i*2+1] = a2[i] } return r}func main() { str := "hello%world" array1 := []string{"\\", "%",.原创 2022-02-22 11:08:27 · 621 阅读 · 0 评论 -
Golang 中ip与int互相转换
package mainimport ( "bytes" "fmt" "strconv" "strings")func main() { fmt.Println(StringIpToInt("172.16.1.1")) fmt.Println(StringIpToInt("172.16.2.9")) fmt.Println(IpIntToString(2886729986))}func StringIpToInt(ipstring string) int { ipSegs .原创 2022-02-09 09:23:09 · 3018 阅读 · 1 评论 -
webrtc-centos下安装turn服务
一、背景最近在学习webrtc的p2p一对一视频对话功能,在该功能中需要使用中继服务将两个用户端的IceCandidate 数据进行交换,需要使用在公网STUN/TURN 服务。当然有免费的可以使用,国内免费turn服务地址但是很多连接时间久远已经不支持该服务,因此需要我们进行自己搭建一台服务。本次使用coturn这个软件实现TURN/STUN/ICE协议,并且支持P2P穿透防火墙。收集NAT背后的peer端(路由器或交换机后的电脑)对外暴露的ip和端口,找到一条可穿透的链路,俗称打洞。二、安装原创 2022-01-19 00:07:03 · 1104 阅读 · 0 评论 -
go-micro3.0教程(3)-web+gin实现api服务
前言上一章节中介绍了micro3.0 生成了user和order服务,在order服务中实现了订单查询方法,并在user服务中实现了注册和登录方法,并且在user服务中实现了查询订单详情的方法。 另外解决了多个服务在部署多台服务器调用遇到的问题。 本次将使用micro-web结合gin实现一个查询订单详情的api 的服务 go.micro.api.web 准备工作 etcd3.0 ip(49.232.162.254) 虚拟机 (192.16.24.145)...原创 2021-11-24 11:05:31 · 1592 阅读 · 1 评论 -
go-micro3.0教程(2)-服务创建及调用
前言上一章节中介绍了micro3.0 在linux上环境的搭建,这届主要讲服务创建和调用过程以及遇到的问题,准备工作 etcd3.0 ip(49.232.162.254) 虚拟机 (192.16.24.145) 运行order 服务 虚拟机(192.16.24.49) 运行 user服务 宿主机(192.16.24.12) 运行order服务 MySQL (49.232.162.25) 存放订单表新建服务本次user服务里为注册 和登录服务......原创 2021-11-10 18:28:44 · 1488 阅读 · 2 评论 -
golang导入私有仓库
一、背景在日常开发中经常需要导入自己私有库的包文件,但是使用 GOPROXY=https://goproxy.cn,direct以后 默认下载包会从代理路径进行下载。私有仓库例如e.coding.net 不是httpswww.test:6000 不是 80端口173.9.78.90 直接ip这类的符合规范的宝路径可能会下载不出来那么要怎么处...原创 2021-10-13 00:09:54 · 2274 阅读 · 0 评论 -
centos 安装etcd
1、# 1.下载wget https://github.com/etcd-io/etcd/releases/download/v3.4.6/etcd-v3.4.6-linux-amd64.tar.gz# 2.解压tar -zxf etcd-v3.4.6-linux-amd64.tar.gz# 3.移动到bin目录mv etcd-v3.4.6-linux-amd64 /usr/local/etcd# 4.开启端口 2379 -需要外部访问的话可以firewall-cmd --zon原创 2021-09-22 17:33:39 · 876 阅读 · 0 评论 -
go-micro3.0教程(1)-Linux 下搭建环境
前言Go Micro是一个插件化的基础框架,基于此可以构建微服务,Micro的设计哲学是可插拔的插件化架构 在架构之外,它默认实现了consul作为服务发现(2019年源码修改了默认使用mdns),通过http进行通信,通过protobuf和json进行编解码安装 本次采用micro3.0 +golang 1.14.1+protoc 3.7.1的配置 首先安装microgo get github.com/micro/micro/v3安装完后 按如下如图就可以执行成功,成功后需要..原创 2021-08-20 23:47:07 · 1222 阅读 · 0 评论 -
常用入门算法
一、冒泡排序:每次比较相邻两个数大小,然后交换, 一轮结束后,又从头开始 进行下一轮 (一共要 数组长度-1 轮 且每轮交换次数减少 并确定一个数子)func arrSort(arr [6]int) { for i := 0; i < len(arr); i++ { for j := 0; j < len(arr)-i-1; j++ { if arr[j] > arr[j+1] { arr[j+1], arr[j] = ar原创 2020-11-27 18:36:46 · 687 阅读 · 0 评论 -
centos 下使用jenkins部署go项目
一、jenkins 安装Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle等插件。使用起来也比较方便。在安装时需要安装java环境。yum install javawget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.r原创 2020-10-15 20:34:06 · 665 阅读 · 0 评论 -
golang中 []interface{}转[]uint64解决办法
一、问题在处理消息接收的时候,前段会传一个json,字段类型不定,其中一个里面userId字段是数组,所以后端在 map[string]interface{} 再解析后类型为[]interface{} 想直接转[]uint64 结果报错原创 2020-09-13 00:29:52 · 4991 阅读 · 0 评论 -
golang使用elasticsearch
本次主要采用单利模式生成elasticsearch 服务,然后服务自带put和delete方法。调用的时候需要先调用 NewElasticServer 方法生成该服务。后续再根据需要调用服务的方法。。package elasticimport ( "context" "ginweb/config" "ginweb/runtime" "github.com/olivere/elastic" "log" "os" "strconv" "sync")var host = config原创 2020-09-08 22:44:31 · 981 阅读 · 0 评论 -
golang使用grpc
介绍rpc是一种远程调用协议,在微服务框架中经常使用。其内部也是走的tcp协议,在数据传输过程中也根据数据序列化的不同分化不同数据传输的api比如jsonrpc,grpc。grpc是使用protocol buffers作为接口定义语言(IDL)和底层数据交换的格式。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证。另外,通过protobuf可以将数据序列化为二进制编码,这会大幅减少需要传输的数据量,从而大幅提高性能protoc用protoc原创 2020-08-22 23:45:57 · 1498 阅读 · 0 评论 -
golang-使用nsq消息队列
一、介绍NSQ是一个基于Go语言的分布式实时消息平台, 它具有分布式、去中心化的拓扑结构,支持无限水平扩展。无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。另外,NSQ非常容易配置和部署, 且支持众多的消息协议。支持多种客户端,协议简单,但是nsq是无序的,就是消息的接受不一定根据发送的顺序,如果对顺序有要求的建议不要使用官网地址二、安装本次我是采用docker-compose安装的具体编排nsq.yml文件如下:version: '3' services: n原创 2020-08-10 23:51:22 · 1163 阅读 · 0 评论