来吧诡异的time.Now 之活捉站长

//省略N多代码 func main(){ fmt.Println(time.Now()) fmt.Println(time.Now().Format("20060102")) fmt.Println(time.Now().Format("20060101")) } //来吧consolse起来看看 ​哎呦,这明显不对,我们正确的时间应该是09-10 ,开始一直以为所谓的格式是随便怎么写原来不是,至于代码的内核背后的原来看看楼下有没有大神给出来解释吧,说不定能活捉站...阅读全文

Go语言中文网 2020-09-10 19:09:48 ccoding

开源项目 : prome-route: 使用反向代理实现prometheus分片

开源项目地址:项目地址: https://github.com/ning1875/prome-routePS: 这是一个仅用时半天就写完的项目架构图prometheus HAprometheus本地tsdb性能出色,但是碍于其没有集群版本导致HA较差实现手段注意这些手段都是要数据的统一存储可以通过remote_write 到一个提供HA的tsdb存储中通过联邦收集到一个prometheus里问题来了,搞不定集中式的tsdb集群,或者集群挂了咋办本项目介绍原理介绍肯定有一组prometheus 服...阅读全文

Segmentfault 2020-09-14 12:32:31 ning1875

验证爬虫代理的有效性

爬虫代理是网络爬虫不可缺少的一部分。当然在使用爬虫代理IP的时候需要了解这个IP是否有效。有效IP直接使用。无效的IP拉入黑名单不使用即可。那如何验证爬虫代理IP是否有效呢,网络上其实有很多种方式:1、浏览器验证以火狐为例:打开火狐浏览器,在浏览器的右上角菜单列表中—选择—常规—网络设置—设置。把爬虫代理IP配置进去,然后填写好用户名和密码即可。代理信息设置完成后访问此http://current.ip.16yun.cn:802返回的就是代理IP的地址2、CURL验证爬虫代理(IP隧道,保持IP...阅读全文

Go语言中文网 2020-09-10 17:28:37 laical

go-carbon 1.1.0版本发布了,增加对gorm的支持

carbon 是一个轻量级、语义化、对IDE友好的日期时间处理库,是PHP Carbon库的Golang实现版本,初衷是为了摆脱Golang反人类的2006-01-02 15:04:05格式化时间设计,支持链式调用和gorm结构体。如果您觉得不错,请给个star吧github:github.com/golang-module/carbongitee:gitee.com/go-package/carbon在gorm中的应用gorm.Open时必须包括parseTime=True参数假设数据表为us...阅读全文

Segmentfault 2020-09-14 10:32:32 够过瘾

多线程 | Rust学习笔记

作者:谢敬伟,江湖人称“刀哥”,20年IT老兵,数据通信网络专家,电信网络架构师,目前任Netwarps开发总监。刀哥在操作系统、网络编程、高并发、高吞吐、高可用性等领域有多年的实践经验,并对网络及编程等方面的新技术有浓厚的兴趣。现代的CPU基本都是多核结构,为了充分利用多核的能力,多线程都是绕不开的话题。无论是同步或是异步编程,与多线程相关的问题一直都是困难并且容易出错的,本质上是因为多线程程序的复杂性,特别是竞争条件的错误,使得错误发生具备一定的随机性,而随着程序的规模越来越大,解决问题的难...阅读全文

Segmentfault 2020-09-14 09:32:33 Netwarps

golang环境准备

安装 下载golang安装包 # windows https://studygolang.com/dl/golang/go1.15.1.windows-amd64.msi # linux https://studygolang.com/dl/golang/go1.15.1.linux-amd64.tar.gz 设置环境变量 echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.profile && source ~/.profile 检测安装结果 go...阅读全文

简书 2020-09-10 13:32:40 信仰草

【golang】pprof内存指标

最近组内一些Go服务碰到内存相关的问题,所以今天抽时间看了下Go pprof内存指标的含义,为后续查问题做准备。 内容主要来自于Go代码中对这些字段的注释,加自己的理解。理解不对的地方欢迎指正。// https://github.com/golang/go/... // 总共从OS申请的字节数 // 是下面各种XxxSys指标的总和。包含运行时的heap、stack和其他内部数据结构的总和。 // 它是虚拟内存空间。不一定全部映射成了物理内存。 Sys // 见`Sys` HeapSys // ...阅读全文

Segmentfault 2020-09-14 09:32:32 去去1002

【golang】channel详解

channel一个类型管道,通过它可以在goroutine之间发送和接收消息。它是Golang在语言层面提供的goroutine间的通信方式。众所周知,Go依赖于称为CSP(Communicating Sequential Processes)的并发模型,通过Channel实现这种同步模式。Go并发的核心哲学是不要通过共享内存进行通信; 相反,通过沟通分享记忆。下面以简单的示例来演示Go如何通过channel来实现通信。package main import ( "fmt" "time" ) f...阅读全文

Segmentfault 2020-09-13 17:32:33 去去1002

SpringCloud+Vertx+Disruptor 金融业撮合交易系统实战

下载地址:百度网盘第1章 初识证券交易系统本章主要介绍为何要带大家从零开始开发一套高可用的撮合交易实战课程,之后会聊聊这个行业的参与者们,介绍金融行业的系统有哪些部分组成,它们的架构是什么样子的。希望大家都能通过这门课程,学有所成,学有所归。1-1 课前必读(不看会错过一个亿)1-2 课程介绍及学习指导试看1-3 证券金融行业试看1-4 行业系统全景图1-5 深入了解接入层-中台服务-交易系统-11-6 深入了解接入层-中台服务-交易系统-2第2章 Vue委托终端开发准备本章将带大家对委托终端的...阅读全文

