
Golang
文章平均质量分 91
此人未设置昵称
这个作者很懒,什么都没留下…
展开
-
golang硬核技术(二)go程序从启动到运行到底经历了啥
go相对其他语言,对并发的支持更友好。这使得他的设计和其他程序迥然不同。让我们来看看它都是如何初始化程序的,从程序加载到运行到底经历的什么。我们继续之前的版本1.18.4。原创 2023-07-01 18:33:36 · 707 阅读 · 0 评论 -
Golang+MongoDB 从基础到放弃 进阶(二)
这里写目录标题前言索引explain副本集 Replica Sets概念两种类型三种角色选举前言阅读本文需要查看前文索引explainmongodb中的分析只需要执行语句的后面添加.explain()db.meituan.find({node_id:"2"}).explain()返回的内容(json)并不适于查看,可以借助compass工具,可视化效果更佳如下图Documents Examined 查询到的文档个数 后面会提示索引使用情况COLLSCAN 表示未命中索引,进行了全表原创 2021-08-08 17:38:35 · 1539 阅读 · 0 评论 -
elasticsearch入门——golang
目录常用命令和操作golang操作连接es插入数据常用命令和操作查看es节点信息curl -s -XGET 'http://localhost:9200/_nodes/http?pretty=true’设置索引的副本数PUT /ticket/_settings { "number_of_replicas": 0}进行段合并POST /cs_indexs/_forcemerge?max_num_segments=1不再扩展集群 并修改后续的索引默认副本数PUT原创 2021-07-11 21:40:14 · 995 阅读 · 1 评论 -
系统协调 zookeeper+golang入门
官网:https://zookeeper.apache.org/godoc文档:https://godoc.org/github.com/samuel/go-zookeeper/zk#Conn.GetW参考文章:https://www.cnblogs.com/zhichaoma/p/12640064.html目录简介安装简单栗子下载工具包封装操作方法测试观察者机制部分监听全局监听在上篇博文中说了kafka,它依赖于zookeeper,尽管在最新版中,kafka尽量在弱化zookeeper,但还是无法原创 2020-07-20 13:34:06 · 767 阅读 · 0 评论 -
消息队列,kafka+golang,基础
目录前言安装安装zookeeper安装docker验证go简单栗子下载包前言安装这里使用docker安装,首先安装zookeeper安装zookeeperdocker run -itd --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime zookeeper:3.6指定端口 2181/etc/localtime:同步本地时间和容器时间这里指定版本3.6,也可以不指定安装dockerdocker run -itd原创 2020-07-14 09:42:17 · 941 阅读 · 0 评论 -
微服务,系统监控和仪表盘,prometheus+grafana(七)
目录前言prometheusgrafana简单栗子go程序安装prometheus安装grafanadiy一个仪表go服务设置制作仪表前言在微服务中,系统监控和仪表盘的重要性就不bb了。prometheus详细信息参考官网:https://prometheus.io/Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何原创 2020-07-13 11:00:48 · 823 阅读 · 0 评论 -
微服务,链路追踪,opentracing+jaeger(六)
参考文档opentracing详解:https://pjw.io/articles/2018/05/08/opentracing-explanations/opentracing中文文档:https://wu-sheng.gitbooks.io/opentracing-io/content/jaeger教程:https://pjw.io/articles/2018/05/18/jaeger-tutorial/jaeger go语言文档:https://godoc.org/github.com/ube原创 2020-07-06 13:05:31 · 1434 阅读 · 0 评论 -
微服务,gRPC 一文全解(五)
目录前言RPCRPC优点:gRPC:ProtoBufgRPC+gokit简单栗子服务端客户端测试前言RPC是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。微服务常用更高效的rpc(远程过程调用协议)通信。RPC优点:提高开发效率,开发人员可以把更多精力放在具体的接口实现,而不必考虑数据的底层传输问题。大多数rpc框架都是很多优秀开发人员的智慧结晶,它们的功能实现和执行效率都很优秀。client端和server端必须遵循统原创 2020-07-01 17:02:07 · 1551 阅读 · 0 评论 -
微服务,API限流(三)
目录简介漏桶算法令牌桶算法go自带令牌桶rate创建实例使用方法实战使用简介常用的限流算法有两种:漏桶算法和令牌桶算法。漏桶算法漏桶算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出,可以看出漏桶算法能强行限制数据的传输速率。令牌桶算法对于很多应用场景来说,除了要求能够限制数据的平均传输速率外,还要求允许某种程度的突发传输。这时候漏桶算法可能就不合适了,令牌桶算法更为适合。如下图所示,令牌桶算法的原理是系统会以一个恒定的速度往桶里放入令牌,而如果请求需要原创 2020-06-19 10:31:03 · 510 阅读 · 0 评论 -
go-kit微服务框架,熔断器(四)
目录简介熔断器hystrix-go简介一般在微服架构中,有一个组件角色叫熔断器。顾名思义,熔断器起的作用就是在特定的场景下关掉当前的通路,从而起到保护整个系统的效果。在微服务架构中,一般我们的独立服务是比较多的,每个独立服务之间划分责任边界,并通过约定协议接口来进行通信。当我们的调用链路复杂依赖多时,很可能会发生雪崩效应。假设有这么一个场景,有A, B, C, D四个独立服务,A会依赖B,C,D;当D发生负载过高或网络异常等导致响应过慢或超时时,很可能A会因此堆积过多的等待链接,从而导致A的状态也转原创 2020-06-19 10:30:02 · 755 阅读 · 1 评论 -
go-kit微服务,服务注册与发现,负载均衡(二)
目录consul简介consul安装手动操作代码操作服务注册服务反注册拉取服务list服务发现测试代码consul简介consul安装这里使用consul,当然用etcd等也ok详细内容参见官网文档:https://www.consul.io/api-docs/agent/service首先搭建一个注册中心,可以直接docker起,这里部署一个单节点sudo docker run --name=consul -itd -p 8500:8500 consul agent -server -boot原创 2020-06-18 09:37:55 · 1090 阅读 · 0 评论 -
k8s部署——简单易上手
四组基本概念Pod/Pod控制器pod是k8s能够运行的最小单元(原子单元)一个pod运行多个容器,他们共享UTS+NET+IPC名称空间(sidecar 边车模式)pod控制器是pod启动的一种模板,用来保证在k8s里启动的pod都按照预期运行(副本数,生命周期,健康状态检查)k8s提供了很多的pod控制器,常用的是Deployment DaemonSet 。。。Name/N...原创 2020-04-14 10:20:03 · 907 阅读 · 0 评论 -
fasthttp 高性能第三方http包
简介fasthttp 据说是目前golang性能最好的http库,相对于自带的net/http,性能说是有10倍的提升,具体介绍可以看看官方介绍: valyala/fasthttp正好最近需要用到,但是发现网上的资料也不是很多,特别是关于client模块的就更少了,只有一些翻译成中文的文档,于是乎就把关于client的代码研究了一下,总结了一些比较简单的使用方法,测试对比net/http是有一...原创 2020-01-22 17:33:12 · 2294 阅读 · 0 评论 -
go-kit微服务入门
go-kit连接地址:https://github.com/go-kit/kit简介go-kit本身不是一个框架,而是一套微服务工具集, 它可以用来解决分布式系统开发中的大多数常见问题. 所以你可以专注于你的业务逻辑中利用它提供的api和规范可以开发出健壮的,维护性高德微服务。关注重点Rate Limiter 限流器Trasport 数据传输(序列化和反序列化)Logging 日志...原创 2020-01-16 16:42:29 · 1137 阅读 · 4 评论 -
hugo,静态页面编辑神器,外行人的福音(一文详解)
首语之前做那个程序监控的程序,苦于不会前端,最后只能用模板生套,十分费劲,后来在看开源项目的时候注意到hugo,感觉自己还可以拯救一下。HUGO简介hugo是一个通用网站框架,从技术上来说,Hugo是一个静态站点生成器。也就是说,不像WordPress,Ghost和Drupal之类的系统,会奢侈地为每一次访问都生成一次新页面,在你创造出内容时Hugo就已经把页面建好了。由于站点被访问的次数远...原创 2020-01-04 10:21:15 · 4526 阅读 · 1 评论 -
Go程序性能分析方法(一文全解)
文章目录前言采集方式命令模式调度图监控方式go-torch方法FlameGraph工具wrk压测工具(go-wrk)go-torch使用Metricbeat 监控自定义方法前言golang作为一门高效的语言,性能监控和调试非常重要,如何进行性能监控和分析是优化的关键。Go语言项目中的性能优化主要有以下几个方面:CPU profile:报告程序的 CPU 使用情况,按照一定频率去采集应用程...原创 2019-12-30 11:40:09 · 1911 阅读 · 0 评论 -
关于Golang在vscode编辑器中的语法过于严格而产生的警告问题
vscode编辑golang,对于用惯了vs的人来说,很方便,但是,太过严格的代码规范,实在让人头疼。不写注释,警告命名不是驼峰,警告字母没大写,警告。。。。粘贴下面代码到设置文件中,消除警告设置文件路径左下角齿轮,设置,文本编辑器,文件,设置如下 "go.lintFlags": [ "-min_confidence=.8", "--dis...原创 2019-12-21 13:16:15 · 4066 阅读 · 0 评论 -
Golang+MongoDB 从基础到放弃(一)
环境 Ubuntu16,MongoDB 2.6.10官网:https://www.mongodb.com官网下载地址:https://www.mongodb.com/download-center/community官网安装教程:https://docs.mongodb.com/manual/administration/install-communityMongoDB介绍MongoDB...原创 2019-12-17 13:36:53 · 2413 阅读 · 0 评论 -
Golang+RabbitMQ从浅入到深出
环境:Ubuntu16window下安装请看大佬文章:https://blog.youkuaiyun.com/haeasringnar/article/details/82715823erlang地址:https://www.erlang.org/downloadsrabbitmq地址:https://www.rabbitmq.com/download.html安装erlang因为rabbitmq是...原创 2019-11-30 12:30:59 · 913 阅读 · 0 评论 -
Redis基础+Golang操作
redis下载地址:https://github.com/MicrosoftArchive/redis/releasesgo-redis下载地址:https://github.com/go-redis/redisRedis介绍Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上。除此之外,通过复制、持久化和客户端分片...原创 2019-11-26 17:42:35 · 415 阅读 · 0 评论 -
Golang 实现网络爬虫,简单易懂
爬虫工作流程 1.明确目标,url 2.发送请求获取应答数据 3.保存,过滤,提取有用信息 4.使用分析,得到的数据原创 2019-11-23 19:07:27 · 2358 阅读 · 2 评论 -
Go leaf游戏开源框架,从入门到入土(一)
leaf下载地址:https://github.com/name5566/leafleafserver下载地址:https://codeload.github.com/name5566/leafserver目录说明leaf/chanrpc 提供了一套基于 channel 的 RPC 机制,用于游戏服务器模块间通讯leaf/db 数据库相关,目前支持 MongoDBleaf/g...原创 2019-11-14 22:07:20 · 3269 阅读 · 0 评论