Go 编写定时器和定时任务

Go 编写定时器和定时任务 在 项目开发当中,可能会遇到这样的场景: 1 A任务需要在多久之后执行一次(定时器) 2.B任务需要每隔多长时间执行一次 (定时任务) 谈到定时任务,离不开linux的crontab. 先简单了解下crontab // 每隔1秒执行一次 */1 * * * * ? // 每隔1...

Go 微服务十五 生成雪花ID

自己写了一个生成雪花ID的包,放到了github上。地址: jsnowflake 。如果喜欢,还望点个star 谢谢🙏 如有问题,欢迎指出~ 此文章基于自己的包实现 安装 go get github.com/jeffcail/jsnowflake 使用 Demo package main import ( "fmt" "gith...

Go 使用IP纯真库获取IP对应的国家、省、市

使用纯真IP库 qqwry.dat,高性能,线程安全,并对国内数据格式化到省、市、县 使用大佬写的一个包iploc包 安装 go get -u github.com/kayon/iploc/... 获取query.dat 命令会下载qqwry.gbk.dat 文件到当前目录 iploc-fetch qqwry.gbk.dat 转换为 UTF-8 使用命令行工具...

Go 协程权限调度包runtime

runtime里的三个函数Gosched、Goexit、GOMAXPROCS Gosched:让出cpu时间切片。用于让出当前grouting的执行权限,调度器安排其他等待的goroutine执行任务,并在某个位置恢复执行 Goexit:终止当前的goroutine执行,并不会影响其他的goroutine执行。并在终止当前的goro...

Go 微服务十四 Go 使用leveldb

微服务十四 Go 使用leveldb 简介 LevelDB是一个由Google公司所研发的键-值存储嵌入式数据库管理系统编程库 leveldb是一个写性能十分优秀的存储引擎,是典型的LSM树(Log Structured-Merge Tree)实现。LSM树的核心思想就是放弃部分读的性能,换取最大的写入能力 比较使...

Go 微服务十三 日志收集项目结构设计及Kafka介绍

日志收集项目结构设计及Kafka介绍 项目背景 每个业务系统都有日志,当系统出现问题时,需要通过日志信息来定位和解决问题。当系统机器比较少时,登录到服务器上查看即可满足,当系统机器规模巨大,登录到机器上查看几乎不现实(分布式的系统,一个系统部署在多台机器...

Go微服务十二 Go使用nacos 注册服务,服务发现

Go使用阿里nacos管理服务注册和发现,思路Demo 连接nacos func InitNacos() *nacosRF { //return &nacosRF{} d := &nacosRF{} clientConfig := constant.ClientConfig{ TimeoutMs: 5000, NotLoadCacheAtStart: true, ...

Go微服务十一 Dockerfile ENTRYPOINT的使用 – 接受参数 读取nacos对应的配置文件

在[微服务二]这篇文章中,简单谈了从nacos读取服务配置文件。在[微服务七]这篇文章中,谈了制作Dockerfile,通过docker将Go项目部署并运行在服务器上。在[微服务八]谈了使用shell脚本一键重新构建基于Docker的Go项目。 这篇文章中,实现动态获取nacos对应的配置文件...

Go微服务十 编写shell脚本启动docker部署的go项目

上一篇,通过编写Dockerfile部署go项目。存在一个不方便的地方。每次将新的打包好的go项目传到服务上之后都需要先停止docker,删除docker 容器 , 删除docker 镜像,再执行dokcer build 和docker run 步骤台繁琐. 这一篇通过编写shell脚本一键执行命令完成上述所有步骤...