05 2017 档案
摘要:1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰。解决方案就是在网络传输上利用缓存技术使得Web服务数据流能
阅读全文
摘要:简易工厂主要是用来解决对象“创建”的问题。以下的例子取自《大话设计模式》中第一章,实现一个可扩展的“计算器”。当增加新的功能时,并不需改动原来已经实现的算法。由于是简易工厂,所以我们还是需要对工厂类进行相应修改。 1.首先,我们定义一个计算的接口 package calc type CalcSupe
阅读全文
摘要:模版模式真的是一个好东西。所谓模版模式,就是说,某几个类中相同的操作和代码提取到父类的一个函数中,并定义相同的操作为抽象函数。由子类来实现。估计我也没表达清楚,下面还是看代码来讲解吧。 例:我们有两个文档处理程序,一个处理本地数据,一个处理网络数据。这两个类的功能和执行步骤高度类似,但是,获取数据的
阅读全文
摘要:策略模式定义了算法家族,在调用算法家族的时候不感知算法的变化,客户也不会受到影响。 下面用《大话设计模式》中的一个实例进行改写。 例:超市中经常进行促销活动,促销活动的促销方法就是一个个策略,如“满一百减20”,“打八折”等。现在实现策略模式,用CashContext生产策略,并完成策略的调用。 1
阅读全文
摘要:之前一篇文章介绍过使用redigo连接redis数据库处理,在使用中发现如果初始化一条链接连接redis做相关操作,使用中发现当两个程序交替使用redis时,先前建立的链接会断掉,只能每次操作的时候重新建立链接,使用后关闭。后来发现redigo有一个连接池的功能,所以改用链接池处理 先介绍下链接池的
阅读全文
摘要:用go run *.go 或 go run one.go two.go main.go
阅读全文
摘要:socket.io是对websocket的封装以及扩展, 可以跨平台使用, 具体可看官网.. GO语言实现:
阅读全文
摘要:$ cd `dirname $0` 和PWD%/* shell变量的一些特殊用法 在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位
阅读全文
摘要:makefile很重要http://blog.csdn.NET/ruglcc/article/details/7814546 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序
阅读全文
摘要:大多数程序员都喜欢偷懒的,我也不例外.相信好多Android开发的coder 在网络http请求方面,会浪费很多时间在接口调试这里..有时候,自己写了一个小测试,行还好,不行的话,还要跟写后台的哥们一起扯扯蛋...于是自己就写了一个curl的小脚本,专门调试这方面的东西.(主要适用于用JSON的传输
阅读全文
摘要:原文链接: http://studygolang.com/wr?u=http%3a%2f%2ftonybai.com%2f2015%2f04%2f30%2fgo-and-https%2f 近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HT
阅读全文
摘要:这是我之前整理的InfluxDB安装及配置的笔记,这里记录下,也方便我以后查阅。 环境: CentOS6.5_x64 InfluxDB版本:1.1.0 一、安装 1、二进制安装 这里以centos6.5为例进行安装: 其它环境可以参考influxdb官方文档: https://www.influxd
阅读全文
摘要:特殊用法: http://blog.fatedier.com/2016/07/05/research-of-time-series-database-influxdb/ 创建表及表中的key和value: 数据库备份:
阅读全文
摘要:一个html5 WebSocket + JS的简单Echo例子,例子代码演示效果猛戳链接:websocket例子(打开页面,稍等一会) 使用一个文本编辑器,把下面代码复制保存在一个 websocket.html 文件中,然后只要在浏览器中打开它,页面就会使用 websocket 自动连接,发送一个消
阅读全文
摘要:折腾: 【已解决】go语言中实现log信息同时输出到文件和控制台(命令行) 期间,已经通过io的MultiWriter搞定了同时输出信息到文件和console,但是不支持level。 所以,再去试试这个log4go。 【折腾过程】 1.大概看了看,貌似功能很强大。 有点类似于之前的C#的NLog,为
阅读全文
摘要:“服务器推”技术的应用 请访问 Ajax 技术资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。 请访问 Ajax 技术资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛
阅读全文
摘要:前言一 很多搞 iOS 开发的同学都没有学过算法,有一些甚至没有学过数据结构。在很多人的观念中,算法和数据结构只是在面试的时候有用。 这些人的想法对吗?在我看来,也对,也不对。 对于 iOS 开发来说,大多数时候都不需要算法和数据结构知识,但是如果你了解了算法和数据结构知识,在一些关键时候,这些知识
阅读全文
摘要:引子 golang提供了goroutine快速实现并发编程,在实际环境中,如果goroutine中的代码要消耗大量资源时(CPU、内存、带宽等),我们就需要对程序限速,以防止goroutine将资源耗尽。以下面伪代码为例,看看goroutine如何拖垮一台DB。假设userList长度为10000,
阅读全文
摘要:摘要 类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关 注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是 因为interface类型作为一个特例,会有
阅读全文
摘要:树: https://suanfa.herokuapp.com/3%E6%A0%91/binarytree/ 数据结构 首先我们定义需要的数据结构。注意,TreeNode的左右节点都是*TreeNode type的,而树只有一个Root数据域,为*TreeNode type Insert 向二叉搜索
阅读全文
摘要:Go是很实在的编程语言,从一开始就提供了很详细的运行状态信息。产品上线后的调优和排查疑难杂症都得靠这些状态信息。这边总结一些我们项目里用到的状态监控手段。 pprof Go自带了一个pprof工具,这个工具可以做CPU和内存的profiling,官方的博客有一篇文章介绍用法:《Profiling G
阅读全文
摘要:godebug是一个跨平台的Go程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。 godebug使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。结果就是一个全功能的调试器,完全可以移植到不同平台。事实上,
阅读全文
摘要:不想看长篇大论的,这里先给个结论,go的gc还不完善但也不算不靠谱,关键看怎么用,尽量不要创建大量对象,也尽量不要频繁创建对象,这个道理其实在所有带gc的编程语言也都通用。 想知道如何提前预防和解决问题的,请耐心看下去。我们项目的服务端完全用Go语言开发的,游戏数据都放在内存中由go 管理。在上线测
阅读全文
摘要:16. 垂直分割 “垂直分割”是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数目,从而达到优化的目的。(以前,在银行做过项目,见过一张表有100多个字段,很恐怖) 示例一:在Users表中有一个字段是家庭地址,这个字段是可选字段,相比起,而且你在数据库操作的时候除了个人信息
阅读全文
摘要:12. Prepared Statements Prepared Statements很像存储过程,是一种运行在后台的SQL语句集合,我们可以从使用 prepared statements 获得很多好处,无论是性能问题还是安全问题。 Prepared Statements 可以检查一些你绑定好的变量
阅读全文
摘要:5. 在Join表的时候使用相当类型的例,并将其索引 如果你的应用程序有很多 JOIN 查询,你应该确认两个表中Join的字段是被建过索引的。这样,MySQL内部会启动为你优化Join的SQL语句的机制。 而且,这些被用来Join的字段,应该是相同的类型的。例如:如果你要把 DECIMAL 字段和一
阅读全文
摘要:今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优
阅读全文
摘要:版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7393134 链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开
阅读全文
摘要:版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子
阅读全文
摘要:【问题】 Thrift采用了C/S模型,不支持双向通信:client只能远程调用server端的RPC接口,但client端则没有RPC供server端调用,这意味着,client端能够主动与server端通信,但server端不能主动与client端通信而只能被动地对client端的请求作出应答。
阅读全文
摘要:https://book.open-falcon.org/zh/quick_install/graph_components.html
阅读全文
摘要:Thrift 简介: Thrift 是一款高性能、开源的 RPC 框架,产自 Facebook 后贡献给了 Apache,Thrift 囊括了整个 RPC 的上下游体系,自带序列化编译工具,因为 Thrift 采用的是二进制序列化,并且与 gRPC 一样使用的都是长连接建立 client 与 ser
阅读全文
摘要:一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布
阅读全文
摘要:runtime.Gosched()用于让出CPU时间片。这就像跑接力赛,A跑了一会碰到代码runtime.Gosched()就把接力棒交给B了,A歇着了,B继续跑。看代码: 123456789101112131415161718 package mainimport ( "fmt" "runtime
阅读全文
摘要:go中import用于导入包。导入之后就可以使用包中的代码。比如: 123 import( "fmt") 123 import( "fmt") 在代码中就可以使用fmt包中的方法,如: 1 fmt.Println("hello world") 1 fmt.Println("hello world")
阅读全文
摘要:如果不判断chan是否关闭 Notice: 以下代码会产生死循环 代码如下: package main import ( "fmt" ) func main() { c := make(chan int, 10) c <- 1 c <- 2 c <- 3 close(c) for { fmt.Pri
阅读全文
摘要:以centos系统为例,实现数据库自动备份。1、写一个shell: 12 #! /bin/bashmysqldump -cp --user=root --password='123' dbName | gzip > ~/db/dbName-`date +%Y%m%d%H`.sql.gz ; 12 #
阅读全文
摘要:Insertion:插入排序,每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 详细介绍见:http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.html Selection:选择排序,直接从待排序数组里选择一
阅读全文
摘要:Insertion:插入排序,每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 详细介绍见:http://www.cnblogs.com/kkun/archive/2011/11/23/2260265.html Selection:选择排序,直接从待排序数组里选择一
阅读全文
摘要:package main import "fmt" type Test struct { Name string } func change2(t *Test) { t.Name = "2" } func change3(t *Test) { // !! 这里的量尽然改了 //注意这里括号 //如果直接*t.Name=3 编译不通过 报错 in...
阅读全文
摘要:topic:一个可供订阅的话题。channel:属于topic的下一级,一个topic可以有多个channel。举个例子:topic:比做一个广播,如交通广播。打开收音机,你可以换很多频率,如果换到91.6MHZ,你就会听到交通广播,(我们这里交通广播是91.6)。相当于你订阅了“交通广播”这个to
阅读全文
摘要:问题: 当调试一个程序的时候,理想状态是不重启应用程序就获取core文件。 解决: gcore命令可以使用下面步骤来获取core文件: 1. 确认gdb软件包已经被正确安装。 2. 使用调试参数编译程序(例如: gcc中使用"-g"选项),编译后不要去除文件的调试符号信息。 3. 执行应用程序。 4
阅读全文
摘要:写一个错误的c程序 编译测试为可执行文件 这个是用于分析coredump的时候获得符号表使用的。 执行测试,获得coredump 如果找不到coredump的位置,执行之前先设置好coredump的写出条件 用gdb分析coredump 用 bt full 查看所有的frame 用 frame <n
阅读全文
摘要:socket.on("receive", function (data) { deviceone.print("返回的数据:"+data) // 发送异常 var array = parse.GetArray(data) for (var i = 0; i < array.length; i++) { var ip = par...
阅读全文
摘要:1、concat() 连接两个或更多的数组该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。例如: 代码如下: <script type="text/javascript"> var arr = [1, 2, 3]; var arr1 = [11, 22, 33]; document.wr
阅读全文
摘要:使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: 函数:Join() 功能:使用您选择的分隔符将一个数组合并为一个字符串 例子: 代码如下: var delimitedString=myArray.join(delim
阅读全文
摘要:JS 是一个很神奇的语言,内制的的很多函数可以帮我们进行数(进)制转换; JS中可以直接使用16进制; 将任意进制字符串转换为十进制,如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制; 代码如下: parseInt("11", 2); // 3 2进制转10进制 parseIn
阅读全文
摘要:安装minikube 安装kubectl 启动 问题 pod的status都在ContainerCreating,查看 出错部分log 解决问题 参考k8s初游: minikube启动docker镜像这篇文章的方法,这里我们用阿里的镜像 删除pod再观察下 这下变成running了 跑下demo 输
阅读全文
摘要:夏绪宏,今日头条架构师,专注对高性能大规模 Web 架构,云计算、性能优化、编程语言理论等方向,PHP committer,HHVM 项目贡献者。2009 加入百度,先后从事大规模 IDC 自运维设施建设、云计算平台的架构设计、贴吧业务性能优化、百度通用 RPC 设计和优化等。2015 年加入今日头
阅读全文
摘要:今天在netbeans中关闭webrick时,发现没有关闭掉,打入localhost:3000 依然显示页面,发现无法从nb中再次关闭只有进入ubuntu的进程下关闭查看进程:1, ps -e 2, feng@feng:~$ sudo netstat -antupActive Internet co
阅读全文
摘要:首先要开启redis服务, 然后就可以了.
阅读全文
摘要:使用Redis内置的配置进行启动 命令: redis-server & 使用Redis内置的配置进行启动 命令: redis-server & 2 看看启动情况 Output: 2403:M 08 Apr 19:34:32.505 # WARNING: The TCP backlog setting
阅读全文