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

Golang 下的微服务 - 第 10 部分 - 总结

一路走来,多么奇妙的一段旅程啊!完成这些文章花了好几个月的时间。第一篇文章发布于 2017 年底,现在 2018 年已经过去快一半了,我才刚刚在写本系列最后一篇文章。 写这一系列文章花费了我不少时间和精力。对我来说这是一个令人生畏的任务,首先是因为我对各部分知识只是有个大概的了解,其实,写这些文章的部分初衷也是想提高我对相关知识的理解,同时也想得到社区的反馈,没有比得到社区的认可更棒的事情了。在写作过程中,我学到了很多,和很多又酷又聪明的人进行了讨论,他们给了我很大帮助。其次,这一系列文章涉及的范围很广,涵盖了实现微服务的各个阶段以及如何部署,其中用到了许多不同的技术,比如数据库、服用提供者、最佳实践等等,这是我所做的工作中最困难的一个。 不过除了这些,我也学到了比想象中多得多的东西,我很高...阅读全文

博文 2018-07-09 14:17:05 jettyhan

go邮件列表问题记录1

(GO邮件列表问题记录1) How can i get a struct size? go获取结构体大小的方法 encoding/binary.Size can only report the encoded size under very strict circumstances. You probably want something like unsafe.Sizeof The reflect.Type.Size() can’t calculate slice struct. 这里提问的人结构体就是一个普通的head+data结构的报文,想通过socket发送,需要获取长度,但是data结构中有slice数据。 有人提议用reflect.Type.Size(),但是这个方法无法获得sl...阅读全文

博文 2016-05-14 01:00:08 qq_15437667

阿里高可用架构团队招新(应届生,社招都收)

团队介绍: 高可用架构团队是阿里巴巴保障稳定性的护航舰队,提供的高可用架构基础设施直面双11洪峰流量,包括全链路压测、容量规划、准入控制、限流降级、流量调度等;通过攻防演练、环境隔离、业务对账等常态稳定性保障技术,提前暴露风险,低成本发现系统隐患;通过同城双活、异地多活、单元化体系建设,支撑阿里巴巴电商链路的分钟级故障切换,保证业务稳定运行。 目前团队的技术,已经通过开源和商业化渠道进行外部输出。开源框架包括Sentinel、ChaosBlade,商业化产品包括PTS、AHAS,帮助云原生用户低成本提升高可用能力。 如果对纯技术感兴趣,可以直接成为顶级开源项目的核心开发。 如果对技术结合实际场景感兴趣, 可以深度参与多个高可用领域系统的建设, 一起探索世界独一无二复杂高并发的双十一高可用、A...阅读全文

博文 2019-06-28 22:32:38 MageekChiu

golang项目邮件发送模块代码分享

