golang+vue上传文件到oss

首先在控制台配置好oss bucket, 跨域允许, 获取access_key和access_secret OSS_END_POINT="oss-cn-hongkong.aliyuncs.com" OSS_ACCESS_KEY_ID="access_key" OSS_ACCESS_KEY_SECRET="access_secret" OSS_BUCKET="bucket_name" 后端接口 /upload/token 负责生成签名地址,这里选择前端拿到接口上传,方便显示上传进度 // rout...阅读全文

记录go-python微服务实践,希望能帮助需要的人

介绍 本文讲述如何使用 grpc,由 go 作为客户端,python 作为服务端进行通信。 (题外:一直迷惑于怎样让他们两个连起来,后来才发现只要对同一个proto文件进行编译就好了。。。😓) 实现功能 python 实现方法 f(name) ,返回 "hello "+name,由 go 调用得到返回值 安装配置 Go 个人配置是 go 1.12 ,使用 go mod 项目管理 因为有些包会被墙,所有要配置GOPROXY,我配置的是阿里的GOPROXY="https://mirrors.aliy...阅读全文

掘金 2019年11月22日 Tony乙

Golang学习笔记--Channel

如何定义使用 定义 每个通道都有与之关联的类型。此类型是允许通道传输的数据类型。不允许使用该通道传输其他类型的数据。 通道的零值为nil。零通道没有任何用处,因此必须使用类似于 map 和 slice 的make来定义。 package main import "fmt" func main() { var a chan int // 定义 channel if a == nil { fmt.Println("channel a is nil, going to define it") a = ...阅读全文

golang 关于rabbmitmq 的简易连接池

说明:网上找了一圈好像没有rabbmitmq连接池的维护比较好的包,索性按照整理出来的自己写了一个简易版的,希望各位大神继续完善,目前只是实现了连接的一部分,具体tabbmitmq 的操作 按照 amqp的说明操作即可这里有大部分的ampq的实例https://blog.csdn.net/lastsweetop/article/details/91038836 /*************************************************** * @Time : 201...阅读全文

Go语言中文网 2019-11-22 15:54:52 ccoding

Python 异步 IO(asyncio)、多进程、多线程性能对比

IO 密集型应用 IO 密集型应用CPU等待IO时间远大于CPU 自身运行时间,太浪费;常见的 IO 密集型业务包括:浏览器交互、磁盘请求、网络爬虫、数据库请求等 image.png Python 世界对于 IO 密集型场景的并发提升有 3 种方法:多进程、多线程、异步 IO(asyncio);理论上讲asyncio是性能最高的,原因如下: 1.进程、线程会有CPU上下文切换 2.进程、线程需要内核态和用户态的交互,性能开销大;而协程对内核透明的,只在用户态运行 3.进程、线程并不可以无限创建,...阅读全文

简书 2019-11-22 15:02:50

Golang测试

如何编写好的单元测试 单元测试主要有两个方面: 编写测试方法 编写可测试代码 编写单元测试方法 单元测试特定案例的方法 编写更好的单元测试的技巧 编写单元测试不仅仅是“assert(func()==expected)” 编写可测试代码 如何编写易于测试的代码,测试驱动开发、正确使用设计模式等 编写可以很好地测试的代码和编写好的单元测试一样重要 将现有代码重写为可测试代码虽然痛苦,但是是值得的 Go测试概述 测试一般使用标准库:testing 测试代码文件和正式代码文件应处于一个文件夹下,测试代码...阅读全文

使用scratch构建最小化Go程序的docker image

由于Golang编译之后的文件是二进制,而scratch是docker最基础的空image,所以可以使用scratch来构建Go程序的docker image,使得最终构建的image最小化. 构建image过程分为两步: 在Go基础image中build. 将build好的二进制文件拷贝到scratch image中。 无需cgo的程序 对于无需cgo交叉编译的程序,使用scratch来作为最终运行的基础image非常合适。 首先,选择合适版本的golang基础image来build,这里没有...阅读全文

[易学易懂系列|rustlang语言|零基础|快速入门|(1)]

今天我们来开一个新系列。从零学习rustlang。简单介绍下rustlang:Rust 是一门系统级编程语言,被设计为保证内存和线程安全,防止段错误产生。作为系统级编程语言,它的基本理念是“零开销抽象”。理论上来说,它的速度与 C/C++ 同级。Rust 可以被归为通用的、多范式、编译型的编程语言,类似C/C++。与这两门编程语言不同的是,Rust 是线程安全的!Rust编程语言的目标是,创建一个安全和并发的软件系统。它强调安全性、并发和内存控制。尽管 Rust 借用了 C/C++的语法,却杜绝...阅读全文

[易学易懂系列|rustlang语言|零基础|快速入门|(2)]

我们今天来配置下vscode+rust。vscode开发rust很方便。但配置有点坑,我们都认为vscode很简单,很完善。但这里很多同学也出现不少问题。我们在这里简单记录下win7下配置的过程,跟着我一步步来,应该就可打造你的屠龙宝刀。首先,我们安装插件:Rust Extension PackRust Test Explorer然后打开上一篇文章的工程:hello-rust,见:https://www.cnblogs.com/gyc567/p/11887935.html打开command pa...阅读全文

[易学易懂系列|rustlang语言|零基础|快速入门|(3)]

今天我们来讲讲rust最难,也是最重要的概念:Ownership,Borrowing,Lifetimes首先我们来看看:ownership(所有权)我们来看看下面的代码: let a = [1, 2, 3]; let b = a;println!("{:?} {:?}", a, b);// [1, 2, 3] [1, 2, 3] let a = vec![1, 2, 3]; let b = a;println!("{:?} {:?}", a, b);// Error; use of moved ...阅读全文

[易学易懂系列|rustlang语言|零基础|快速入门|(4)]

Borrowing继续讲讲另一个重要的概念:借用(borrowing),什么是借用?我们先来看前一文章([易学易懂系列|rustlang语言|零基础|快速入门|(3)])的代码 : let a = [1, 2, 3]; let b = a;println!("{:?} {:?}", a, b);// [1, 2, 3] [1, 2, 3] let a = vec![1, 2, 3]; let b = a;println!("{:?} {:?}", a, b);// Error; use of m...阅读全文

用 Go 重构 C 语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量

11 月 20 日,百度的万亿流量转发引擎 BFE 登上了 GitHub Trending Top 3,今日 Star 已突破 270。事实上,这个曾经抗住 2019 年春晚抢红包的转发引擎早已于 2019 年夏在 GitHub 上开源,今天突然再次引发关注,那我们不妨来回顾一下这个项目。 首先奉上 GitHub 开源地址:https://github.com/baidu/bfe,Apache 2.0 许可。集成四大功能,开源四大能力BFE(Baidu Front End,百度统一前端)是百度的...阅读全文

备战CKA每日一题——第1天 | CKA简介、考纲、Daemonset知识知识点初探

本活动在微信公众号【我的小碗汤】上举行,有送书活动!这里参与答题不能参与到送书活动哦! 这两年 Kubernetes 已经成为容器编排的事实标准,预计未来两年内将全面普及,现在企业招这块人才需求也越来越大,工资也是很高的,未来这块的发展空间也很大。 最近正准备备考CKA,CKA是什么?有些人可能还不知道,这里简单普及一下: CKA 证书是云原生计算基金会 CNCF 组织的,考察的是你是否具备足够管理 Kubernetes 集群的必备知识。考试形式是上机直接在集群上操作,限时 3 小时,非常考验个...阅读全文

备战CKA每日一题——第2天 | Daemonset、对接存储CSI知识点

本活动在微信公众号【我的小碗汤】上举行,有送书活动!这里参与答题不能参与到送书活动哦! 接上一篇备战CKA每日一题——第1天 昨日考题 以下 Daemonset yaml 中,哪些是正确的?(多选) A. apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd-elasticsearch namespace: default labels: k8s-app: fluentd-logging spec: selector: match...阅读全文

备战CKA每日一题——第3天 | 对接CSI存储知识

本活动在微信公众号【我的小碗汤】上举行,这里参与答题无效哦! 昨日考题 在Kubernetes PVC+PV体系下通过CSI实现的volume plugins动态创建pv到pv可被pod使用有哪些组件需要参与? A. PersistentVolumeController + CSI-Provisoner + CSI controller plugin B. AttachDetachController + CSI-Attacher + CSI controller plugin C. Kubel...阅读全文

后端开发人员的所需的技术路线图,看看哪些模块你还缺失?

欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 也欢迎关注我的公 众 号:Ccww笔记,原创内容第一时间推送!! 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 现在的 Web 开发与几年前完全不同了,有很多不同的东西可以轻易地把人拒之门外,这也是我们决定制作这个循序渐进指南的原因之一,并让任何人可以清楚地了解他们在 web 开发中扮演的角色。 可以在下面的图片中找到详细的路线图,而我也将在下面的描述中解释每一个步骤。 在开始之前,...阅读全文

备战CKA每日一题——第4天 | 熟练掌握kubectl命令进行创建资源对象操作,并从源码进行解析

本活动在微信公众号【我的小碗汤】上举行,有送书活动!这里参与答题不能参与到送书活动哦! 昨日考题 通过单个命令创建一个deployment并暴露Service。deployment和Service名称为cka-1120,使用nginx镜像, deployment拥有2个pod 昨日答案 [root@liabio ~]# kubectl run cka-1120 --replicas 2 --expose=true --port=80 --image=nginx kubectl run --gen...阅读全文