自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

红嘴奎利亚雀 的专栏

专注于互联网

  • 博客(55)
  • 收藏
  • 关注

原创 新的博客地址

本博客所有文章均可在以下站点查看:个人博客:blog.favorstack.io个人站点:favorstack.io欢迎访问,一起交流学习

2019-03-17 19:56:22 182

原创 Elastic Stack日志查询平台第一篇:快速开始

本文最初发表在我的个人博客,查看原文。本文会带你了解:Elastic Stack 可以干什么Elastic Stack 有哪些核心产品为什么要搭建日志查询平台如何快速搭建一个日志查询平台Elastic Stack系列文章链接:Elastic Stack日志查询平台第一篇:快速开始Elastic Stack日志查询平台第二篇:Elasticsearch生产配置(未完)文章...

2019-11-24 21:10:31 4932 4

原创 Go语言学习 二十五 Go中的作用域

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验在Go中,声明标识符的作用范围是源文件的范围,其中标识符表示指定的常量、类型、变量,函数、标签或包等。一 作用域Go使用块的词法来管理作用域:预声明的标识符的范围是全局的(哪都可以用)。顶层(在任何函数之外)声明的常量,类型,变量或函数(但不是方法)的标识符的范围是包级别。导入包的作用域是包含导入包声明的文件范围方法接收者,...

2019-07-11 07:18:34 687

