自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 go-micro中使用consul

上节我们在启动go-micro服务时,可以看到使用的服务注册是mdns。这节来了解下如何使用consul。默认的服务发现是在同一台机器上,在生产环境下,服务与服务发现部署到同一机器,这不是个很好的实践。所以把consul机器独立出来就很有必要。下面以Go Micro框架文章中的服务为例,编写一个go-micro服务。服务端microserver_consul.go文件package main...

2019-04-30 15:26:25 10474 4

原创 Consul的使用

上一节是有关consul的安装,这节主要看Consul的使用。必须运行代理,代理可以在服务器或客户端模式下运行。每个数据中心必须至少有一台服务器,但建议使用3或5台服务器。由于在故障情况下数据丢失是不可避免的,因此非常不鼓励进行单个服务器部署。所有其他代理都以客户端模式运行,客户端是一个非常轻量级的进程。它注册服务,运行状态检查,并将查询转发给服务器。代理必须在作为集群一部分的每个节点上运行。...

2019-04-30 09:57:08 1002

原创 Go Micro框架

Go Micro是一个微服务开发框架。Go Micro提供了分布式系统开发的核心要求,包括RPC和事件驱动的通信。特点自动服务注册与名称解析:服务发现是微服务开发中的核心,用于解析服务名与地址。consul是Go Micro默认的服务发现注册中心。发现系统可插拔,其他插件像etcd,kubernetes,zookeeper。负载均衡:在服务发现之上构建了负载均衡机制。使用随机处理过的哈希负...

2019-04-29 15:42:45 1883

原创 Go静态代码检查工具GolangCI-Lint

GolangCI-Lint是一个lint聚合器,它的速度很快,平均速度是gometalinter的5倍。它易于集成和使用,具有良好的输出并且具有最小数量的误报。而且它还支持go modules。最重要的是免费开源。下面公司或者产品都使用了golangci-lint,例如:Google、Facebook、Red Hat OpenShift、Yahoo、IBM、Xiaomi、Samsung、Ard...

2019-04-28 18:00:50 51052 5

原创 gRPC使用简介

概览gRPC是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。在gRPC里,客户端应用程序可以像调用本地对象一样直接调用另一台不同机器上,服务端应用的方法,使得你能够更容易的创建分布式应用和服务。与许多RPC系统类似,gRPC也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包括参数和返回类型)。在服务端实现这个接口,并运行一个gRPC服务器来处理客户端调用。先决条件...

2019-04-26 10:56:48 776

原创 执行go run出现.\main.go:6:10: undefined: Test

复现问题首先来看问题是怎么出现的。在gotest目录下,有testundefined.go和main.go文件。其中main.go文件引用了testundefined.go中的结构体Test。编写没有语法错误,但是在运行go run命令时,却报错:# command-line-arguments.\main.go:6:10: undefined: Testtestundefined.go...

2019-04-23 19:31:04 11533

原创 Protocol Buffer在Go中的使用简介

为什么使用protocol buffers下面的例子使用比较简单的“地址登记”应用,可以从文件中读取用户的联系信息。每个用户在地址簿中有名字、ID和邮件地址以及联系电话。如何序列化以及检索这样的结构化数据,有几种方法可以解决这种问题:使用gobs序列化Go数据结构。在Go特定环境下,这是一个好的解决方案。但是如果你需要与其他平台编写的应用共享数据,它将无法正常工作。你可以发明一种特殊的方...

2019-04-23 18:45:35 2522

原创 Protocol Buffers

介绍Protocol Buffers简称Protobuf,是Google公司开发一种跨语言和平台的序列化数据结构的方式。与XML和JSON格式相比,protobuf更小、更快和更便捷。你可以定义数据的结构化结构,然后使用各种语言的源代码轻松的将结构化数据写入和读取。Protocol Buffers目前支持生成Java,python,obective-c和C++的代码,新的proto3版本支持Da...

2019-04-22 18:53:05 741

原创 Consul的安装

首先去Download Consul下载你需要的安装包,下载完成后解压就行。假设你解压后consul.exe文件的位置为:D:\consul\consul.exe,你直接点击这个可执行文件是不行的,会出现闪退的情况。你需要做的就是设置环境变量,将D:\consul添加到path系统变量中。在命令行输入consul version,如果出现版本信息,则安装成功。例如:C:\Users\de...

2019-04-19 10:18:57 2498 1

原创 golang官方rpc包的使用

RPC(Remote Rrocedure Call,远程过程调用)是一个计算机通信协议。RPC协议假定某些传输协议的存在,如TCP和UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC采用C/S模式,请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠...

2019-04-18 17:42:46 2266

原创 golang读取EXIF orientation标记

在图片自适应旋转显示一文中,了解到相机拍摄的图片可能在显示的时候出现旋转问题,并且文中讲解了一个图片属性orientation。它用来标记摄像机相对于捕获场景的方向,一些图片显示设备就是依赖它进行旋转控制。因此对于软件来说,要想实现图片的旋转,首先需要获取这一标记值。下面是利用exif包进行的orientation标记读取:package mainimport ( "fmt" "git...

2019-04-16 13:19:46 3043

原创 图片自适应旋转显示

问题描述iOS手机在竖着拍摄图片后,在手机上看到的图片是正的(相对于观察者),而在某些应用里打开却成了旋转90度的图片。相机拍摄也会存在这个情况,是什么原因导致图片会旋转显示呢?下面我们来具体了解下。问题原因Exif(Exchangeable image file format,可交换图像文件格式)是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。Exif可以附加于JPEG...

2019-04-15 15:45:56 1487

原创 如何拉取git远程仓库的某个指定分支

git clone本地分支默认与远程同名分支建立追踪关系。git clone会克隆一个版本库到本地。使用-b <name>或--branch <name>参数,它不会将新创建的HEAD指向克隆仓库的HEAD指向的分支(master分支),而是指向name分支。例如下面命令是拉取远程仓库的develop分支。$ git clone -b develop git@git.c...

2019-04-12 19:25:46 61655 1

原创 docker-compose文件中设置网络

docker-compose.fileversion: '3'services: my-gotest: container_name: testProject image: hub.docker.com/benben/my-gotest:test restart: always ports: - 8080:8080 networks: ...

2019-04-04 19:28:25 15199

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除