一道比较运算符相关的面试题把我虐的体无完肤

来自公众号:新世界杂货铺杂(货铺)谈今天这篇文章相对来说比较基础,大家花几分钟时间看看,有所收获自然是最好,没有收获也就消磨几分钟时间罢了,你不亏,笔者也不亏~前几期还是有一定难度的HTTP系列文章,今天却是画风突变讲起了基础,这当然是因为基础重要呀。正所谓万丈高楼平地起,我们夯实基础,楼才能建的高,毕竟精美的小矮楼总是很容易被高楼遮挡。嗨,扯远了,总之笔者今天写这篇文章绝对不是下面这个原因:累呀!真的累!工作嘛?当然不是!前几期分析HTTP系列文章确实耗费了太多精力,周末连续熬夜就算是铁打的人...阅读全文

Segmentfault 2020-11-09 13:32:33 新世界杂货铺

微服务 · 如何解决链路追踪问题

### 一、链路追踪 ​ 微服务架构是将单个应用程序被划分成各种小而连接的服务,每一个服务完成一个单一的业务功能,相互之间保持独立和解耦,每个服务都可以独立演进。相对于传统的单体服务,微服务具有隔离性、技术异构性、可扩展性以及简化部署等优点。 ​ 同样的,微服务架构在带来诸多益处的同时,也为系统增加了不少复杂性。它作为一种分布式服务,通常部署于由不同的数据中心、不同的服务器组成的集群上。而且,同一个微服务系统可能是由不同的团队、不同的语言开发而成。通常一个应用由多个微服务组成...阅读全文

Go语言中文网 2020-11-06 17:49:55 wangshizebin

简单设计go-amqp

仓库地址go get -u github.com/lazychanger/go-amqp注意事项rabbitmq将连接与管道分开,即connection与channel。connection是实体连接,而channel是逻辑连接。所以当我们多线程使用时候,应该是单connection+多channelconnection闪断以后,channel也会失效。所以重连以后,还需要重新建立channel所有的推送,消费都是基于channel,所以channel重连以后,还需要重新开启推送、消费在conn...阅读全文

Segmentfault 2020-11-09 11:32:33 inight

Envoy VS Treafik

云原生场景,产生了很多的Edge Router,Load balance,API Gate Way,Proxy等组件。最近研究了一下,分享几个喜欢的项目,它们大致分为两类: Gateway为主:Kong,Krakend Proxy为主:Envoy,Traefik 但两类没有实际功能的边界,Proxy为主,一般要支持在L4,Gateway为主,支持在L7即可。Proxy主要位置是中间,可以做sidecar,Gateway在服务endpoint前面。再比如传统的HAProxy就是Proxy,Ngin...阅读全文

简书 2020-11-06 14:32:44 23donge

Golang Context控制超时使用

Context是一个树,从父节点可以派生出子的Context,父节点取消后,所有相关连的子节点都会取消 ctx中存在一个2秒后的timer,返回一个channel用于计时,计时到点之后,<-ctx.Done() channel返回。 最后执行defer栈中的cancel,取消定时器 代码如下, main.go package main import ( "fmt" "io/ioutil" "net/http" "time" "golang.org/x/net/context" ) type Re...阅读全文

简书 2020-11-06 14:32:44 FredricZhu

只用200行Go代码写一个自己的区块链!

只用200行Go代码写一个自己的区块链! 区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大家都非常想了解这一切是如何工作的。这篇文章就是帮助你使用 Go 语言来实现一个简单的区块链,用不到 200 行代码来揭示区块链的原理!高可用架构也会持续推出更多区块链方面文章,欢迎点击上方蓝色『高可用架构』关注。 “用不到200行 Go 代码就能实现一个自己的区块链!” 听起来有意思吗?有什么能比开发一个自己的区块链更好的学习实践方法呢?那我们就一起来实践下! 因为我们是一家从事医...阅读全文

51CTO博客 2020-11-05 10:23:33 高可用架构

200行Go代码实现自己的区块链——区块生成与网络通信

200行Go代码实现自己的区块链——区块生成与网络通信 在第一篇文章[1]中,我们向大家展示了如何通过精炼的Go代码实现一个简单的区块链。如何计算每个块的 Hash 值,如何验证块数据,如何让块链接起来等等,但是所有这些都是跑在一个节点上的。文章发布后,读者反响热烈,纷纷留言让我快点填坑(网络部分),于是就诞生了这第二篇文章。 这篇文章在之前的基础上,解决多个节点网络内,如何生成块、如何通信、如何广播消息等。 流程 第一个节点创建“创始区块”,同时启动 TCP server并监听一个端口,等待其...阅读全文

51CTO博客 2020-11-05 10:19:17 高可用架构

200行Go代码实现区块链 —— 挖矿算法

200行Go代码实现区块链 —— 挖矿算法 在本系列前两篇文章中[1][2],我们向大家展示了如何通过精炼的Go代码实现一个简单的区块链。包括生成块,验证块数据,广播通信等等,这一篇让我们聚焦在如何实现 PoW算法。 大家都无不惊呼比特币、以太坊及其他加密电子货币的持续狂热,特别是对于刚接触这个领域的新手,不断得听到张三李四通过 GPU “挖矿”而聚集价值数万乃至数百万加密电子货币。那么“挖矿”到底是什么? 它是如何工作的? 相信对于程序员来说,没有什么比自己动手实践一遍“挖矿”算法更好的学习办...阅读全文

51CTO博客 2020-11-05 10:04:23 高可用架构

golang 策略模式之排序算法策略

起源最近在学设计模式,这个东西学起来,总是模模糊糊,看起来懂,又不知该应用到何处,咬着牙学完了之后,准备学习算法,写了两个简单的排序算法,突然灵光一闪,如果我想用不用的算法去排序的时候,完全可以用策略模式,正好学以致用示例我先设计了一个排序接口type sortAlgo interface { sort([]int) }然后,我写了两个算法,一个是冒泡排序,一个是简单选择排序,都实现了这个接口type bubbleSort struct { } func (b *bubbleSort) sort...阅读全文

Segmentfault 2020-11-09 10:32:34 木申

Go+Python双语言混合开发-第1章 【阶段一:Go语言基础】

1-1 Go+Python双语言混合开发-课程导学 (11:35)1-2 课程资源获取方式 - 非常重要!!! (06:07)1-3 课程中需要用到的开发环境介绍 (03:47)1-4 windows中安装centos7虚拟机 (19:16)1-5 xshell的安装和使用 (04:14)1-6 git的安装和配置 (06:22)1-7 docker和docker-compose的安装 (10:31)1-8 mysql和navicat的安装和配置 (10:09)1-9 python的安装和配置 ...阅读全文

Segmentfault 2020-11-09 10:32:34 浅川好孩子

【GO快速入门】使用govendor管理go包

一、安装govendor 1、下载并编译 go get -u -x -v github.com/kardianos/govendor 2、验证一下是否能用: govendor --version //v1.0.9 如果命令找不到,先确认一下$GOPATH/bin目录是否有govendor这个文件,然后再看看$GOPATH/bin有没有加入到PATH全局变量中。 二、克隆项目 1、本文以Data-register项目为例。 git clone git@git.ju3ban.net:artarva/...阅读全文

简书 2020-11-05 15:32:41 海阳之新