Go语言中文网 为您找到相关结果 445

如何用ACM简化你的Spring Cloud微服务环境配置管理

摘要: 本文我们就如何使用阿里云ACM这样的配置管理产品在Spring Cloud中替代Spring Cloud Config帮助简化环境配置管理做一个简单的示例,帮助你理解基于ACM来简化微服务环境配置管理的方案,并会简单比较一下ACM与Spring Cloud Config方案的优劣。 **点此查看原文:http://click.aliyun.com/m/41595/** **配置的环境属性** 毫无疑问,在系统持续交付的过程中,系统最终运行环境的多样性及复杂性毫无疑问增加了我们在配置管理工作上的负担,有时候,甚至不夸张的说,配置就是因环境而生. 这在Eugen Paraschiv的博文 [Configuration Must Be Environment Spe...阅读全文

【闪电网络】安装 LND

步骤(使用环境是macOS,但是其他环境也差不多): 安装 go 语言 brew install go@1.11 # brew是 macOS 下的软件管理工具 设置shell 环境变量,我用的是 fish,在~/.config/fish/config.fish末尾添加: export GOPATH="$HOME/go" set PATH $PATH $GOPATH/bin bash/zsh的配置文件则分别位于 ~/.bashrc, ~/.zshrc,语法和fish有不同,请自行设置。 设置终端的代理 使用 go 安装工具时会向golang.org域名进行HTTPS请求,golang.org域名会转发到google.com的子域名golang-consa.l.google.com,无法访问。需...阅读全文

兄弟连区块链培训分享Go语言接口读取ini配置文件