Go语言中文网 2020-09-10 11:20:41 haochen1

goland的float64四舍五入

找了很多关于go的四舍五入文章,发现没有这种类似的包,只能自己写一个了,也是看到别人的取巧方案,在这个基础上扩展的: ```go //四舍五入 func Round(x float64,digit int) (number float64,err error){ baseDigit := 10 if digit < 0 { return x,errors.New("错误的精度,不能小于0") }else{ baseDigit = pow(baseDigit,di...阅读全文

Go语言中文网 2020-09-10 10:17:05 penging

2020-09-09:裸写算法:两个线程轮流打印数字1-100。

福哥答案2020-09-09: 方法1:用一个通道,两个go程的代码不一样。 方法2:用两个通道,两个go程的代码完全一样。可以扩展成N个go程轮流打印。 代码用golang编写,代码如下: package test38_alternateprint import ( "fmt" "testing" "time" ) var POOL = 10 //go test -v -test.run TestAlternatePrint func TestAlternatePrint(t *testing...阅读全文

简书 2020-09-10 00:32:41 福大大架构师每日一题

golang 单引号双引号的区别

Go语言的字符串是一个用UTF-8编码的变宽字符序列,它的每一个字符都用一个或多个字节表示 。 单引号 不能用来表示字符串 双引号 可解析的字符串字面量 (支持转义,但不能用来引用多行); 反引号 原生的字符串字面量 ,支持多行,不支持转义, 多用于书写多行消息、HTML以及正则表达式。 func main() { a := " " fmt.Println(a) } 输出 func main() { a := ' ' fmt.Println(a) } 输出 32阅读全文

简书 2020-09-10 00:32:41 仁安天下

SAPI php-fpm FastCGI原理介绍

简介 SAPI (Server Application Programimg Interface,服务端应用编程接口) 是 PHP 框架的接口层,它是进入 PHP 内部的入口。其中包含了常见的 cli SAPI 和 fpm SAPI。 应用在终端上的 SAPI 就叫作 CLI SAPI,应用在 Web 服务器中的就叫作 CGI SAPI php7源码架构 PHP 并没有像 Golang 那样实现 HTTP 网络库,而是实现 了 FastCGI协议。 PHP 定义好输入/输出规范,依据此规范与 P...阅读全文

简书 2020-09-10 00:32:41 淡淡de盐

golang常用的包----写日志 log包

golang提供了一个简单的日志输出包log,常用用法,已经基本满足日常的日志输出需求 1、日志级别有3个,info,fatal,panic 2、 日志文件的输出 import ( "log" "os" ) func main() { logFile,err:=os.Create("./log.log") defer logFile.Close() if err !=nil{ log.Fatalln("create file log.log failed") } logger:=log.New(...阅读全文

简书 2020-09-09 21:32:40 运维之美Bially

go语言中控制并发数量的方法

因为go语言层面支持并发,所以面试中经常会问到并发的问题,比如说控制go并发数量的方式有哪些?下面是我个人整理的两个例子: func waitGroup() { count := 10 wg := sync.WaitGroup{} for i := 0; i < count; i++ { wg.Add(1) go func(j int) { fmt.Print(j) wg.Done() // 也可使用 wg.Add(-1) }(i) } wg.Wait() } 上面主要用到的是go中sync包下...阅读全文

简书 2020-09-09 18:32:37 MO_ON_e503

Golang模仿try&catch

package main import ( "fmt" ) type tryFunc func() type catchFunc func(interface{}) // 建立一個模仿 try&catch 的函式供稍後使用 func Try(try tryFunc, catch catchFunc) { // 這不會馬上被執行,但當 panic 被執行就會結束程式,結束程式就必定會呼叫 defer defer func() { // 透過 recover 來從 panic 狀態中恢復,並呼叫捕捉...阅读全文

简书 2020-09-09 17:41:24 池边树下

Go开篇

Go语言的学习完全是为了学分布式存储。 学分布式存储的原因是因为公司云改,组里开始大刀阔斧的自研分布式存储,而我除了ceph什么都不知道。于是花了几周的时间去看论文,看别人自研的分布式存储是怎么做的。从经典的GFS,过时一点的TFS,规模比较大的Azure,Amazon EBS,OceanBase,到令人叹为观止的Pangu2.0(时延500微秒,百万iops),且不说里面涉及到的新硬件,新概念,RDMA,SPDK,DPDK,我连最最基础的分布式软件的原理都一知半解,深感焦虑。上来就看别人软件架...阅读全文

简书 2020-09-09 17:41:23 running_sheep

震惊,阿里P8都在用的深入浅出kubernetes(K8S)指南,竟然泄露了?

作为一个典型的分布式项目,Kubernetes 的部署一直以来都是挡在初学者前面的一只“拦路虎”。尤其是在 Kubernetes 项目发布初期,它的部署完全要依靠一堆由社区维护的脚本。 其实,Kubernetes 作为一个 Golang 项目,已经免去了很多类似于 Python 项目要安装语言级别依赖的麻烦。但是,除了将各个组件编译成二进制文件外,用户还要负责为这些二进制文件编写对应的配置文件、配置自启动脚本,以及为 kube-apiserver 配置授权文件等等诸多运维工作。 这几年,在跟朋友...阅读全文

简书 2020-09-09 17:38:35 程序员黑哥