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

Elasticsearch系列(三) 实时同步mysql数据到Elasticsearch

mysql 作为成熟稳定的数据持久化解决方案,广泛地应用在各种领域,但是在数据分析、全文检索方面稍有不足,而 elasticsearch 作为数据分析领域的佼佼者,刚好可以弥补这项不足,而我们要做的只需要将 mysql 中的数据同步到 elasticsearch 中即可,今天介绍使用logstash将mysql数据全量导出到es,使用go-mysql-elasticsearch将mysql实时同步到es。 添加mysql测试数据 SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for `movies` -- ----------------------...阅读全文

博文 2020-05-26 23:32:48 费墨c

阿里云专家为你解读安全管家服务

课程介绍 阿里云安全管家服务是阿里云安全专家基于阿里云多年安全最佳实践经验为云上用户提供的全方位安全技术和咨询服务,为云上用户建立和持续优化云安全防御体系,保障用户业务安全。 阿里云应急响应服务能够在您的系统遭受黑客攻击时提供快速、专业的应急处理,包括入侵行为排查、病毒木马查杀、入侵原因分析、入侵影响评估等;能够帮助客户正确应对黑客攻击,降低攻击带来的安全损失。 产品详情:https://www.aliyun.com/product/sos/ 课时列表 • 课时1:安全管家服务规格介绍 • 课时2:基础巡检功能介绍 • 课时3:如何使用应急响应服务 开始学习http://click.aliyun.com/m/27864/ ...阅读全文

golang 进程出现too many open files的排查过程

1. 现象 服务的cpu跑满(golang实现), 并大量报too many open files错误.服务使用systemd来运行,部署在阿里ecs上. 2.分析 从日志来看,cpu的上升主要为到达文件数限制引起的,但之前已经更改过系统的文件数及所有用户的文件数,按道理是不应该出现这个问题的,后来查阅资料发现,文件数可以从三个维度限制分别为操作系统限制,用户态限制,以及进程限制,对于这三个维度选取最小值生效.于是对系统进行分析. 首先查看当前打开文件数, 进程占用的文件数并不多. lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 然后获取系统级文件数限制 输入命令cat /etc/sysctl.conf得到fs.file-max = 1...阅读全文

博文 2016-10-11 09:00:11 u010511236

我做了一个霸气侧漏的极客专属版万圣节南瓜机器人!

