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

SpringBoot 2.x 开发案例之整合MinIo文件服务

在之前的图床开发中曾使用了分布式文件服务FASTDFS和阿里云的OSS对象存储来存储妹子图。奈何OSS太贵,FASTDFS搭建配置又太繁琐,今天给大家推荐一款极易上手的高性能对象存储服务MinIO。简介MinIO 是高性能的对象存储,兼容 Amazon S3接口,充分考虑开发人员的需求和体验;支持分布式存储,具备高扩展性、高可用性;部署简单但功能丰富。官方的文档也很详细。它有多种不同的部署模式(单机部署,分布式部署)。为什么说 MinIO 简单易用,原因就在于它的启动、运行和配置都很简单。可以通过 docker 方式进行安装运行,也可以下载二进制文件,然后使用脚本运行。安装推荐使用 docker 一键安装:docker run -it -p 9000:9000 --name minio \-...阅读全文

博文 2020-05-19 17:32:56 千锋Python小奶茶

Swarmkit笔记(11)——manager创建处理swarmctl请求的server

manager.localserver是创建的本地Unix socket,用来等待处理swarmctl发来的命令请求(源码在manager/controlapi目录)。Manager.Run()函数里localserver相关代码如下: baseControlAPI := controlapi.NewServer(m.RaftNode.MemoryStore(), m.RaftNode, m.config.SecurityConfig.RootCA()) ...... proxyOpts := []grpc.DialOption{ grpc.WithBackoffMaxDelay(time.Second), grpc.WithTransportCredentials(m.config.Sec...阅读全文

博文 2017-06-25 14:08:28 肖楠

实战生产环境:1.13.3最新版k8s集群部署Heapster插件

本篇文章,所使用的任何镜像和yaml我都会发一个网盘链接,供大家下载学习!github:https://github.com/heyangguang有任何问题可以直接联系我的Email:heyangev@cn.ibm.com Heapster是一个收集者,将每个Node上的cAdvisor的数据进行汇总,然后导到第三方工具(如InfluxDB)。 Heapster介绍 架构图: Heapster首先从K8S Master获取集群中所有Node的信息,然后通过这些Node上的kubelet获取有用数据,而kubelet本身的数据则是从cAdvisor得到。所有获取到的数据都被推到Heapster配置的后端存储中,并还支持数据的可视化。现在后端存储 + 可视化的方法,如InfluxDB + gr...阅读全文

博文 2019-03-06 13:34:40 何阳光

golang 编写的在线redis 内存分析工具 rma4go

redis 内存分析工具 rma4go redis是一个很有名的内存型数据库,这里不做详细介绍。而rma4go (redis memory analyzer for golang) 是一个redis的内存分析工具,这个工具的主要作用是针对运行时期的redis进行内存的分析,统计redis中key的分布情况, 各种数据类型的使用情况,key的size,大key的数量及分布, key的过期状况分布等一些有助于定位redis使用问题的工具,希望这能够给应用开发者提供便利排查生产中所遇到的实际问题。 rma4go的应用场景 redis是目前很流行的一个内存型数据库,很多企业都在使用。 但由于业界并没有很多对于redis使用上的规范,或者是有一些规范并没有被很好的遵循, 存在很多redis使用上的问题...阅读全文

博文 2018-12-17 11:34:45 winjeg

第三十二章: golang编译与go程序部署

Go程序编译 1. 交叉编译(Cross compiler) “ 交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行 ” 对于交叉编译我们简单的理解是在当前平台上编译出其他平台可以执行的文件 交叉编译给我们带来的好处是我们一次编写的代码经过交叉编译之后可以在多个平台上执行 我们在 Windows 编写Go程序可以编译成在 Mac OS 或者 Linux 上的运行程序 (良好的可移植性) 2. 交叉编译设置 重点参数说明 : GOOS : 目标操作系统 GOARCH : 目标操作系统的架构 1.1 Windows 平台 # 目标平台 Mac SET GOOS=darwin SET GOARCH=amd64 ...阅读全文

博文 2020-05-17 17:32:44 captain89

Spring 中获取 request 的几种方法,及其线程安全性分析

概述在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址、请求的url、header中的属性(如cookie、授权信息)、body中的数据等。由于在Spring MVC中,处理请求的Controller、Service等对象都是单例的,因此获取request对象时最需要注意的问题,便是request对象是否是线程安全的:当有大量并发请求时,能否保证不同请求/线程中使用不同的request对象。 这里还有一个问题需要注意:前面所说的“在处理请求时”使用request对象,究竟是在哪里使用呢?考虑到获取request对象的方法有微小的不同,大体可以分为两类:(1)在Spring的Bean中使用request对象:既包括Controller...阅读全文

博文 2019-02-21 18:34:41 MyBatis

Dockerfile for Alpine+Golang

Dockerfile for Alpine+Golang 在开发环境,测试环境下使用Golang的Docker镜像。 目前使用两个Dockerfile,一个基于Alpine,一个基于CentOS。 使用时请注意修改掉私人有关的内容。 Dockerfile for Alpine+Golang FROM alpine:latest RUN apk add --no-cache \ ca-certificates # set up nsswitch.conf for Go's "netgo" implementation # - https://github.com/golang/go/blob/go1.9.1/src/net/conf.go#L194-L275 # - docker run --...阅读全文

博文 2019-04-12 10:34:42 大眼铅笔

Scalable web application with google go the right way

<p>Hi guys, a few colleagues and me are planning a start up and we want to create a decent online market place. I heard a lot of good stuff about google go recently and started learning the language. Now i know how i can create my server but what would you suggest as database and client side? I thought about MongoDB and the Javascript engi...阅读全文

在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 蓝色科学史

requests

requests requests 是一个用golang 语言clone python版本的requests库。 golang 自带的net/http功能已经非常完善。它和python里面的urllib系列库一样,功能足够,但是使用起来非常繁琐。 python版本的requests简直就是神器,让很多人非常敬仰。 因此我就动手按照python的requests的思想封装了一个 requests。 动手之前,我想尽量兼容 python的写法。但是golang不支持函数名称小写, 也不支持 参数命名。所以我只能用参数类型的方案来支持动态参数。 安装 golang 1.11之前 go get -u github.com/asmcos/requests golang 1.11之后,编辑一个go.mo...阅读全文

博文 2018-09-03 14:35:24 QuintGao

linux学习--week17--nginx-lnmp

负载均衡 2.1 负载均衡与反向代理区别 2.2nginx 7层负载 2.3 nginx 7层负载 2.4 nginx 4层负载均衡 nginx缓存 lnmp 4.1 概述 4.2 环境准备 LNMP环境迁移 5.1 数据库迁移 5.2 用户上传文件到nfs 5.3 回顾及今日内容: nginx 老男孩教育-Linux学院 web服务 负载均衡(反向代理) wireshark抓包 nginx缓存 web服务 部署:yum 编译(增加第3方模块rtmp ) 配置:nginx.conf conf.d/xxxx.conf 含义 Alphabetical index of directives Alphabetical index of variables http://tengine.taobao...阅读全文

博文 2019-11-11 02:32:59 更多精彩内容Linux运维day42_二阶段_nginx代理和负载均衡矮寨坡的M3Linux运维-day50-综合架构-LNMP数据库存储迁移与负载均衡文娟_狼剩Linux之nginx魏镇坪在阿里云上部署LNMP的实验经历君临天下夜未央linux学习--

基于React Context Api 和 Es6 Proxy的状态管理

近几个月的工作中,有遇到一些场景:基本不需要全局的状态管理,但页面级的,肯定需要在一些组件中共享,引入Redux这类状态管理库有点繁琐,直接通过props传递的话,写起来总觉得不是那么优雅。刚好项目中React版本比较新,就试了下Context Api,代码大致如下: // Context.js const Context = React.createContext( {} // default value ) export const Provider = Context.Provider export const Consumer = Context.Consumer // App.jsx import {Provider} from './Context' import Page fr...阅读全文

博文 2019-01-25 23:34:42 孤丶狼丶

golang快速入门[2.1]-go语言开发环境配置-windows

golang快速入门[2.1]-go语言开发环境配置-windows接下来,我们将讲解在windows、linux、macos三大平台上配置go语言的开发环境。windows安装Go语言开发包配置go语言的开发环境的第一步是要在go官网下载页面下载开发包windows需要下载msi后缀文件,msi是windows下的安装包文件格式,用于安装,存储和删除程序这里我们下载的是 64 位的开发包,如果读者的电脑是 32 位系统或者有特殊的需求,则需要下载 32 位的开发包在上图所示页面中向下滚动即可找到 32 位开发包的下载地址,如下图所示双击我们下载好的Go语言开发包即可启动安装程序,如下图所示,这是Go语言的用户许可协议,无需管它,直接勾选“I accept …”然后点击“Next”即可。在 ...阅读全文

博文 2020-02-07 12:33:13 jonson_jackson

Hyperledger Fabric 1.0 alpha2 项目目录文件(中01)

│ │ │ │ │ │ │ │ ├── asm_darwin_386.s│ │ │ │ │ │ │ │ ├── asm_darwin_amd64.s│ │ │ │ │ │ │ │ ├── asm_darwin_arm64.s│ │ │ │ │ │ │ │ ├── asm_darwin_arm.s│ │ │ │ │ │ │ │ ├── asm_dragonfly_amd64.s│ │ │ │ │ │ │ │ ├── asm_freebsd_386.s│ │ │ │ │ │ │ │ ├── asm_freebsd_amd64.s│ │ │ │ │ │ │ │ ├── asm_freebsd_arm.s│ │ │ │ │ │ │ │ ├── asm_linux_386.s│ │ │ │ │ │ │...阅读全文

博文 2017-06-09 06:06:58 简闻

使用Envoy 作Sidecar Proxy的微服务模式-3.分布式追踪

本博客是深入研究Envoy Proxy和Istio.io 以及它如何实现更优雅的方式来连接和管理微服务系列文章的一部分。 这是接下来几个部分的想法(将在发布时更新链接): 断路器(第一部分) 重试/超时(第二部分) 分布式跟踪(第三部分) Prometheus的指标收集(第四部分) 服务发现(第五部分) 第三部分 - 使用envoy proxy 实现分布式追踪 第一篇博文向您介绍了Envoy Proxy的断路功能实现。在第二部分中,仔细研究了如何启用额外的弹性功能,如超时和重试。在第三部分中,我们将了解如何在服务网格中启用分布式跟踪。有意进行一些简单的演示,因此我可以单独说明模式和用法。请下载此演示的源代码并按照说明进行操作! 该演示由一个客户端和一个服务组成。客户端是一个Java http...阅读全文

博文 2019-02-23 19:34:41 iyacontrol

理解Kubernetes网络:ingress篇

在本系列的第一篇文章中,我讲了Pod跨Kubernetes集群中的节点相互连接的网络。第二篇重点讲了服务网络如何为Pod提供负载平衡,以便群集内的客户端可以与它们可靠地通信。对于这第三篇也是最后一篇文章,我想以这些概念为基础来展示集群外的客户端如何使用同一服务网络连接到Pod。由于各种原因,这很可能是三篇涉及最多的,并且掌握前两篇关于pod和service的内容是理解本篇的的前提。 路由并不是负载均衡 在上一篇文章中,我们创建了一个具有两个Pod的部署,并为该服务分配了一个IP,称为“集群IP”,针对Pod的请求已发送到该IP。我将在此处继续根据该示例进行构建。回想一下,该服务的群集IP 10.3.241.152位于与Pod网络以及节点本身所在的网络不同的IP地址范围内。我称这个地址空间为“...阅读全文

通过 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 后端老鸟

使用Vim编辑器开发Go的简单入门

今天是一次做Go的笔记,一开始直接打开Github上的Go项目然后跑到Wiki位置,然后作者列出了一堆学习Go的资料,这里我 以第一个学习资料https://tour.golang.org/作为Go学习到入门。然后为了训练我的终端运用 能力还有Vim下的编码能力这里我使用到了tmux和Vim编辑器,然后之前已经在VIM里面安装了Vim-go插件了,所以在之前 的Go项目文件目录下可以直接使用命令模式使用:Go来执行相应的操作。如果项目报错都话你可能是没有按照 Vim-go的要求现在项目里面执行:GoInstallBinaries. You will also need to install all the necessary binaries. vim-go makes it easy to...阅读全文

图解kubernetes资源QOS机制实现原理

QOS是k8s中一种资源保护机制,其主要是针对不可压缩资源比如的内存的一种控制技术,比如在内存中其通过为不同的Pod和容器构造OOM评分,并且通过内核的策略的辅助,从而实现当节点内存资源不足的时候,内核可以按照策略的优先级,优先kill掉哪些优先级比较低(分值越高优先级越低)的Pod,今天来分析下背后的实现 1.关键基础特性 1.1 一切皆文件 在Linux中一切皆文件,控制CGroup本身也是通过配置文件进行的,这是我创建的一个内存Lmits为200M的Pod的容器的配置 # pwd /sys/fs/cgroup # cat ./memory/kubepods/pod8e172a5c-57f5-493d-a93d-b0b64bca26df/f2fe67dc90cbfd57d873cd8a8...阅读全文

博文 2020-02-19 21:32:42 仔仔

使用golang反向代理统计api访问次数

前言 今天写点有趣的小东西。事情是这样的,我经常看到有些软件加了统计数据的sdk,之后就可以实现统计接口的访问量,接口负载等等数据。而这些功能不需要原有的软件做些什么,对原来的业务完全无入侵,我觉得这样的功能很有实用性,所以没有参考其他类似的软件或者工具,我想自己试试怎么实现这样的功能。 思路 首先,我们先给要做的工具起个名字,就叫monitor。要实现无侵入,那么只能是在业务软件外面套一层,经由业务软件的流量,都需要经过monitor这一层,这让人很容易得想到了网关的功能也是类似的。恰好,golang实现反向代理十分简单。所以,思路就有了。先实现一个反向代理,将经由业务的流量都由monitor反向代理给业务软件。接着,将访问的api放进通道中,对api进行分类,就可以统计api的访问量了。...阅读全文

博文 2020-03-15 15:32:43 onepunchgo

What is an example of a hard programming challenge that has an elegant solution in Go but not others languages?

<p>I am thinking a problem that is easy to solve with Go but not others will need to make use of channel and go routines. But I can&#39;t seem to think of one. </p> <hr/>**评论:**<br/><br/>cdoxsey: <pre><p>TCP Proxy</p> <pre><code>func run() error { li, err := net.Listen(&#34;tcp...阅读全文

Where to use TLS ?

<p>Hello gophers!</p> <p>My mind has been running in circles with TLS scenarios and I thinking maybe some of you might have gone through this and know which way to go would be best.</p> <p>Basically, there&#39;s a Golang Backend, an Angular Frontend running on Nginx or Apache, all behind an Amazon server.</p&g...阅读全文

资源 2016-08-05 09:00:21 agolangf

彻底搞懂 etcd 系列文章(二):etcd 的多种安装姿势

0 专辑概述 etcd 是云原生架构中重要的基础组件,由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册与发现,还可以作为 key-value 存储的中间件。 《彻底搞懂 etcd 系列文章》将会从 etcd 的基本功能实践、API 接口、实现原理、源码分析,以及实现中的踩坑经验等几方面具体展开介绍 etcd。预计会有 20 篇左右的文章,笔者将会每周持续更新,欢迎关注。 1 etcd 安装与使用 在上一篇主要介绍了 etcd 的相关概念和使用场景,本篇主要介绍 etcd 的多种安装使用方式。 1.1 etcd 概念词汇表 在开始 etcd 的安装使用之前,我们先了解下 etcd 的概念词汇表,以便于下文的理解。 Raft:etcd所采用的保证分布...阅读全文

博文 2020-05-27 22:32:44 aoho

Go 每日一库之 jsonrpc

简介 在上一篇文章中我们介绍了 Go 标准库net/rpc的用法。在默认情况下,rpc库内部使用gob格式传输数据。我们仿造gob的编解码器实现了一个json格式的。实际上标准库net/rpc/jsonrcp中已有实现。本文是对上一篇文章的补充。 快速使用 标准库无需安装。 首先是服务端,使用net/rpc/jsonrpc之后,我们就不用自己去编写json的编解码器了: package main import ( "log" "net" "net/rpc" "net/rpc/jsonrpc" ) type Args struct { A, B int } type Arith int func (t *Arith) Multiply(args *Args, reply *int) error...阅读全文

博文 2020-05-11 22:32:47 darjun