原创 Go语言学习 二十四 打印

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验Go中的格式化打印使用类似C的printf系列的风格,但功能更为丰富和通用。这些函数位于fmt包中,并具有大写名称:fmt.Printf,fmt.Fprintf,fmt.Sprintf 等等。字符串函数(Sprintf等)返回一个字符串,而不是填充提供的缓冲区。fmt包中打印函数如下:func Fprint(w io.Writer, ...

2019-06-28 00:44:03 877

原创 Go语言学习 二十三 错误处理和运行时恐慌(Panic)

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验一 错误1.1 error类型按照约定,Go中的错误类型为error,这是一个内建接口,nil值表示没有错误:type error interface { Error() string}我们可以很方便的自定义一个错误类型:package mainimport ( "fmt")func main()...

2019-06-28 00:38:43 724

原创 Go语言学习 二十二 并发

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验并发是每个编程语言绕不开的一个话题,Go在并发编程方面提供了许多特性,帮助简化并发模型,如轻量级的线程goroutine,信道等,同样也提供了如sync.Mutex等的锁机制。为实现对共享变量的正确访问,Go语言提供了一种特殊的控制方式,即将共享的值通过信道传递。信道是一种带有方向的管道,数据可以在其中流转。在任意一个的时间点,只有一个...

2019-06-28 00:25:54 528

原创 Go语言学习 二十一 内嵌

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验在像Java这种语言中,有子类(或者继承)的概念,通过继承复用已有的功能或属性,与继承不同,Go中使用组合的方式来完成已有实现的复用,这种做法称为内嵌。具体来说,就是将已定义类型内嵌到结构体或接口中完成组合。一 接口内嵌接口内嵌非常简单。例如标准库中的io.Reader和io.Writer接口,它们的定义如下:type Reader...

2019-06-27 02:13:11 1115

原创 Go语言学习 二十 接口

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验接口是一组方法的集合,接口类型的方法集是其接口。在Go中,接口的实现无需显示指明,只需要实现类型实现了一个接口的所有方法,就表示该类型实现了该接口,这种实现方式也称为隐式实现。隐式接口实现解耦了接口的定义,这样,可以在任何包中实现一个接口,同时,也使得接口的定义更加明确。一 接口1.1 接口声明接口的声明需要使用interface关...

2019-06-26 00:19:46 244

原创 Go语言学习 十九 方法

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验上一篇文章中介绍了关于Go的类型体系。在Go中,可以为结构等类型定义方法。方法就是带有接收者参数的函数。方法接收者位于func关键字和方法名之间。一 方法的声明将方法的接收者指定为某一个类型,该方法即成为指定类型的方法。例如,以下为Point类型定义了一个Abs()方法:package mainimport ( "fmt"...

2019-06-26 00:13:17 164

原创 Go语言学习 十八 类型体系

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验Go语言中的类型既有预定义的,也允许用户自定义。正如在Java中我们可以自定义类一样,在Go中我们可以通过自定义类型来创造新的数据类型。复合字面量可以为结构、数组、切片或映射类型构造值,字面量的底层类型必须是以上类型,该规则受语法的强制约束,除非类型以类型名称给出。元素和键的类型必须可分配给字面量类型的相应字段、元素和键的类型;没有额外...

2019-06-16 22:14:32 213

原创 Go语言学习 十七 指针

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验Go语言有指针的概念,指针保存了值的内存地址。指针的零值为nil。指针类型表示指向给定类型的变量的所有指针的集合,该类型称为指针的基本类型。给定一个类型T,其中类型*T是指向T类型值的指针:package mainimport "fmt"func main() { var p *int i := 5 p = &amp...

2019-06-16 22:09:45 103

原创 Go语言学习 十六 映射

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验映射是一种键-值对类型的内置数据结构。它将键映射到值,其中键是唯一的,即不允许重复,重复则会覆盖之前的值。映射的键类型必须是完整的定义了相等运算符(==和!=)的类型,如整数,浮点数,复数,字符串,指针,结构和数组;如果键是接口类型,则其动态类型必须支持相等比较。因此,键类型不能是函数,映射或切片。失败会触发运行时panic。映射中的元素...

2019-06-15 13:28:15 291

原创 Go语言学习 十五 数组和切片

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验数组是一种重要的数据结构,一旦声明长度就是固定的,实际中,更为灵活的切片可能使用更为广泛。切片底层实现就是使用的数组。一 数组数组是一种长度固定的数据结构,一旦声明,长度和元素的类型就不可变,并且在内存中是一段连续的块。数组中元素的个数即为数组的长度。数组的长度是一个int类型,可以使用内置函数len()来获取。另外,数组中的每一个元...

2019-06-15 13:23:04 275

原创 Go语言学习 十四 基本数据类型

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验类型确定一组值以及特定于这些值的操作和方法。类型可以由类型名称表示(如果有的话),或者使用类型字面量指定,则类型名称由现有类型组成。可以使用类型字面量构造复合类型-数组,结构,指针,函数,接口,切片,映射和信道类型。每个类型T都有一个基础类型:如果T是预先声明的布尔,数字或字符串类型之一,或者是类型字面量,则相应的基础类型是T本身。否...

2019-06-03 21:58:03 146

原创 Go语言学习 十三 类型转换和类型推导

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验一 类型转换与C不同的是,Go在不同类型的项之间赋值时需要显式转换。显示转换语法形如T(x),其中T为要转换的目标类型,x是一个可以转换为T的表达式。例如:一些关于数值的转换:var i int = 42var f float64 = float64(i)var u uint = uint(f)或者,更加简单的形式:i ...

2019-06-03 21:46:54 521

原创 Go语言学习十二 变量和常量

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验Go 使用var关键字声明变量;使用关键字const声明常量。变量可以像常量一样初始化。一 变量1.1 变量声明语法:var 变量名 变量类型 | = 值var x intvar y string = "hello"var z = 2var c, python, java = true, false, "no!"var ...

2019-06-01 07:15:56 191

原创 Go语言学习 十一 defer语句

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验Go的defer语句用于延迟调用函数,该语句在执行defer的函数返回之前立即执行,换句话说,defer将函数推迟到外层函数执行完毕但返回之前执行。这在处理那些必须释放资源等的情况下非常有用,无论当前函数执行结果如何。类似于Java中的finally或try-with-resources。一 defer语句语法:defer f...

2019-05-29 23:44:49 189

原创 Go语言学习 十 函数

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验Go中的函数除了可以声明入参之外,还可以声明结果参数(即返回值)。函数可以没有参数或接受多个参数,并且类型在变量名之后。当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。一 函数声明语法:func 函数名 (签名 类型)[([结果签名 ]类型)]][函数体]例如:示例1:// 普通函数func ...

2019-05-28 06:15:05 318

原创 Go语言学习 九 流程控制之switch

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验在Go中,switch语法非常灵活。Go 的 switch 语句类似于 C、C++、Java、JavaScript 和 PHP 中的,不过 Go 只运行选定的 case,而非之后所有的 case。实际上,Go自动提供了每个 case 后面所需的 break 语句。 除非以fallthrough语句结束,否则分支会自动终止。 Go 的另一...

2019-05-26 06:23:40 334

原创 Go语言学习 八 流程控制之for循环

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验与大多数语言不同,Go中没有do或while循环,只有一个简单通用的for循环;for循环有四种写法,其中只有第一种需要分号:一 基本的for循环// C风格的forfor init; condition; post { // statements}基本的 for 循环由三部分组成,它们用分号隔开:初始化语句:在第一次...

2019-05-26 06:17:16 312

原创 Go语言学习 七 流程控制之if-else

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验Go中关于流程控制方面主要有if-else,for循环,switch。另外,Go中还多了一种新的控制结构select,这种结构包含一个类型开关和一个多路通信复用器;if和switch接受类似for的可选初始化语句;break,continue和goto语句采用可选标签来标识要中断或继续以及要跳转的内容;与C相比,Go的控制结构语法也有些区...

2019-05-26 06:12:03 338

原创 Go语言学习 六 命名约定

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验和其他语言一样,在Go中,命名非常重要,甚至还有语义效果:一个名称在包外是否可见,取决于它的首字母是否大写。在导入一个包后,你只能引用其中已导出的名字。任何“未导出”的名字在该包外均无法访问。一 包名包名可以作为包内容的访问器。包名应该尽量简单,好记。按照约定,所有包名使用小写字母,且使用单个单词表示,不需要使用下划线或大小写混合的方...

2019-05-25 23:01:21 218

原创 Go语言学习 五 注释和文档

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验一 注释Go提供了两种风格的注释:一种是C风格的块注释/* */,另一种是C++风格的行注释//,一般情况下使用行注释就可以了;块注释更多情况下出现在包的注释上,也可在表达式中或注掉大段代码时使用。注释不可嵌套,也不能从符文或字符串字面量中开始。二 go文档生成godoc命令既是一个程序,又是一个Web服务器。它可以从源代码的注...

2019-05-25 22:58:25 787

原创 Go语言学习 四 代码的格式化

本文最初发表在我的个人博客,查看原文,获得更好的阅读体验一 代码格式的统一Go推荐大家使用相同风格的代码格式,而不是在这个问题上花费过多的时间。为了统一代码格式,Go甚至自带了一个格式化工具gofmt(或者go fmt),该工具会从包级别而非源文件以标准样式的缩进和垂直对齐方式对源代码进行格式化,甚至必要情况下注释也会重新格式化。也就是说,在写go代码时,无需过多的关注排列结构和对齐等,最...

2019-05-25 22:51:48 2125

原创 Go语言学习 三 实例详解

本文最初发表在我的个人博客,欢迎查看原文:blog.favorstack.io/golang上一篇文章介绍了Go代码的组织结构及一些基本概念,下面将以github.com/favorstack作为基路径,在工作空间中创建一个目录来保存源代码,介绍一下基本的语法。一 第一个程序Hello world程序1). 创建基路径:$ mkdir -p $GOPATH/src/github.com...

2019-03-29 01:59:50 304

原创 Go语言学习 二 概念篇:Go代码的组织结构及基本概念介绍

本文最初发表在我的个人博客,欢迎查看原文:blog.favorstack.io概览Go程序员通常会将所有Go代码保存在一个工作区中。工作空间可以包含多个版本控制仓库(比如,Git仓库)。每个仓库可以包含一个或多个包。每个包由一个目录中的一个或多个Go源文件组成。包目录的的路径决定了其导入路径。使用过Eclipse的同学可能觉得这跟Eclipse的工作空间有点像,但是跟Idea...

2019-03-23 00:25:54 692

原创 Go语言学习 一 基础篇:环境配置

本文最初发表在我的个人博客,欢迎查看原文:https://blog.favorstack.io/golang/go-development-env-config.html简介官方是这样介绍Go的:Go是一种开源编程语言,可以轻松构建简单、可靠、高效的软件。Go is an open source programming language that makes it easy to bu...

2019-03-23 00:14:38 258

原创 Nginx:a client request body is buffered to a temporary file

欢迎访问以下链接,查看原文:blog.favorstack.io最近检查服务器日志时,发现nginx的error中有好多警告:2019/03/18 14:20:53 [warn] 846#846: *163 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/00000000...

2019-03-18 16:58:14 21845

原创 macOS安装配置openJDK11

本文最初发表在我的博客,欢迎访问原文地址:blog.favorstack.ioOracle JDK 通常是安装程序,可以直接安装,故可以直接跳过下列1,2,3步骤,后续配置方法与OpenJDK一致。0. 系统版本$ sw_versProductName: Mac OS XProductVersion: 10.14BuildVersion: 18A3911. 下载oracl...

2019-03-17 18:43:38 11330 3

原创 Docker入门实践(六) 常用操作命令示例汇总

要查看所有可用操作,直接输入docker或 docker help 即可;要查看某个子命令的详细用法,输入docker help COMMMAND或docker COMMMAND --help。1 容器相关操作运行一个容器用法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 常用参数:run子命令是一个非常重要及常用的命令,它有非常多的选项参数,以下列

2016-09-09 21:35:39 2543 1

原创 Docker入门实践(五) 理解Docker三大组件的工作机制

Docker镜像是Docker容器运行的静态模板。每个镜像都包含一系列的层,Docker使用一种叫做联合文件系统(union file systems,unionFS)的东西来将这些层组合为单个镜像。unionFS允许单独的文件系统中的文件和文件夹以分支的形式出现,可以被透明地覆盖,最终形成一个连续的文件系统。Docker如此轻量的原因之一就是因为这些层。

2016-09-08 16:47:55 5304

原创 Docker入门实践(四) 打造自己的开发环境镜像

许多Docker镜像都是开箱即用的,但有时候却并不一定满足我们的需求,比如,你直接从Docker Hub拉取的tomcat 使用的Java VM是Open JDK,但通常我们需要使用Oracle JDK。由于版权问题,Docker Hub无法提供基于Oracle的JDK,这时我们就需要深度定制符合我们需求的镜像了。

2016-09-08 12:43:18 22284 3

原创 Docker入门实践(三) 基本操作

Docker安装完毕,我们就可以试着来运行一些命令了,看看docker可以干什么。

2016-09-07 22:48:17 14385 7

原创 Docker入门实践(二) Docker的安装配置

Docker目前的最新稳定版本是1.12.0。支持Windows,Mac及大部分主流的Linux发行版。

2016-09-07 22:40:30 1542

原创 Docker入门实践(一) 理解Docker

Docker是一个集开发,打包,运行应用于一体的开放式平台。Docker可以用来快速交付应用。

2016-09-07 22:17:31 1939

原创 Ubuntu 安装配置Oracle JDK

Ubuntu 安装配置Oracle JDKUbuntu下的JDK配置,虽然简单,权当做个归档整理吧

2016-09-07 22:04:38 672

原创 Nexus3.xx私服搭建

本文已迁移到我的新博客地址:blog.favorstack.io 欢迎访问~Nexus的介绍参见之前的博文:http://blog.csdn.net/cloud_xy/article/details/46767645本文是其最新版本3.xx的安装配置教程。本文基于:Ubuntu 16.04 LTS(x64)nexus-3.0.1-01 OSSOracle JDK-8u65nex...

2016-08-08 14:59:27 4820 1

原创 Java开发流程自动化(svn+maven+nexus+jenkins) --自动编译,持续集成,测试,打包,发布/部署

本文已迁移到我的新博客地址:blog.favorstack.io 欢迎访问~二 配置篇1.安全管理Jenkins的权限管理是这样的,你如果启用安全,需要先添加一个即将使用的用户,并分配权限(至少要有管理员权限),保存后会跳到首页注册,这里就使用刚添加的用户来注册,输入用户名密码保存即可。如果事先没有为新注册的用户分配权限,这里就会导致你无法再登录了。1).点击...