万圣节就要到了,极客、程序员们如何玩转万圣节?先来一个错误示范: ![alt text]( https://is.golangtc.com/upload/image/15824c31bd6711e7b35900163e0090de.jpg) emmmm....确实,指望装扮搞怪在“妖魔鬼怪”横行的万圣节上取胜,显然不是我们这种技术人员的强项,所以我们公司的程序员决定发挥他们的特长,定制一个捣蛋南瓜——一个炫酷的万圣节南瓜机器人,也是世界上第一只“糖果”驱动型 HEXA。 这个“南瓜”机器人不仅可以点亮糖果( LED 灯带),还能凶猛决断地移动,耍起萌来也是无敌。操作它去要糖果,本公司程序员大概能得到 1 年份的脂肪储备粮库了。 **“南瓜”机器人视...阅读全文

从小立志当“司机”,却阴差阳错成为了阿里云PD

摘要: 五四青年节马上就要到了,受云栖社区邀请,来分享下自己的成长故事。 每个人都有每个人的成长故事,或惊涛骇浪,或一马平川。但是无论是平淡还是精彩,那都属于我们自己。 不是每个人都有立功立德立言的机遇,但是每个人都可以努力成为最好的自己。 “不是每个人都有立功立德立言的机遇,但是每个人都可以努力成为最好的自己” 曾经,我只想当一个公交车司机 很多人小时候都有成为超级英雄的梦想,不过我没有。 我小时候的梦想是成为一名公交车司机,因为公交车能坐很多人,能拉着七大姑八大姨一起逛北京城。 是的,我小时候的理想很淳朴。 现在,我是一个阿里云弹性计算的产品经理,就是业界熟知的ECS。 成长在教师家庭的烦恼 20世纪80年代,我出生在一个普通的教师...阅读全文

gomoblie flappy 源码分析:游戏逻辑

本文主要讨论游戏规则逻辑,具体绘制技术请参看相关文章: gomoblie flappy 源码分析:图片素材和大小的处理 http://www.cnblogs.com/ghj1976/p/5222289.html 绘制时间间隔控制 绘制是按照 60 FPS 的节奏绘制的(即每秒钟 60 帧), FPS : frames per second(帧率) 代码中的控制注意是通过 golang.org/x/mobile/exp/sprite/clock 下的 Time 控制的。 Time实际是 int32 的别名 type Time int32 应用程序初始化好,可以开始绘图时 这个值初始化成 FPS 的时间间隔。 这里 now 计算的是到现在为止, 有多少个 1/60 秒(time for 60 F...阅读全文

博文 2016-03-05 16:00:05 ghj1976

go语言:Eclipse与LiteIDE之间路径问题

今天做文件操作的时候,发现了一个路径问题. 当我在使用相对路径进行文件操作时(之前项目是用Eclipse写的),使用"./"得到的路径是基于GoPath的当前路径. 当我今天换成LiteIDE的时候,项目报错了.提示找不到文件,很纳闷找了半天,排查了半天发现,LiteIDE使用"./"是获取当前运行程序所在的当前路径. 与Eclipse环境恰恰相反...阅读全文

博文 2015-06-17 23:07:43 x369201170

11.蛤蟆笔记go语言——内存分配器

11.蛤蟆笔记go语言——内存分配器 内存分配器,又叫做MemoryAllocator. 核心:自主管理,缓存复用,无锁分配。 内存管理以页为基本单位,多个地址连续页构成内存块。 页是page, 连续页是span. 按 8 倍数,将小对象分成多种大小规格。size class. 三级管理机构 三级管理机构如下图1: 算法依赖连续地址,预留较大地址空间。如下图2: 按页保存 span指针。 反查 object 所属 span。 检查相邻 span 是否可合并。 快速分配,按需扩张。 如下图3: 垃圾回收 垃圾回收器引发回收操作。如下图4: 为管理对象分配内存,不占用预留地址 图5...阅读全文

博文 2016-06-19 23:00:01 notbaron

记录golang初始化mysql连接失败问题

package mysql import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) var ( db *sql.DB err error ) func init() { db, err = sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/database?charset=utf8") if err != nil { panic(err.Error()) } db.SetMaxOpenConns(1000) err = db.Ping() if err != nil { fmt.Println("Failed to connect to mysql, err:" ...阅读全文

博文 2019-03-31 18:34:38 莫夏_b560

golang 服务大量 CLOSE_WAIT 故障排查

事故经过 排查 总结 事故经过 【2019-12-27 18:00 周五】业务方突然找来说调用我们程序大量提示“触发限流”,但是我们没有收到任何监控报警。紧急查看了下 ServiceMesh sidecar 代理监控发现流量持续在减少,但是监控中没有任何触发限流的 http code 429 占比,如果有触发限流我们会收到报警。 后来通过排查是程序中有一个历史限流逻辑触发了,但是程序中触发限流返回的 http code 是 200,这就完全避开了 sidecar http code 非200 异常指标监控报警。把代码中的限流阈值调了非常大的一个值,统一走 sidecar 限流为准。 猜测本次触发限流可能跟网路抖动有关系,网络抖动导致连接持续被占用,最终 qps 超过限流阈值。因为这个程序最近...阅读全文

博文 2020-01-26 23:33:41 王清培

golang template使用自定义函数

golang template使用自定义函数 需求来源是这样的:如何拿到一个slice的最后一个元素 在模版里面,我们可以获取slice的任意元素,只要给定下标即可,例如: package main import ( "os" "log" "text/template" ) const templateText = ` Friends : {{.Friends}} 1st Friend : {{index .Friends 0}} 2nd Friend : {{index .Friends 1}} 3rd Friend : {{index .Friends 2}} ` func main() { type Recipient struct { Name string Friends []st...阅读全文

博文 2020-03-01 15:32:45 CodingCode

开发与测试的抉择

当我初入职场时,加入的是一家创业公司,做了一名python后台开发。记得那时候团队人力不足,一切的一切都是以完成任务为第一要务,彼时的我们,高歌猛进,连续加班也不觉得累,那时的我,是有激情的,开发上自由度比较大,一切受限于当时的认知水平,完成即可。 image.png 测试?测试与开发比例为1:6(可能比这个还夸张),而且他们还要兼顾ios、android、运营后台台的测试任务,人力是严重不足的,很多时候,运营人员都充当测试的角色。这样的坏处就是上线前,总能发现很多bug, 于是,在我加入的第一个月,就经历了一次上线,一直到凌晨4点才勉强结束,心身俱疲。那时,我还没有认识到测试的重要性,可以说不怎么懂得软件工程这件事,很多时候,我们的上线都是粗糙进行,甚至不用测试,质量完全在于开发工程师的水...阅读全文

博文 2018-11-19 02:34:40 wu_sphinx

beego 1045错误

2018/06/07 16:16:14 INFO ▶ 0001 Using 'myapp' as 'appname' 2018/06/07 16:16:14 INFO ▶ 0002 Initializing watcher... 2018/06/07 16:16:38 SUCCESS ▶ 0003 Built Successfully! 2018/06/07 16:16:38 INFO ▶ 0004 Restarting 'myapp'... 2018/06/07 16:16:38 SUCCESS ▶ 0005 './myapp' is running... [ORM]2018/06/07 16:16:38 register db Ping `def...阅读全文

折半查找算法的变形情况; 前后端各自有序,整体无序

``` package main import ( "fmt" ) // 一分为2, 肯定有一半是有序的 func BinarySearchDef(data []int, key int, low int, high int) int { if len(data) == 0 { return -1 } // 先找有序的一半,然后判定时候在该范围内, 注意临界值 for low <= high { mid := low + (high-low)/2 fmt.Println(mid) fmt.Println(data[mid]) if key == data[mid] { return mid } // 如果 key 比中间值小 if key < data[mid] { if key == da...阅读全文

博文 2018-06-29 15:00:00 wcz3043

golang程序问题处理经验

1.在做内存问题相关的 profiling 时: 若 gc 相关函数占用异常,可重点排查对象数量 解决速度问题(CPU占用)时,关注对象数量( --inuse/alloc_objects )指标 解决内存占用问题时,关注分配空间( --inuse/alloc_space )指标 inuse 代表当前时刻的内存情况,alloc 代表从从程序启动到当前时刻累计的内存情况,一般情况下看 inuse 指标更重要一些,但某些时候两张图对比着看也能有些意外发现。 2.在日常 golang 编码时: 参数类型要检查,尤其是 sql 参数要检查(低级错误) 传递struct尽量使用指针,减少复制和内存占用消耗(尤其对于赋值给interface,会分配到堆上,额外增加gc消耗) 尽量不使用循环引用,除非逻辑真...阅读全文

博文 2019-08-03 22:32:39 凯文不上班