package sendMail import ( "fmt" "net/smtp" "strings" ) type senderInfo struct { User string `jsob:user` Passwd string `json:passwd` Host_port string `json:host_port` Mailaddr string `json:mailaddr` Subject string `json:subject` } func (self *senderInfo) SendMail(toList, body string) error { head := fmt.Sprintf("To: %v\r\nSubject: %v\r\nContent-Type...阅读全文

博文 2016-03-25 00:00:02 fyxichen

go语言网站管理

Go语言官方网站: http://golang.orgGo语言最新进展可看 http://code.google.com/p/go/Go资料整理:http://github.com/wonderfo/wonderfogo/wikiGo邮件组的地址 http://groups.google.com/group/golang-nuts [English讨论的形式]http://groups.google.com/group/golang-china [Chinese]http://groups.google.com/group/ecu...阅读全文

博文 2017-06-28 08:07:21 qianqian缘

依据 smtp协议的简单golang 的发邮件实现

依据 smtp协议的简单golang 的发邮件实现 协议格式如下 From:sender_user@demo.net To:to_user@demo.net Subject:这是主题 Mime-Version:1.0 //通常是1.0 Content-Type:Multipart/mixed;Boundary="THIS_IS_BOUNDARY_JUST_MAKE_YOURS" //boundary为分界字符,跟http传文件时类似 Date:当前时间 --THIS_IS_BOUNDARY_JUST_MAKE_YOURS //boundary前边需要加上连接符 -- , 首部和第一个boundary之间有两个空行 Content-Type:text/plain;chart-set=utf-8...阅读全文

博文 2016-09-11 05:00:00 linecheng

(go邮件列表问题记录2)

(go邮件列表问题记录2) Compiling error when using struct literal in for loop 编译问题,代码如下,注释内的即编译错误的代码 package main import "fmt" type T struct { Field int } func (t T) Next() T { return T{t.Field+1} } func main() { /* Got error at next for statement: prog.go:14: syntax error: unexpected { at end of statement prog.go:17: syntax error: non-declaration statement ...阅读全文

博文 2016-05-28 01:00:04 qq_15437667

ACM Queue 顶级论文:厘清关于区块链、比特币的所有误区

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 当前,对于区块链,大部分人都存在些许在基本认知维度的误区,譬如直接将区块链等同于比特币、所有 ICO 都是骗局等,即使是对技术人而言,都还没搞清楚区块链的代码和算法,更遑论涉及到实际场景应用的实践。日前,国际计算机学会期刊 ACM Queue 发表论文,追本溯源,对比特币及其底层技术 —— 区块链的技术栈进行了系统的梳理和论证,由此发现,比特币的几乎所有技术组成部分都源于 20 世纪 80、90 年代的学术文献,如分布式账本和拜占庭协议,便可追溯到 20 多年前,这不是任何突破,只是学术文献中长期被遗忘的解决方案。ACM Queue 的文章中指出:“这不是为了削减中本聪的成就,而是指出他其实是站在巨人的肩膀上。实...阅读全文

Docker for Mac尝鲜

之前作为Docker beta的第一批用户获得了beta的授权,但是因为邮件进了垃圾邮件,所以一直没有发现。今天给Docker发邮件申请beta测试才知道已经通过了,赶紧尝鲜起来。如果你没有权限,可以尝试到Docker Beta申请测试资格。 测试版本可能存在风险,请自行判断。 安装之前 Docker for Mac需要一些前置要求,官方文档提供的数据如下: 2010年之后的Intel Mac机型,支持MMU(Memory Management Unit)虚拟化、EPT(Extended Page Table)等特性 OSX 10.10.3以上系统 至少4GB内存 VirtualBox 4.x与Docker for Mac冲突,因此如果你安装这个系列的Virtualbox需要卸载。 如果之前...阅读全文

博文 2017-02-10 15:41:16 kevin

Golang使用gomail发送邮件

使用gomail发送邮件 下载gomail包:go get gopkg.in/gomail.v2 import ( "gopkg.in/gomail.v2" ) const ( // 邮件服务器地址 MAIL_HOST = "smtp.126.com" // 端口 MAIL_PORT = 465 // 发送邮件用户账号 MAIL_USER = "username@126.com" // 授权密码 MAIL_PWD = "" ) func SendMail(mailAddress []string, subject string, body string) error { m := gomail.NewMessage() // 这种方式可以添加别名,即“126 mail”, 也可以直接用阅读全文

博文 2020-04-07 15:32:45 是个懒人

依据 smtp协议的简单golang 的发邮件实现

依据 smtp协议的简单golang 的发邮件实现协议格式如下 From:sender_user@demo.netbr/>To:to_user@demo.netSubject:这是主题Mime-Version:1.0 //通常是1.0Content-Type:Multipart/mixed;Boundary="THIS_IS_BOUNDARY_JUST_MAKE_YOURS" //boundary为分界字符,跟http传文件时类似Date:当前时间 --THIS_IS_BOUNDARY_JUST_MAKE_YOURS //boundary前边需要加上连接符 -- , 首部和第一个boundary之间有两个空行Content-Type:text/plain;chart-set=utf-8//单...阅读全文

博文 2019-05-26 20:35:40 云发G25295678

golang 发送邮件(不带附件)

package main import ( "log" "net/smtp" "flag" "fmt" "strings" ) var ( subject = flag.String("s","","subject of the mail") body = flag.String("b", "", "body of email") reciMail = flag.String("m","","recipient mail address") ) func main(){ flag.Parse() sub := fmt.Sprintf("subject: %s\r\n\r\n",*subject) content := *body mailList := strings.Split(*reci...阅读全文

博文 2015-12-22 05:00:01 u011363248

订阅通知 | 我的代码没有else

嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。 本系列文章主要采用如下结构: 什么是「XX设计模式」? 什么真实业务场景可以使用「XX设计模式」? 怎么用「XX设计模式」? 虽然本文的题目叫做“订阅通知”,但是呢,本文却主要介绍「观察者模式」如何在真实业务场景中使用。是不是有些不理解?解释下: 原因一,「观察者模式」其实看起来像“订阅通知” 原因二,“订阅通知”更容易被理解 什么是「观察者模式」? 观察者观察被观察者,被观察者通知观察者 我们用“订阅通知”翻译下「观察者模式」的概念,结果: “订阅者订阅主题,主题通知订阅者” 是不是容易理解多了,我们再来拆解下这句话,得到: 两个对象 被观察者 -> ...阅读全文

博文 2020-04-12 18:32:43 TIGERB

技术

本指南中所谓的服务器被入侵或者说被黑了的意思,是指未经授权的人或程序为了自己的目的登录到服务器上去并使用其计算资源,通常会产生不好的影响。 免责声明:若你的服务器被类似 NSA 这样的国家机关或者某个犯罪集团入侵,那么你并不会注意到有任何问题,这些技术也无法发觉他们的存在。 然而,大多数被攻破的服务器都是被类似自动攻击程序这样的程序或者类似“脚本小子”这样的廉价攻击者,以及蠢蛋罪犯所入侵的。 这类攻击者会在访问服务器的同时滥用服务器资源,并且不怎么会采取措施来隐藏他们正在做的事情。 被入侵服务器的症状 当服务器被没有经验攻击者或者自动攻击程序入侵了的话,他们往往会消耗 100% 的资源。他们可能消耗 CPU 资源来进行数字货币的采矿或者发送垃圾邮件,也可能消耗带宽来发动 DoS 攻击。 因此...阅读全文

博文 2017-12-14 05:58:42 如何判断 Linux 服务器是否被入侵?

golang发邮件

由于go默认tls.Config{ServerName: host, InsecureSkipVerify: false}, func TestHtmlEmail(t *testing.T) { opt := &EmailOptions{ User: "", Password: "", To: []string{""}, From: "", Addr: "smtp.xxx.com:25", } auth := NewLoginAuth(opt.User, opt.Password) pic, err := ioutil.ReadFile(`C:\Pictures\example.png`) if err != nil { t.Log(err) } dest := make([]byte, b...阅读全文

博文 2017-03-09 08:01:01 u22b

订阅通知 | 我的代码没有else

嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。 本系列文章主要采用如下结构: 什么是「XX设计模式」? 什么真实业务场景可以使用「XX设计模式」? 怎么用「XX设计模式」? 虽然本文的题目叫做“订阅通知”,但是呢,本文却主要介绍「观察者模式」如何在真实业务场景中使用。是不是有些不理解?解释下: 原因一,「观察者模式」其实看起来像“订阅通知” 原因二,“订阅通知”更容易被理解 什么是「观察者模式」? 观察者观察被观察者,被观察者通知观察者 我们用“订阅通知”翻译下「观察者模式」的概念,结果: “订阅者订阅主题,主题通知订阅者” 是不是容易理解多了,我们再来拆解下这句话,得到: 两个对象 被观察者 -> ...阅读全文

博文 2020-04-12 18:34:25 TIGERB

Sendcloud 邮件 API 的 Go 封装Go Sendcloud

这是一个 Sendcloud 邮件发送服务的 Go 语言封装包,可利用它在 Go 程序中通过 Sendcloud 发送邮件。 对 [SendCloud](http://sendcloud.sohu.com) 发送邮件 API 的封装,现已将 API 接口切换到了 v2 版本,如果想使用 v1 版本的 API,请 Checkout v1 Tag。 v2 版本新功能: 1、模板管理(添加、删除、更新、获取) 2、地址列表管理(添加、删除、更新、获取) 3、地址列表成员管理(添加、删除、更新、获取) 4、邮件发送(模板发送、地址列表发送、附件支持) 使用方法如下: 设置 API 信息: 发送邮件: 返回数据说明...阅读全文

GoLang邮件发送Demo(继上篇msmtp)

GoLang越来越被看好,流行只是时间的问题了,闲暇时间玩玩Go。 下面是发送邮件的demo,替换自己的邮箱,完全可以正常跑起来,用的是net/smtp包: package main import ( "fmt" "net/smtp" "strings" ) func SendToMail(user, password, host, to, subject, body, mailtype string) error { hp := strings.Split(host, ":") auth := smtp.PlainAuth("", user, password, hp[0]) var content_type string if mailtype == "html" { content_t...阅读全文

博文 2017-11-07 01:00:01 purelightme

go语言嵌套类型的使用细节

1. 定义 在Go语言中,嵌套类型是将已有的类型直接声明在新的结构类型里。被嵌入的类型被称为新的外部类型的内部类型。 通过嵌入类型,与内部类型相关的成员变量会提升到外部类型上。就好像这些成员变量直接声明在外部类型一样。如下图所示: 外部类型可以通过声明与内部类型成员变量同名的成员变量来覆盖内部类型的成员变量。如下图所示: 2. 嵌套类型的基本使用 package main import "fmt" // 自定义类型 type userInfo struct { name string email string } // 自定义类型 type client struct { userInfo // 嵌入类型 level string } // 定义user指针类型调用的方法 func (u *...阅读全文

博文 2020-01-15 16:32:41 lioney

Angular 2

一年前写的文字,当时还在 偶数科技实习。记录了技术栈和学习过程。 由于我司老板钦定了前端使用Bootstrap、Angular,后端使用GoLang。我们也只好硬着头皮上。GoLang半个月前刚了解大概,就直接上马写了Monitor process和RESTful service。前几天jQuery和Bootstrap也才大概了解。就剩下Angular这个框架让人很疑惑。最开始我是跟着官网的教程一步一步来的,大概只跟了一个section就放弃了。代码编译错误不知道怎么解决,quickstart一点也不for beginner。后来Eason又找了一些AngularJS和Angular的教程,Angular JS由于是快要淘汰的产品,我就没有看,那个Angular的教程又太老了,与现在的技术落...阅读全文

博文 2018-12-25 21:34:42 SaltSoup

golang发送邮件

SSL协议发送邮件的方法 package utils import ( "crypto/tls" "fmt" "log" "net/smtp" "strings" ) const Email_User = "*******@163.com" const Email_Password = "***********" const Email_Host = "smtp.163.com" const Email_Port = "465" const Email_Name = "测试" const Email_Subject = "测试验证码" type Mail struct { senderId string toIds []string subject string body string } ...阅读全文

博文 2019-03-05 14:35:09 万年小学生

密码管理EasyPass开发笔记(第2篇)

EasyPass的后端框架 EasyPass采用golang作为后端语言。作为近今年比较火爆的语言,golang以它的高并发和开发快吸引了一大批优秀的开发者,EasyPass也正是看中了它的简洁、高效和高性能。后端存储EasyPass采用mongo,mongo是nosql的佼佼者,支持各种复杂的查询,特别是4.0支持了事务后,发展迅猛。 EasyPass的后端主要负责加密数据的存储,架构也是相对简单,如下所示: EasyPass后端架构图 网关层负责借口的限流和鉴权,业务层是具体业务逻辑,底层存储是用的mongodb。 EasyPass的表结构 用户的每一个密码对于mongodb里的一条数据,具体的数据结构如下所示: { "id": "数据的ID", "account": "数据所有者的帐号...阅读全文

博文 2018-10-03 09:34:41 zhongxuqi

G3.1 Go语言正则表达式应用实例

实际应用中,通过灵活组合正则表达式的各种用法,可以实现非常复杂和实用的功能,本节将简单介绍一些常见或典型的应用实例* 注:注意先要导入包github.com/topxeq/goexamples/tools(方法是执行命令go get -v github.com/topxeq/goexamples/tools),如果不用该包,文中代码内的 t.Printfln相当于fmt.Printf加上一个“\n”。-> 匹配中文正则表达式中匹配中文可以根据中文字符的Unicode范围来进行匹配,中文在Unicode编码中的范围是十六进制的4E00至9FA5,在正则表达式中可以用“[\u4E00-\u9FA5]”的范围表达形式来表示。需要特别注意的是,当使用类似“\u4E00”这种表达形式时,不可以用反引号...阅读全文

博文 2020-02-17 20:32:49 陆满庭

开源API测试工具 Hitchhiker v0.5更新 - 完善细节

Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Api。 详细介绍请看: http://doc.hitchhiker-api.com/cn/introduction.html 在线体验: http://www.hitchhiker-api.com/, 可以用 try without login 来免登录使用 (在线演示不支持压力测试和上传js,虚拟机单核的,撑不住)。 下面来看看这次的更新: request和setRequest Script 增加属性request来得到请求的信息,包括 method, url, headers, body。 c...阅读全文

博文 2017-11-30 00:04:39 布鲁克石

[系列] - go-gin-api 路由中间件 - 捕获异常(四)

概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 日志记录,这篇文章咱们分享:路由中间件 - 捕获异常。当系统发生异常时,提示 “系统异常,请联系管理员!”,同时并发送 panic 告警邮件。 什么是异常? 在 Go 中异常就是 panic,它是在程序运行的时候抛出的,当 panic 抛出之后,如果在程序里没有添加任何保护措施的话,控制台就会在打印出 panic 的详细情况,然后终止运行。 我们可以将 panic 分为两种: 一种是有意抛出的,比如, panic("自定义的 panic 信息") 输出: 2019/09/10 20:25:27 http: panic serving [::1]:61547: 自定义的 panic 信息 goroutine 8 [running]: ...阅读全文

博文 2019-09-11 13:02:39 新亮

[系列] - go-gin-api 路由中间件 - 捕获异常(四)

概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - 日志记录,这篇文章咱们分享:路由中间件 - 捕获异常。当系统发生异常时,提示 “系统异常,请联系管理员!”,同时并发送 panic 告警邮件。 什么是异常? 在 Go 中异常就是 panic,它是在程序运行的时候抛出的,当 panic 抛出之后,如果在程序里没有添加任何保护措施的话,控制台就会在打印出 panic 的详细情况,然后终止运行。 我们可以将 panic 分为两种: 一种是有意抛出的,比如, panic("自定义的 panic 信息") 复制代码输出: 2019/09/10 20:25:27 http: panic serving [::1]:61547: 自定义的 panic 信息 goroutine 8 [runnin...阅读全文

博文 2019-09-11 13:04:20 訢亮

实际编程中变量如何定义,才能是的垃圾回收更高效?

gpl这本书中这段话应该如何理解? 2.3.4 LIFETIME OF VARIABLES
... ...
Garbage collection is a tremendous help in writing correct programs, but it does not relieve you of the burden of thinking about memory. You don’t need to explicitly allocate and free memory, but to write efficient programs you still need to be aware of the lifetime of variables. Fo...阅读全文