2016-03-20 21:48:07 7159 2

原创 Java开发流程自动化(svn+maven+nexus+jenkins) --自动编译,持续集成,测试,打包,发布/部署

本文已迁移到我的新博客地址:blog.favorstack.io 欢迎访问~Java开发中,很多工作比较繁琐:新功能开发完毕,测试,修改配置文件,打包,发布…我们时常能听到将开发流程自动化的声音,然而实际真正将自动化落地的有多少呢,你还在一遍遍的用IDE打包,然后手工部署吗,现在我们需要将这一切完全自动化,专心写代码:)一基础环境搭建篇注:以下环境除Nexus外,其他都需要在同一台机...

2016-03-20 02:53:30 5632

翻译 Datastax文档Apache Cassandra v2.1 第二部分 理解Cassandra架构_数据分发和副本

本文已迁移到我的新博客地址:blog.favorstack.io 欢迎访问~本文主要翻译自Datastax公司的在线文档,Cassandra版本为2.1。由于水平有限,翻译不当之处还请大家指正。在Cassandra中数据分发和复制是同步的。数据由表组织,并且由主键唯一标识,主键确定数据在哪个节点中存储。副本即行的拷贝,数据第一次写入,也称之为一个副本。影响副本的因素包括:...

2015-09-23 01:47:33 2428

空空如也

空空如也

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

TA关注的人

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