2018年第一季度,区块链相关人才的招聘需求已达到2017年同期的9.7倍,发布区块链相关岗位的公司数量同比增长4.6倍。 兄弟连教育Go全栈与区块链培训课程是由清华、微软和谷歌名师历时半年时间研发出的独一无二的体系化课程。golang读取ini配置文件一、安装config配置解释包:go get github.com/larspensjo/config二、载入其包及代码设置package mainimport ("flag""fmt""github.com/larspensjo/config""log""runtime")var (configFile = flag.String("configfile", "config.ini", "General configuration file...阅读全文

博文 2018-08-29 16:35:07 兄弟连区块链培训

Caddy – 方便够用的 HTTPS server 新手教程

最近发现了一个 golang 开发的 HTTP server,叫做 Caddy,它配置起来十分简便,甚至可以 28 秒配置好一个支持 http2 的 server ,而且对各种 http 新特性都支持的比较早(比如 http2、quic都有支持)。 安装 用过 golang 的应该都知道,golang 程序基本上不会有各种依赖,都是光秃秃一个可执行程序,cp 到 /usr/local/bin就算安装完成了,所以说安装 caddy 是很简单的,我给出三种方法。 脚本安装 curl -s https://getcaddy.com | bash caddy 官方给出了一个安装脚本,执行上面的命令就可以一键安装 caddy,等执行结束后,使用 which caddy,可以看到 caddy 已经被安装...阅读全文

博文 2019-04-19 11:34:45 岳永

Caddy 源码全解析

Caddy 源码全解析 Preface Caddy 是 Go 语言构建的轻量配置化服务器。同时代码结构由于 Go 语言的轻便简洁,比较易读,推荐学弟学妹学习 Go 的时候也去查看追一下它的源码。不用怕相信这篇文章能给你很大的信心。 可能会有点多,建议多看几遍。 Overview-CaddyMain 当然,建议看这篇文章的时候,查看上手一下 Caddy 的实际配置操作应用,对理解源码会有好处,如果没有操作过也没有关系。 Package 这是 caddy 包的结构 首先我们从一切的开始讲起,即平时我们程序运行的 main.go 函数。这是 上图 caddy 文件夹下的目录结构。在 caddy 文件夹中的 main 函数启动 caddy 服务器。实际运行的是 run.go 中的文件,这是方便测试使...阅读全文

博文 2019-08-05 00:02:38 yhyddr

Swarmkit笔记(7)——exec.Executor interface

exec.Executor interface定义(位于agent/exec/executor.go): // Executor provides controllers for tasks. type Executor interface { // Describe returns the underlying node description. Describe(ctx context.Context) (*api.NodeDescription, error) // Configure uses the node object state to propagate node // state to the underlying executor. Configure(ctx conte...阅读全文

博文 2017-06-25 14:07:18 肖楠

Delayer 基于 Redis 的延迟消息队列中间件

Delayer 基于 Redis 的延迟消息队列中间件,采用 Golang 开发。 参考 有赞延迟队列设计 中的部分设计,优化后实现。 项目链接:https://github.com/mixstart/d... ,有需要的朋友加 Star 哦。 应用场景 订单超过30分钟未支付,自动关闭订单。 订单完成后, 如果用户一直未评价, 5天后自动好评。 会员到期前3天,短信通知续费。 其他针对某个任务,延迟执行功能的需求。 实现原理 客户端:push 任务时,任务数据存入 hash 中,jobID 存入 zset 中,pop 时从指定的 list 中取准备好的数据。 服务器端:定时使用连接池并行将 zset 中到期的 jobID 放入对应的 list 中,供客户端 pop 取出。 核心特征 使用 ...阅读全文

博文 2018-10-23 20:34:57 細変

每周阅读(3/11/2019)

Hand-crafting a Sidecar Proxy like Istio 如何实现 sidecar 模式?文中用 golang 实现了一个示例: 用 sidecar 容器代理流量和转发 用 init 容器修改 iptable 实现流量拦截 Istio v1.10 sidecar 资源 1.10 有一个对于提高 pilot 和代理性能的新增资源配置 - Sidecar。 apiVersion: networking.istio.io/v1alpha3 kind: Sidecar metadata: name: default namespace: prod-us1 spec: ingress: - port: number: 9080 protocol: HTTP name: some...阅读全文

博文 2019-03-17 18:34:42 Jeff

关于docker自动化部署的总结与反思

这次线上部署躺了一些坑,于是记录一下。 内容涉及: python自动化部署(fabric) docker基本命令 docker构建镜像 docker运行容器 golang打包编译 rabbitmq&redis安装和配置 Makefile命令编写 1. 使用Makefile打包golang项目 .PHONY: build CUR_ROOT = `pwd` build: @echo "remove old output..." @rm -rf bin @echo "build..." @GOPATH=${CUR_ROOT}:$$GOPATH; \ GOOS=linux GOARCH=amd64 \ go build -a -o bin/ @echo "buil...阅读全文

博文 2019-07-20 08:32:43 陨石坠灭

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。# btcpool矿池-核心机制总结及优化思考## 核心机制总结### ①gbtmaker* 监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt* 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka* Gbt消息大小约2M,含交易列表### ②jobmaker* 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_...阅读全文

博文 2018-10-16 18:34:41 兄弟连区块链培训

造轮子-golang日志系统

介绍 golang的log包已经提供了比较完善的功能,我们只是做了一些简单的封装 主要就是构造了Writer,这个writer每次调用Write()的时候,执行了两步 第一步就是在终端输出,其实就是写到终端里 第二部就是写入到我们的日志文件。写入到日志文件的时候,有个大小判断,超过预定的大小后,就会进行分割和压缩 golang原生日志系统 log包简单实用 func main() { log.Println("this is my first log") } 进入到log包中,看Println()函数 // Println calls Output to print to the standard logger. // Arguments are handled in the manner ...阅读全文

博文 2019-01-10 16:34:41 豆瓣奶茶

使用 Go 记录日志

简介 定义配置 读取日志相关的配置 总结 当前部分的代码 简介 在上一节内容中, 我们使用 viper 读取了配置文件. 本节将使用 logrus 记录日志. logrus 是一个结构化的日志记录器, 和标准库中的 logger 具有完全兼容的 API. 定义配置 首先, 更新一下配置文件, 加入以下参数: log: use_json: true logger_level: debug logger_file: log/server.log gin_file: log/gin.log gin_console: true logrus 支持使用 JSON 格式记录日志: logrus.SetFormatter(&log.JSONFormatter{}) 第二三参数设置了日志的记录级别和日志保存...阅读全文

博文 2019-09-16 20:02:37 帅气猫咪

如何借助配置中心ACM加速企业IT服务快速迭代

摘要: 在5月29日召开的第二届研发效能嘉年华中,云效邀请了阿里云产品团队的伏羿和来自阿里巴巴中间件技术部的彦林带来了“如何借助配置中心ACM加速企业IT服务快速迭代”的主题分享。 分别对配置中心ACM和ACM技术进行了讲解,并且对ACM的主要应用场景进行了介绍,并进行了Demo环节。 在5月29日召开的第二届研发效能嘉年华中,云效邀请了阿里云产品团队的伏羿和来自阿里巴巴中间件技术部的彦林带来了“如何借助配置中心ACM加速企业IT服务快速迭代”的主题分享。 分别对配置中心ACM和ACM技术进行了讲解,并且对ACM的主要应用场景进行了介绍,并进行了Demo环节。 精彩视频请点击 PPT下载请点击 以下为精彩内容整理: 配置中心基本形态介绍 有了配置中心以后,用户或者管理员不...阅读全文

兄弟连区块链教程btcpool矿池源码分析核心机制总结及优化思考

btcpool矿池-核心机制总结及优化思考 核心机制总结 ①gbtmaker 监听Bitcoind ZMQ中BITCOIND_ZMQ_HASHBLOCK消息,一有新块产生,将立即向kafka发送新Gbt 另默认每5秒间隔(可从配置文件中指定)主动RPC请求Bitcoind,获取Gbt发送给kafka Gbt消息大小约2M,含交易列表 ②jobmaker 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_TOPIC_NMC_AUXBLOCK,以支持混合挖矿 接收的Gbt消息,如果与本地时间延迟超过60秒将丢弃,如果延迟超过3秒将打印log 可用的Gbt消息,将以gbtTime+isEmptyBlock+height来构造key写入本地Map,另gbtHash也会写入本地队列...阅读全文

博文 2018-10-16 15:34:50 兄弟连区块链培训

Mac Golang开发环境搭建

由于需要进行go语言项目的开发,基于自己个人的Mac电脑做了一些开发环境的配置,本文旨在做一个简单的记录。 先介绍下本文的电脑配置: image.png 一、安装brew Homebrew有点类似于Linux操作系统中的apt-get(Ubuntu)、yum(yum),Mac的操作系统中使用它解决包依赖问题,套用官方的话来说: 让我们开始安装吧! 在命令行输入以下指令 fabric:~ fabric$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 出现以下内容,安装成功 ==> Installation successful! ==> Homebrew has...阅读全文

博文 2019-11-17 02:32:42 更多精彩内容Mac os安装golang开发环境夏之绘Go语言开发环境搭建详解飞雪无情flysnow_org有Go语言实战培训班吗?go语言开发环境搭建qfliweiminGo语言环境搭建详解Felixxingolang 新人入门配置学习molscar

几种部署Goku API Gateway的方式,最快一分钟可使用上网关

本文将介绍几种部署Goku API Gateway的方式,最快一分钟可使用上为网关,详情请看全文。 什么是Goku API Gateway? Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开发的运行在企业系统服务边界上的微服务网关。当您构建网站、App、IOT甚至是开放API交易时,Goku API Gateway 能够帮你将内部系统中重复的组件抽取出来并放置在Goku上运行,如进行用户授权、访问控制、防火墙、数据转换等;并且Goku 提供服务编排的功能,让企业可以快速从各类服务上获取需要的数据,对业务实现快速响应。 Goku API Gateway 的社区版本(CE)拥有完善的使用指南和二次开发指南,代码使用纯 Go 语言编写,拥有良好的性能和扩...阅读全文

码极系列 | Jump Jump & Reborn

Jump Jump & Reborn 嘿!好久没更新码极系列了,从这次分享开始,后续还会有若干篇码极系列的分享会和大家见面! 今天为大家带来两个我自己开发的开源项目,我绝对不是来骗 star 的! Jump Jump 开箱即用,Go 语言开发的一个功能完善的短链接系统。 开源地址 Github | 码云 很高兴被码云评为推荐项目,虽然现在只有可怜的几十个 star。 近期 Jump Jump 已经经过一次重写,现在已更新到 v1.1.1 版本,v1.2.0 也正在慢慢开发当中。 你可以通过点击这里访问到管理后台,体验账号/密码均为 guest。 Reborn Go 语言开发的,基于 Redis 存储的配置库,简单配置,易于使用。 开源地址 Github | 码云 很高兴被码云评为推荐项目,虽...阅读全文

博文 2020-04-26 20:34:23 安木鸡

基于Jenkins的项目持续交付实践分享

摘要部门项目由于需要管理多个服务,同时服务依赖的基础环境较为复杂,导致项目工程管理起来比较负责。所以采用devops的方式进行工程项目管理,包括代码构建、自动化测试、镜像打包、部署等功能,实现自动化运维管理。持续部署实践主要涉及以下几个部分:项目管理:分为代码管理(包含分支管理),镜像管理(含版本管理),配置管理(包含部署服务器、参数等管理)DevOps:主要通过工具实现从集成、测试、构建到部署的流程,其工作流程如下:1、持续集成,基于gitlab实现代码管理,包括代码分支开发管理、代码审计管理、代码构建等功能;2、持续测试,基于jenkins、junit实现自动化测试;3、持续构建,基于docker、harbor实现docker镜像的封装和docker镜像的管理;4、持续部署,基于配置管理...阅读全文

博文 2019-10-29 10:32:50 aside section._1OhGeD

几种部署Goku API Gateway的方式,最快一分钟可使用上网关

本文将介绍几种部署Goku API Gateway的方式,最快一分钟可使用上为网关,详情请看全文。 什么是Goku API Gateway? Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang 开发的运行在企业系统服务边界上的微服务网关。当您构建网站、App、IOT甚至是开放API交易时,Goku API Gateway 能够帮你将内部系统中重复的组件抽取出来并放置在Goku上运行,如进行用户授权、访问控制、防火墙、数据转换等;并且Goku 提供服务编排的功能,让企业可以快速从各类服务上获取需要的数据,对业务实现快速响应。 Goku API Gateway 的社区版本(CE)拥有完善的使用指南和二次开发指南,代码使用纯 Go 语言编写,拥有良好的性能和扩...阅读全文

Bytom 储蓄分红 DAPP 开发指南

储蓄分红DAPP 储蓄分红合约简介 储蓄分红合约指的是项目方发起了一个锁仓计划(即储蓄合约和取现合约),用户可以在准备期自由选择锁仓金额参与该计划,等到锁仓到期之后还可以自动获取锁仓的利润。用户可以在准备期内(dueBlockHeight)参与储蓄,按照合约规定可以 1:1 获取同等数量的储蓄票据资产,同时用户锁仓的资产(deposit)将放到取现合约中,并且项目方是无法动用的,等到锁仓期限(expireBlockHeight)一到,用户便可以调用取现合约将自己储蓄的资产连本待息一同取出来。其示意图如下: 从上图中可以看出,项目方发布了一个利润为20%的锁仓项目,其中储蓄合约FixedLimitCollect锁定了1000个票据资产(bill),同时项目方将200个储蓄资产(deposit)...阅读全文

博文 2019-07-18 10:32:44 比原链Bytom

Go 每日一库之 go-ini

简介 ini 是 Windows 上常用的配置文件格式。MySQL 的 Windows 版就是使用 ini 格式存储配置的。go-ini是 Go 语言中用于操作 ini 文件的第三方库。 本文介绍go-ini库的使用。 快速使用 go-ini 是第三方库,使用前需要安装: $ go get gopkg.in/ini.v1 也可以使用 GitHub 上的仓库: $ go get github.com/go-ini/ini 首先,创建一个my.ini配置文件: app_name = awesome web # possible values: DEBUG, INFO, WARNING, ERROR, FATAL log_level = DEBUG [mysql] ip = 127.0.0.1 p...阅读全文

博文 2020-01-16 07:32:38 darjun

redis配置下详解

redis配置下详解 ``` # 如果想要使用到配置文件,Redis服务必须以配置文件的路径作为第一个参数启动。如: ./redis-server /path/to/redis.conf # 单位说明:当需要指定内存大小时,可能会用到不同的单位,如1k、5GB、4M等,这里给出其单位含义: # 指定单位是大小写不敏感。如1GB、1gB、1Gb是一样的 # # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes ##############################...阅读全文

博文 2019-12-25 09:40:46 bytemode

[喵咪Liunx(1)]计划任务队列脚本后台进程Supervisor帮你搞定#

前言## 哈喽大家好啊,好久不见啊(都快一个月了),要问为什么没有更新博客呢只应为最近在录制PhalApi的视频教程时间比较少,作为弥补那么为大家带来一点干货Supervisor,话不多说那么就开始今天的分享把 附上: 喵了个咪的博客:w-blog.cn Supervisor官网地址:https://pypi.python.org/pypi/supervisor PhalApi官网地址:http://www.phalapi.net/ 开源中国Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release 1. 我们遇到了什么问题## 了解python的童鞋应该听说过Supervisor,Supervisor是通过python实现的一个进程管...阅读全文

博文 2020-01-29 19:32:38 文振熙

兄弟连区块链教程btcpool矿池源码分析BlockMaker模块解析

btcpool矿池-BlockMaker模块解析 核心机制总结 blkmaker可以连多个bitcoind节点 blkmaker监听和接收4类消息:RAWGBT、STRATUM_JOB、SOLVED_SHARE和NMC_SOLVED_SHARE 监听RAWGBT目的为获取gbtHash/交易列表,用于构建Block,gbtHash和vtxs写入rawGbtMap_ * rawGbtMap_保存最近100条gbtHash/vtxs对 监听STRATUM_JOB目的为获取jobId_/gbtHash,jobId_和gbtHash写入jobId2GbtHash_ * jobId2GbtHash_保存最近120条jobId_/gbtHash对 监听SOLVED_SHARE目的为获取BlockHead...阅读全文

博文 2018-10-16 17:34:39 兄弟连区块链培训

golang构建web服务入门教程-配置管理(三)

上一节我们通过几行简单的代码生成了快速创建了一个web服务,今天我们就来使用配置文件来进一步学习与使用 Orange 框架; 接着上一节的代码继续往下修改: 在 $GOPATH/src目录下创建一个demo文件夹,并在文件夹内创建 main.go 文件,然后再创建一个 config.toml 文件; ***config.toml文件内容*** ```php [app] name = "orange" key = "be5356716b937d94eae948f102a2074f" httpAddr = "0.0.0.0" httpPort = 8088 ``` ***main.go文件内容*** ```php package main import ( "gitee.com/zhucheer...阅读全文

博文 2020-05-06 23:25:15 zhucheer

golang常用代码片段--定制化config组件

使用ini.v1配合fsnotify实现: 1 解析ini配置文件 2 监听配置文件的变化热更新配置 import ( "github.com/fsnotify/fsnotify" "github.com/sirupsen/logrus" "gopkg.in/ini.v1" "io/ioutil" ) var iniConf *ini.File const confPath = "main.ini" func init() { var err error iniConf, err = ini.Load(confPath) if err != nil { logrus.Panicf("load conf error: [%s]", err) } iniConf.BlockMode = fals...阅读全文

Go实现海量日志收集系统(二)

51Reboot 将在 2020.1.16日 21:00 为您带来分享主题《大佬教你如何从 ES 初学者到 ES专家》 直播链接(提前报名):https://ke.qq.com/course/482014?taid=4309905192737502&tuin=31589b0e 第一篇文章主要是关于整体架构以及用到的软件的一些介绍,这一篇文章是对各个软件的使用介绍,当然这里主要是关于架构中我们 agent 的实现用到的内容 关于 zookeeper+kafka 我们需要先把两者启动,先启动 zookeeper,再启动 kafka启动 ZooKeeper:./bin/zkServer.sh start启动 kafka:./bin/kafka-server-start.sh ./config/se...阅读全文

博文 2020-01-16 07:33:11 xjtuhit

【代码篇】从零开始一步步搭建自己的golang框架(三)

上一篇文章里,我们定了项目基本目录结构。现在来回顾一下我的思路: 创建入口文件; 指定配置、日志目录; 指定数据库、队列、缓存组件目录; 创建数据处理的controller目录; 指定公共函数等杂项。 接下来,我们还是按照这个顺序填充代码。 入口文件 func main() { config.InitConfig() logger.InitLogger() } 暂且忽略一些实现细节,我们需要先初始化配置和日志,先来看看日志,我选用Uber的zap日志库。来看看日志模块怎么写? 日志 package logger import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "gopkg.in/natefinch/lumberjack.v2" ) v...阅读全文

博文 2020-01-21 01:33:42 wx5e1abbbb0a5e5

golang 通过fsnotify监控文件,并通过文件变化重启程序

一、下载我们需要的包 go get github.com/fsnotify/fsnotify 二、使用fsnotify监控文件 package main; import ( "github.com/fsnotify/fsnotify" "log" "fmt" ) func main() { //创建一个监控对象 watch, err := fsnotify.NewWatcher(); if err != nil { log.Fatal(err); } defer watch.Close(); //添加要监控的对象,文件或文件夹 err = watch.Add("./tmp"); if err != nil { log.Fatal(err); } //我们另启一个goroutine来处理监控对...阅读全文

博文 2019-07-25 02:32:40 云南厨子

兄弟连区块链教程btcpool矿池源码分析slparser

btcpool矿池-slparser(share log parser)模块解析 核心机制总结 支持三种功能: 指定Date和UID,将打印指定日期指定用户的share信息到stdout UID=0时,将打印指定日期所有用户的share信息 指定Date但未指定UID,读取指定日期sharelog,统计数据并写入数据库 按Worker、user、pool三个维度统计:Accept1h、Accept1d、score1h、score1d、Reject1h、Reject1d 数据库仅保留最近3个月统计数据 如果Date和UID均未指定,将监听文件变化,读取share并统计数据,每15秒写入数据库 同时启动Httpd服务,开放ServerStatus和WorkerStatus slparser命令使...阅读全文

博文 2018-10-26 15:34:41 兄弟连区块链培训

golang应用快速搭建框架jotnar

jotnar 是一个golang项目快速搭建的框架,它本身是集成其它常用的框架,以达到快速开发的目的 Github项目地址 安装 go get -u github.com/paulyung541/jotnar 初始化 项目里经常会使用命令行来初始化,或者是使用配置文件。我们每新开一些项目,都会用到这些基础的功能,但是每次都去写,难免会枯燥,也不利于项目集成。使用jotnar则将这些烦琐的操作集成进来,能够非常快速地搭建一个项目 配置初始化 将命令行传参或者配置文件的设置加载到内存中,并在任何地方随心所欲地使用它们。 这里提供了2种选择: 命令行传参 使用viper这个优秀的配置文件读取框架 命令行传参方式进行初始化 ./application --ip 192.168.0.1 —port 1...阅读全文

【代码篇】从零开始一步步搭建自己的golang框架(三)

上一篇文章里,我们定了项目基本目录结构。现在来回顾一下我的思路: 创建入口文件; 指定配置、日志目录; 指定数据库、队列、缓存组件目录; 创建数据处理的controller目录; 指定公共函数等杂项。 接下来,我们还是按照这个顺序填充代码。 入口文件 func main() { config.InitConfig() logger.InitLogger() } 暂且忽略一些实现细节,我们需要先初始化配置和日志,先来看看日志,我选用Uber的zap日志库。来看看日志模块怎么写? 日志 package logger import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "gopkg.in/natefinch/lumberjack.v2" ) v...阅读全文

博文 2020-01-20 12:32:42 onepunchgo

想小步快跑吗?来一份持续集成流水线套餐吧

前言 随着云计算的不断成熟,人们已经意识到计算机自动化带来的优势,因此传统工业中越来越多的工作逐渐交由软件控制。软件研发组织更应该转变生产方式,将重复的低成本的人工处理转变为软件自动处理。 《Google软件测试之道》中说道:“每天,Google都要测试和发布数百万个源文件,亿万行代码。数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行。面对这些看似不可能完成的任务,谷歌是如何测试的呢?” 我们在平时的工作中,总有一部分工作是相对机械化的,易出错的,例如一次又一次的打包部署应用。如果可以把这部分工作交给机器来做,我们仅需要轻轻地点一下鼠标,再泡杯咖啡就能让自己轻松地完成工作,岂不是美滋滋? 此时,我们就可以考虑引入自动化持续集成工具。一套连贯的工作流程和流水线可以大...阅读全文

博文 2019-06-17 10:02:46 Iris女战士

在emacs中使用go

在emacs中,只加载基础配置。项目配置用脚本加载。go语言使用go-langserver和lsp-mode,其他的yasnippet,补全,都是基础功能。 bash <(curl -L -s https://install.direct/go.sh) ;; ;; if you clipboard don't use well, close numbers, then you can copy and paste (global-linum-mode 1) ; always show line numbers (setq linum-format "%4d| ") (setq-default fill-column 80) ;; ;;阅读全文

博文 2019-12-10 17:32:46 蓝色科学史

通过 Consul-Template 实现动态配置Nginx负载服务

【转载请注明出处】:https://www.jianshu.com/p/3fe4e15a1f99 Consul-Template简介 Consul-Template是基于Consul的自动替换配置文件的应用。在Consul-Template没出现之前,大家构建服务发现系统大多采用的是Zookeeper、Etcd+Confd这样类似的系统。 Consul官方推出了自己的模板系统Consul-Template后,动态的配置系统可以分化为Etcd+Confd和Consul+Consul-Template两大阵营。Consul-Template的定位和Confd差不多,Confd的后端可以是Etcd或者Consul。 Consul-Template提供了一个便捷的方式从Consul中获取存储的值,C...阅读全文

博文 2020-05-14 08:32:44 后端老鸟

Go 编程: 从 K8S 资源定义到 YAML 配置框架的实现

文地址:Go 编程: 从 K8S 资源定义到 YAML 配置框架的实现 在 Go 语言中,实现 YAML 配置定义与解析是非常简单的, 以最新YAML 包 gopkg.in/yaml.v3 为例: import "gopkg.in/yaml.v3" type StructA struct { A string `yaml:"a"` } type StructB struct { StructA `yaml:",inline"` B string `yaml:"b"` } var b StructB err := yaml.Unmarshal([]byte(data), &b) 非常直白,貌似不值一谈。再看看现实, YAML 文件用途之广泛,特别是在Kubernetes 平台上的应用,简直就是...阅读全文

mongo集群安装

Mongo集群部署 1.部署准备 1.1 Mongo集群环境 1.1.1mongo版本 版本号:4.0.0 1.1.2硬件环境: | 172.16.18.73 | 172.16.20.211 | 172.16.21.190 | | mongos | mongos | mongos | | config server | config server | config server | | shard server1主节点 | shard server1副节点 | shard server1仲裁 | | shard server2副节点 | shard server2仲裁 | shard server2主节点 | | sh...阅读全文

博文 2020-05-11 19:32:50 Braint_java

Go语言(十七) 配置文件库项目

配置文件库项目 简介 用途: 解析ini类型的配置文件 知识点: 主要基于反射 ini配置文件的解析,配置文件如下 ;config file [server] host = www.baidu.com port = 8080 [cartdb] user = root.xxx password = root host = localhost port = 3306 database = cartdb rate = 1.2 需求分析 拆离出动态配置 映射数据到项目数据结构中-包含配置文件读取(UnMarshalFile)和写入(MarsharFile)两个功能 代码部分 package oconfig import ( "fmt" "io/ioutil" "reflect" "strconv" ...阅读全文

博文 2020-05-03 01:33:11 wx5b285b48ed74e

nginx学习之模块

1、 stub_status模块: 用于展示nginx处理连接时的状态。 配置语法如下: Syntax:stub_status; Default:默认没有配置 Context:server、location 可以编辑default.conf,加上如下配置: vim /etc/nginx/conf.d/default.conf 然后检查配置的正确性: #-t 表示检查配置文件;-c表示检查指定的配置文件,默认为/etc/nginx/nginx.conf nginx -t -c /etc/nginx/nginx.conf 这里注意了,虽然修改的是default.conf,但是检查的时候始终还是加载nginx.conf,否则报错: 因为nginx.conf中include了conf.d目录下的所有...阅读全文

博文 2019-10-18 10:02:56 小碗汤

【代码篇】从零开始一步步搭建自己的golang框架(六)

基本上这个基础框架拿到手之后就可以做一些自己想要做的改动了,比如你想添加个队列的插件,你可以在相应的目录里面进行修改了,但我想让它更通用一些,本篇文章将会启动一个websocket服务,并且把配置文件改成yaml格式。 修改配置 之所以想要把配置从json改为yaml,有以下几点原因: json主要是用于信息传输,而yaml更适合作为配置文件的格式来使用,两者的用途不一样; yaml格式看起来比json更加清晰; 在yaml文件中可以添加注释,让配置更加易懂。 在此,解析yaml文件用的包是"gopkg.in/yaml.v2",例子可以在github上找到,文末可以找到本项目的链接。 为框架添加websocket的服务 我希望这个项目能够尽可能地涵盖一些基础的功能,所以我为它添加了webso...阅读全文

博文 2020-02-15 23:33:42 wx5e1abbbb0a5e5

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多个应用上进行逻辑处理。 因为有了中间件,使得大型网站在规划有了更好的层次性,维护上更加方便。也可以实现负载均衡、安全防护等。 Nginx是一个开源高性能、可靠的HTTP中间件、代理服务,在目前企业中得到了很大的利用。 今天主要学习下nginx的安装配置,以便于后续学习。 以下在本地虚拟机上搭建学习。 linux环境搭建可以参考: vmware上安装linux过程记录 1、 检查系统网络是否能连通公网: ping www.taobao.com 2、 确认yum源是否配置好,用于下载安装环境基础包: yum源配置可...阅读全文

博文 2019-10-18 10:02:54 小碗汤

Tips:如何优雅的使用GDB调试Go

Tips: all for hands-free. Tips 系列:记录日常解决问题、解放双手的一些小技巧。 目的只有一个:不被重复的琐事麻痹,能偷懒的绝不手软。 今天聊聊如何优雅的使用GDB调试Go程序。 GDB有啥用? 想了解代码底层的话,它是一大利器,更别说定位问题啥的。 具体骚操作见曹大的使用 debugger 学习 golang 但GDB从安装到可用,可能有一大堆问题要解决(尤其在Mac上),我们怎么能优雅的使用它,避免陷入问题中,是本文的重点。 (涉及Docker和Mac两个平台上运行) 先来看比较推荐的Docker方式 Docker篇:3步即可调试 docker加持的话,非常方便,随用随起 先上效果:戳 gdb-debug-go-in-docker 可下载命令 具体步骤如下:(...阅读全文

博文 2020-02-20 12:34:18 newbmiao