自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 docker+jenkins+github实现golang项目自动部署

本文jenkins部署golang项目流程jenkins服务拉取github上的项目构建golang项目并生成docker镜像[jenkins调用的是宿主机上的docker环境,如何调用的,后面会说明]启动golang项目的docker镜像docker的安装这里就不说了docker安装jenkinsMakefilerun: docker run \ -u root \ -d...

2020-03-11 15:10:49 1991 1

原创 golang 用数组实现环形队列的方法

什么是队列队列是一种常用的数据结构,这种结构保证了数据是按照“先进先出”的原则进行操作的,即最先进去的元素也是最先出来的元素.环形队列是一种特殊的队列结构,保证了元素也是先进先出的,但与一般队列的区别是,他们是环形的,即队列头部的上个元素是队列尾部,通常是容纳元素数固定的一个闭环。环形队列的优点保证元素是先进先出的元素空间可以重复利用环形队列设的特征队首(head)与队尾(tai...

2020-03-10 14:50:11 496

原创 mysql事务隔离级别详解

数据库事务数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。性质原子性:事务中的所有操作要么全部提交成功,要么全部失败回滚。一致性:几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。隔离性:一个事务所做的修改在提交之...

2020-03-09 15:22:11 205

转载 Golang解决TCP粘包拆包问题

什么是粘包问题最近在使用Golang编写Socket层,发现有时候接收端会一次读到多个数据包的问题。于是通过查阅资料,发现这个就是传说中的TCP粘包问题。下面通过编写代码来重现这个问题:服务端代码 server/main.gofunc main() { l, err := net.Listen("tcp", ":4044") if err != nil { panic(e...

2020-03-08 21:06:08 1857

转载 golang写的IM服务器(tcp,websocket,grpc)

本文转载:https://github.com/alberliu/gim简要介绍gim是一个即时通讯服务器,代码全部使用golang完成。主要功能1.支持tcp,websocket接入2.离线消息同步3.多业务接入4.单用户多设备同时在线5.单聊,群聊,以及超大群聊天场景6.支持服务水平扩展使用技术:数据库:Mysql+Redis通讯框架:Grpc长连接通讯协议:Pro...

2020-03-08 20:33:54 3871

转载 基于rabbitmq实现的延时队列(golang版)

虽然 rabbitmq 没有延时队列的功能,但是稍微变动一下也是可以实现的实现延时队列的基本要素存在一个倒计时机制:Time To Live(TTL)当到达时间点的时候会触发一个发送消息的事件:Dead Letter Exchanges(DLX)      ~~~~~~     ...

2020-03-08 20:20:46 1404 2

原创 golang 如何通过unsafe.Pointer uintptr来实现string与byte互转

主要是对unsafe.Pointer uintptr的一个应用实例,顺便了解golang的string与slice底层是怎样实现的func Str2bytes(s string) []byte { x := (*[2]uintptr)(unsafe.Pointer(&s)) h := [3]uintptr{x[0], x[1], x[1]} return *(*[]byte)(...

2020-03-07 20:02:57 1606

转载 Go unsafe.Pointer uintptr原理和玩法

本文转至:https://www.cnblogs.com/sunsky303/p/11820500.htmlunsafe.Pointer这个类型比较重要,它是实现定位和读写的内存的基础,Go runtime大量使用它。官方文档对该类型有四个重要描述:(1)任何类型的指针都可以被转化为Pointer(2)Pointer可以被转化为任何类型的指针(3)uintptr可以被转化为Poin...

2020-03-06 14:47:00 502

原创 golang nsq消费者时间过长,防止与nsqd服务断开连接

在使用nsq消费时,发现如果HandleMessage方法执行时间超过2分钟,在此方法运行完后,就会 抛出 IO error - EOF 错误。测试发现,当超过2分钟时,nsqadmin 后台显示的节点未连接。在查看github Issues时,有人提出过,于是做了测试,发现一切正常。(在实际开发中,不建议把慢执行放在消费服务里,因为HandleMessage方法不执行完,是不会消费下一个队列消...

2020-03-04 13:56:08 939

原创 laravel 服务容器bind与上下文绑定的一个应用实例

laravel 服务容器是一个用于管理类的依赖和执行依赖注入的强大工具。其实就是一个超强IoC与DI工具。下面是laravel服务容器的一个bind与上下文绑定的实现。interface IUser{ public function getModel();}class Model{ public $name;}class Man implements IUs...

2020-03-04 13:54:58 1390

转载 Laravel 创建自己的 Facade

博客原文:Laravel 创建自己的 Facade前言laravel 提供了一个灵活的模式,那就是 facade 。框架内部的 DB、Auth、File 等功能也有相关的 facade 实现。那么,该如何写自己的 facade 呢?Facade 是什么?首先,facade 并不是 laravel 独有的东西,它就是设计模式中的外观模式(Facade)。当然,这里就不长篇大论去讨论外观...

2020-03-04 13:54:01 662

转载 热重启golang服务器(graceful restart golang http server)

原文:热重启golang服务器(graceful restart golang http server)服务端代码经常需要升级,对于线上系统的升级常用的做法是,通过前端的负载均衡(如nginx)来保证升级时至少有一个服务可用,依次(灰度)升级。而另一种更方便的方法是在应用上做热重启,直接升级应用而不停服务。原理热重启的原理非常简单,但是涉及到一些系统调用以及父子进程之间文件句柄的传递...

2020-03-04 13:51:52 837

原创 laravel Scout使用elasticsearch搜索引擎

Laravel Scout 是针对Eloquent 模型开发的一个简单的,基于驱动的全文检索系统。Scout 使用模型观察者时会自动保持你的检索索引与你的 Eloquent 记录同步。目前,Scout 带着一个Algolia驱动;然而,扩展 Scout 并不难,你可以通过自定义驱动来自由的扩展 Scout。Scout的使用请看文档Scout 全文搜索docker安装elasticsearc...

2020-03-04 13:50:32 1350

原创 logstash把mysql数据导入es所需配置

logstash conf的output内容output { if [type]=="bbs" { elasticsearch { hosts => ["http://es.service:9200"] user => "" password =&gt...

2020-03-04 13:49:15 724

原创 golang通过结构体的继承、重写封装的一个高复用的公用查询

前言在golang开发中会发现,没有泛型会写大量重复代码,例如:对数据库表分页查询时,大多情况是表名不同,查询条件与查询字段不同,正常情况下,就得写多份重叠代码。本文主要是对过结构体继承(其实是组合),模拟泛型(用interface类型),来封装业务层的公用查询逻辑。其中会用到gorm查询时不固定定条件查询,可以看我另一篇博文go语言对gorm不固定条件查询封装思路既然要公用,那就得...

2020-03-04 13:40:29 1858

原创 golang 解析html时把url转绝对路径

golang 解析html时把url转绝对路径在golang解析html时,常遇到img、a标签的资源地址为相对路径[…/,./]的情况,这时就需要一个方法把这些地址转换为绝对路径。// 返回url的绝对地址// currUrl 当前urlfunc absUrl(currUrl, baseUrl string) string { urlInfo, err := url.Parse(c...

2020-02-25 18:26:46 971 1

原创 laravel版本DB,EloquentORM不固定条件查询封装

支持DB与ORM的来构建查询。DB构建sql语句已在多个项目中使用,ORM是才加入的,没有经过太多测试。where条件构建说明参数: [“字段名”,“操作符”,“查询值”,“与前一个条件的关系[默认and]”] 与db的where方法一致1.如果是等于,可以省略"操作符" : [“username”, “chen”] 或 [“username”,"=" , “chen”]2.大于:...

2019-12-18 21:13:49 642

原创 go语言对gorm不固定条件查询封装

主要对gorm不定条件查询数据时的一个封装【灵感来于laravel项目中对db的封装laravel版本DB,EloquentORM不固定条件查询封装】封装方法在 app/models/entity/Gorm.go文件里条件说明[“字段名”,“操作符”,“查询值”,“与前一个条件的关系[默认and]”] \1.如果是等于,可以省略"操作符" : []interface{}{“user...

2019-12-18 21:10:41 3546 2

absinthe-win-2.0

刚从网上下载的。。。ios5.1.1越狱软件。

2012-05-25

JQuery帮助文档及实例

不错的JQuery帮助文档,里面还有很多实例特效.

2011-09-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除