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

golang 记录函数执行耗时的一个简单方法。

先写一个公共函数, 比如在 common 包下有这么一个方法: // 写超时警告日志 通用方法func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) { dis := time.Now().Sub(start).Seconds() if dis > timeLimit { log.Warning(log.CENTER_COMMON_WARNING, tag, " detailed:", detailed, "TimeoutWarning using", dis, "s") //pubstr := fmt.Sprintf("%s count %v, using %f seconds", tag,...阅读全文

博文 2015-01-29 03:00:02 ghj1976

filebeat_config 介绍

title: filebeat config date: 2017-06-11 03:22:31 categories: elk tags: filebeat Filebeat Prospector filebeat.prospectors: - input_type: log paths: - /var/log/apache/httpd-*.log document_type: apache - input_type: log paths: - /var/log/messages - /var/log/*.log Filebeat Options input_type: log|stdin 指定输入类型 paths 支持基本的正则,所有golang glob都支持,支持/var/log/*...阅读全文

博文 2017-06-11 04:07:11 budongshu

Go-Switch 81-20518-A4

GSR GSR-K05-10390\DN20 (304不锈钢,法兰安装,介质为水,常温,压力1.6MPa) 电磁阀Motorola SE955-I105R Danotherm CBH 165C 5R0 800 电阻(充电电阻) Danotherm CBH 165 C H 5R0 800HURNER-FUNKEN HF R 200-17 D TURCK Ni20-CP40-VP4X2/S110 10-65VDC,200MA turck 15099 NI20-CP40-VP4X2/S110stauff FT-R-A-6-H-2-10(220cst) HONSBERG HD2KO-015-GM015-FLEX-(I+K) 带四芯插头 (220CST) Honsberg 958766 HD2KO-0...阅读全文

博文 2019-07-11 10:03:22 wx5d22d810e0c92

年中记录与挖坑

记录李航大佬说过(原文链接) 计算机上达到和人同等的对话能力还非常困难。现在的技术,一般是数据驱动,基于机器学习的。 单轮对话有基于分析的,基于检索的,基于生成的方法。 好吧, 我也感觉基于检索的是low的, 但是现在各家智能音箱貌似都没有突破这个坎. 大家听到的siri的b-box, 背后是一个无聊的逗逼程序员; 小爱同学的惊人语录, 写语料也许是一群抠脚大汉. 这半年的工作, 主要集中在开发一个基于检索的语义理解平台, 最近几天刚刚完成了第三版的进化. 初代目 去年年底, 刚来这里接手这项工作的时候, 老大给我的架构是简单的纯检索, 基于ES, 把事先编好的模板写到搜索引擎里. 每次收到前台请求, 将asr获得的文本扔到ES里搜, 一开始模板量比较少的时候, 分类效果挺不错的, 甚至还有...阅读全文

博文 2018-09-01 16:35:00 MashoO

微服务组件之限流器与熔断器

在微服务架构里面一个很常见的问题就是服务之间的延迟和通信失败问题,极端的情况下,甚至会因为某个服务的性能下降或者故障宕机,导致访问超时,层层传递,引发雪崩,最终导致整个系统崩溃,而限流器和熔断器(这两个组件都是客户端的)能很好的解决这个问题,提高系统的可靠性和稳定性 限流器 限流器,从字面上理解就是用来限制流量,有时候流量突增(可预期的比如“双11”,不可预期的微博的热门话题等),会将后端服务压垮,甚至直接宕机,使用限流器能限制访问后端的流量,起到一个保护作用,被限制的流量,可以根据具体的业务逻辑去处理,直接返回错误或者返回默认值等等 golang 提供了拓展库(golang.org/x/time/rate)提供了限流器组件,用法上也很简单直观,通过下面这段代码就可以创建一个限流器 // 每...阅读全文

博文 2018-06-21 18:34:39 hatlonely

我们是如何让服务器从30台缩减到2台的:从Ruby迁移到Go语言 (转)

我们开发第一版的IronWorker已经是3年前的事了,是用Ruby写的,API基于Rails开发。我们没用多久就发展成了相当大的规模,很快我们就触及到了Ruby程序的承载上限。长话短说,我们切换到了Go语言,请接着读下去,下面是事情如何一步步发展的。 最初的设计 首先,做一点背景介绍:我们开发的第一版IronWorker,起初叫做SimpleWorker(很不错的名称,不是吗?),用的是Ruby。我们过去是一个顾问公司,为其它公司开发应用,在当时有两个东西被炒得非常火:亚马逊的Web Services和Ruby on Rails。所以我们开发的应用都基于AWS的Ruby on Rails架构,并因此吸引了不少大客户。我们开发IronWorker的初衷是来源我们自身的需求。我们有不少做硬件设...阅读全文

博文 2014-10-13 00:00:03 mummywho

如何写出优雅的代码?

一段代码的作者的责任不应该仅仅是把代码写出来,测试上线。还应该包含完整的单元测试,经过代码复查,并进而上线运行发挥作用。 要想让团队开发成员开发的代码有质量保障,肯定需要制定完整的代码编写规范。 除此之外,代码审查也是必不可少的步骤和过程。代码审查主要的检查内容排在第一位的应该是代码的清晰度。因为代码清晰度解决了我们在获取新代码时遇到的问题。而代码审查的目的也非常的明确: - 确保代码完成了应该完成的功能 - 确保代码将来在别人接手时能够容易维护。 如果要想写出优雅漂亮易读性高的代码,还是有一些方法可以遵循的,比如说: - 制定统一的团队编码规范并严格遵守。 - 将对象命名为名词,将方法命名为动词。 - 变量名称起名字应该做到见名知意。 - 不要在方法命名中加入名词,方法名以动词命名为主。 ...阅读全文

博文 2019-04-10 17:40:57 qfhanru

游戏服务器架构系列 - 网关限流

为什么要进行网关限流?在前面我们介绍的游戏服务端架构中,客户端通过Socket连接直连网关,所有请求都需要经过网关,然后由网关统一进行转发,为了避免玩家的DDOS攻击,所以需要在网关进行限流。常见的算法主要有计数器限流、令牌桶限流和漏桶限流,这些算法都是单机的算法,正好可以用在网关限流。算法1、计数器限流严格意义上来说计数器限流不属于限流算法,使用计数器来进行限流,主要用来限制总并发数,比如数据库连接数;只要全局总请求数或者一定时间段的总请求数设定的阀值则进行限流,是简单粗暴的总数量限流,而不是平均速率限流。2、令牌桶算法(Token Bucket)令牌桶算法是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌。令牌桶算法的描述如下:假设限制1秒钟生成2个令牌,则按照500毫秒的固定速率往...阅读全文

博文 2018-10-30 11:34:42 MaxwellGames

微服务组件之限流器与熔断器

在微服务架构里面一个很常见的问题就是服务之间的延迟和通信失败问题,极端的情况下,甚至会因为某个服务的性能下降或者故障宕机,导致访问超时,层层传递,引发雪崩,最终导致整个系统崩溃,而限流器和熔断器(这两个组件都是客户端的)能很好的解决这个问题,提高系统的可靠性和稳定性 限流器 限流器,从字面上理解就是用来限制流量,有时候流量突增(可预期的比如“双11”,不可预期的微博的热门话题等),会将后端服务压垮,甚至直接宕机,使用限流器能限制访问后端的流量,起到一个保护作用,被限制的流量,可以根据具体的业务逻辑去处理,直接返回错误或者返回默认值等等 golang 提供了拓展库(golang.org/x/time/rate)提供了限流器组件,用法上也很简单直观,通过下面这段代码就可以创建一个限流器 // 每...阅读全文

博文 2018-06-21 16:34:47 hatlonely

golang的gc流程

一 经典的GC算法 引用计数(reference counting) 标记-清扫(mark & sweep) 复制收集(Copy and Collection) 二 标记-清扫(mark & sweep)算法 golang的gc算法主要是基于标记-清扫(mark & sweep)算法,在了解go的gc先了解一下传统的标记-清扫(mark & sweep)算法。 这个算法有2个操作 标记 清除 mark and sweep算法在执行的时候,需要程序暂停( stop the world ),大致的步骤是: stop the world 暂停程序执行 找到root根对象可以到达的对象做好标记 清除没有做标记的对象 start the world 开始程序执行 三 golang的清除流程 (三色并发...阅读全文

EOS账户权限

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 账户和权限钱包账户授权和权限其他默认账户配置(单个签名)多签名账户和自定义权限帐户是存储在区块链中的人类可读标识符。 每个交易都根据配置的帐户权限对其权限进行评估。 每个已命名的权限都有一个阈值,必须满足该权限下签署的交易才能被视为有效的阈值。 交易 通过使用已经安装和解锁钱包的客户端来签署。 钱包是保护和利用你的密钥的软件。 这些密 钥可能授权也可能不授权区块链上的账户权限。 钱包钱包是一个存储可能与账户有关的密匙的客户端。通常情况下,钱包有锁定和解锁两种状态并通过 一个高熵密码保护。EOSIO/eos库有一个名为cleos的命令行界面客户端,它与一个名为keosd的 lite客户端进行交互,并且共同展示了钱包...阅读全文

博文 2019-09-16 11:02:50 链客

BMIP002协议介绍

比原BMIP002协议 概述 比原链技术社区最近提出了一套资产规范提议,该提议允许在issue类型的交易中实现标准资产token。该标准定义资产在链上的基本功能,以及发行人通过智能合约管理资产的规范。 功能 资产是一种可以在区块链上发行的价值,给定资产的的所有单位都是可替代的。 每个资产都有全球唯一的资产ID,该资产ID来自发行程序和资产定义,发行程序通常定义一组可能的签名秘钥和阀值数量的签名,这些签名必需被提供以授权发布资产的新单元。 资产定义由提交给区块链的任意键值数据组成,提供所有参与者查看。 该标准为用户提供了一种发行资产的简单方法。它允许任何满足Bytom标准的token很容易被其他应用程序支持:比如钱包,区块链浏览器,到交易所。 一个例子是商家可以在很短的时间内在他们的商业应用中...阅读全文

博文 2019-04-23 16:34:45 比原链Bytom