07 2020 档案

unrolled/render 集成Masterminds/sprig 增强模版处理
摘要:Masterminds/sprig 是一个强大的golang 模版函数,以下是一个unrolled/render 集成Masterminds/sprig 的简单demo 环境准备 go.mod module github.com/rongfengliang/renameio-app ​ go 1.1 阅读全文

posted @ 2020-07-29 23:27 荣锋亮 阅读(574) 评论(0) 推荐(0) 编辑

haproxy dataplaneapi golang sdk 简单使用
摘要:前边有简单说过基于go-swagger 生成haproxy dataplaneapi api 以下一个简单说明 环境准备 docker-compose 文件 version: "3" services: grafana: image: grafana/grafana ports: - "3000:3 阅读全文

posted @ 2020-07-28 21:54 荣锋亮 阅读(575) 评论(0) 推荐(0) 编辑

haproxy dataplaneapi golang sdk 说明
摘要:因为haproxy 的dataplaneapi 提供了完整的swagger 描述,我们可以基于swagger 代码生成工具,生成各种语言的 sdk,以下是关于golang 的一个说明 工具 基于go-swagger 安装(可以基于构建好的以及brew) 命令 注意推荐使用go mod 模式 swag 阅读全文

posted @ 2020-07-28 00:01 荣锋亮 阅读(368) 评论(0) 推荐(0) 编辑

基于openresty进行 query string 重写
摘要:主要目前很简单就是移除nginx request 中的query_string,因为rewrite 阶段处理的是uri ,不包含query_string,但是rewrite 会保持 原query_string ,我们可以通过args 变量重写,当然也可以基于openresty 的 ngx.req.s 阅读全文

posted @ 2020-07-27 23:21 荣锋亮 阅读(1374) 评论(0) 推荐(0) 编辑

使用指针解决golang 零值序列化问题
摘要:很多时候我们基于golang编写数据库操作的时候需要进行零值的处理,一般我们的数据操作都是基于orm 以及tag处理的 所以零值就是一个比较费事的事情了,如果业务对于零值有关联操作那么我们就需要处理,如果不关联就不处理。 如果了解aws golang 的sdk 的化,处理的就比较好,全部通过指针操作 阅读全文

posted @ 2020-07-26 10:35 荣锋亮 阅读(948) 评论(0) 推荐(0) 编辑

jsonx 基于json 创建react 组件
摘要:jsonx 是一个不错的工具包,我们可以用来方便的创建react 的组件,是不个很不错就有json 开发web引用的选择工具 一个demo 具体index.web.js可以在官方的dist 目录找到 <!DOCTYPE html> <html lang="en"> <head> <meta char 阅读全文

posted @ 2020-07-25 14:49 荣锋亮 阅读(574) 评论(0) 推荐(0) 编辑

json parse 解析js function
摘要:前边有简单介绍过基于json-fn 解析处理json function 的,以下是一个整理 json.parse 的签名 JSON.parse(str, reviver) 解决说明 我们可以基于reviver 处理function 处理的方法 通过evel 以及Function 对象 参考方法 re 阅读全文

posted @ 2020-07-25 14:11 荣锋亮 阅读(853) 评论(0) 推荐(0) 编辑

通过json 响应添加js function 增强业务灵活程度
摘要:直接在服务器的response中包含js 已经是比较常见的功能了,但是从业务角度,缺少灵活性,我们需要加载时候同时解析 基于模块快的加载机制是一个不错的选择(amd,cmd 都是不错的选择,类似的工具也很多),或者通过类型转换,比如json object 到claas 这样我们也就能操作业务数据了, 阅读全文

posted @ 2020-07-25 12:45 荣锋亮 阅读(760) 评论(0) 推荐(0) 编辑

使用vfsgen 嵌入静态资源到golang
摘要:vfsgen 是一个很不错的golang 静态资源嵌入工具包,使用简单,功能强大,以下是一个简单的使用 环境准备 docker-compose 文件 主要是方便构建以及运行 version: "3" services: app: build: ./ image: dalongrong/vfsgen- 阅读全文

posted @ 2020-07-24 15:00 荣锋亮 阅读(896) 评论(0) 推荐(0) 编辑

一些很不错的golang 静态资源嵌入工具包
摘要:整理一些不错的golang静态资源嵌入工具包 参考链接 github.com/alecthomas/gobundle github.com/GeertJohan/go.rice github.com/go-playground/statics github.com/gobuffalo/packr g 阅读全文

posted @ 2020-07-24 09:43 荣锋亮 阅读(439) 评论(0) 推荐(0) 编辑

Go command support for embedded static assets (files)
摘要:转自:https://go.googlesource.com/proposal/+/master/design/draft-embed.md golang 要内置资源嵌入了 Go command support for embedded static assets (files) — Draft D 阅读全文

posted @ 2020-07-24 09:16 荣锋亮 阅读(359) 评论(0) 推荐(0) 编辑

使用ClassGraph 读取webjars 资源文件的内容
摘要:webjars 是很方便,方式很多时候我们也需要读取内容,ClassGraph 是一个高效的classpath 以及模块扫描器 如果查看了webjars 提供的webjars-locator 内部实现也是基于此工具的,但是weebjars 默认提供的功能缺少 内容读取的能力,我们可以基于ClassG 阅读全文

posted @ 2020-07-23 20:51 荣锋亮 阅读(1226) 评论(0) 推荐(0) 编辑

itextpdf FormField 生成pdf修改字体大小
摘要:使用itextpdf FormField 生成pdf 的时候我们很多时候都需要指定字体的大小,以下是一个简单的说明 注意:使用的测试版本为 5.5.3 修改字体的方法 参考代码 public static void fillData(AcroFields fields, Map<String, St 阅读全文

posted @ 2020-07-22 19:10 荣锋亮 阅读(4693) 评论(0) 推荐(0) 编辑

itextpdf 修改pdf文件元数据信息
摘要:我们基于FormField 生成pdf 使用了pdfescape 的一个服务,而且默认生成的pdf 文件元数据信息包含了pdfescape的信息,我们可以通过 PdfStamper 对象修改pdf 的一些信息 参考代码 这个是一个很简单的demo,实际可以结合业务自己调整 package com.d 阅读全文

posted @ 2020-07-22 19:06 荣锋亮 阅读(1356) 评论(0) 推荐(0) 编辑

itextpdf FormField 生成pdf 文件(包含中文以及图片处理)
摘要:很常见的一个功能,基于pdf 的AcroFields 提供的模版的能力,通过数据填充生成新的pdf 文档,对于图片的处理基于 PdfContentByte (一个强大的内容处理对象) 模版制作 一般大家的做法可以直接基于word 然后导出为pdf,然后通过pdf pro 工具,制作AcroField 阅读全文

posted @ 2020-07-22 10:23 荣锋亮 阅读(3313) 评论(0) 推荐(0) 编辑

flamescope+s3-fuse 扩展动态分析能力
摘要:flamescope 是一个比较强大的火焰图查看工具,但是默认是基于本地文件系统的,但是很多时候我们为了方便查看信息需要使用共享文件系统 nfs 是一个不错的选择,但是不方便分发,s3 很不错,灵活而且我们可以灵活的进行perf 文件的分发,以下代码是集成 flamescope+s3-fuseDoc 阅读全文

posted @ 2020-07-21 17:42 荣锋亮 阅读(365) 评论(0) 推荐(0) 编辑

使用buildpack-deps 构建自己的容器镜像
摘要:buildpack-deps 是docker hub 官方提供的一个构建类似heroku stack 镜像的工具包,如果自己看的话,好多docker 官方的基础镜像都基于此基础镜像 进行构建的,buildpack-deps 已经提供了好多内置好多依赖库,可以简化我们的镜像部署,同时官方也提供了deb 阅读全文

posted @ 2020-07-21 10:50 荣锋亮 阅读(2978) 评论(0) 推荐(0) 编辑

基于容器构建golang静态连接应用
摘要:以下是一个学习关于cgo 编译为静态链接的学习以及记录 参考代码 main.go package main ​ import "fmt" ​ /* int add(int a,int b) {return a + b;} */ import "C" ​ func main() { for { fmt 阅读全文

posted @ 2020-07-21 10:22 荣锋亮 阅读(405) 评论(0) 推荐(0) 编辑

Linking golang statically
摘要:转自:https://blog.hashbangbash.com/2014/04/linking-golang-statically/ 在学习goreplay 构建的时候找到的一篇不错的文章,可能有点比较早了 If you are not familiar with Golang, do take 阅读全文

posted @ 2020-07-21 09:22 荣锋亮 阅读(429) 评论(0) 推荐(0) 编辑

openresty + gor+minio 集成
摘要:以前有写过简单的容器集成,以下是关于s3集成的,主要是测试数据的捕捉以及回放 参考流程 简单说明 gor 与openresty 部署在一起,为了方便基于supervisord 管理,默认已经开启请求捕捉(80端口),同时supervisord集成了管理,可以通过ui操作是否捕捉 对于捕捉的数据存储在 阅读全文

posted @ 2020-07-20 11:34 荣锋亮 阅读(688) 评论(0) 推荐(0) 编辑

openresty docker 镜像集成gor
摘要:openresty 是一个很不错的nginx 增强版本,以下是openresty 集成gor 的尝试 问题 很多时候我们会基于nginx(openresty) 进行接口的代理,但是我们需要获取请求信息,同时进行回放 解决 gor 是一个很不错的工具,但是我们希望能够进行控制(按需数据捕捉)所以我使用 阅读全文

posted @ 2020-07-19 23:36 荣锋亮 阅读(695) 评论(0) 推荐(0) 编辑

goreplay v1.1.0 支持pro特性docker 镜像
摘要:goreplay v1.1.0 的发布,已经将pro 特性合并到社区版本了(使用了不同的license),所以修改了部分代码,方便测试使用 同时制作了一个docker 镜像 注意主要是为了测试使用,生产环境推荐购买pro license dokerfile 构建说明 需要的代码参考以前的文章 首先需 阅读全文

posted @ 2020-07-19 23:21 荣锋亮 阅读(638) 评论(0) 推荐(0) 编辑

编译goreplay v1.1.0 minio 集成支持
摘要:goreplay 默认对于minio s3 的支持不是很好,所以修改了关于s3 的部分代码,可以方便的集成minio 需要修改的代码 注意pro 特性也是需要修改的 s3_reader.go 修改的不好,实际应该走环境变量 func awsConfig() *aws.Config { region 阅读全文

posted @ 2020-07-19 21:08 荣锋亮 阅读(355) 评论(0) 推荐(0) 编辑

编译goreplay v1.1.0 支持二进制协议捕捉
摘要:goreplay v1.1.0 将pro 的代码合并到了社区版本中(使用了不同的许可协议) 以下是修改配置,进行pg 数据协议的捕捉 编译pro 特性的代码 clone 代码 git clone https://github.com/buger/goreplay.git 修改代码支持pro 特性 修 阅读全文

posted @ 2020-07-19 12:33 荣锋亮 阅读(545) 评论(0) 推荐(0) 编辑

goreplay v1.1.0 发布
摘要:goreplay 在半个月之前发布了,有好多提升,同时pro 的代码也移到主代码仓库了(使用了不同的license) 如果需要试用pro 的功能可以自己修改代码,编译一个版本 修改修改的代码为 pro.go var PRO = true 这样我们就可以体验以下tcp 二进制协议的处理了,看看代码也不 阅读全文

posted @ 2020-07-19 11:55 荣锋亮 阅读(221) 评论(0) 推荐(0) 编辑

super-expressive 可以基于js 直接编写正则
摘要:super-expressive 是一个很不错的js library,可以简化正则的编写(因为好多人都会正则还是比较陌生的) 说明 super-expressive 是一个很不错的库,对于不台会正则的是一个很不错的选择,我们可以基于编程的模式进行正则处理 加速基于正则应用开发的速度 参考资料 htt 阅读全文

posted @ 2020-07-18 21:36 荣锋亮 阅读(621) 评论(0) 推荐(0) 编辑

monio 的一些安全实践
摘要:这个本来属于s3 的特性,但是我们在实际使用的过程中肯定不想别人直接可以通过浏览器或者http就可以可以我们的文件内容 这个属于安全的控制,以下是一个实践以及一些安全控制 一些原则 不能直接暴露minio 访问到公网环境(可以基于nginx,以及反向代理工具解决) 配置合理的bucket 策略,可以 阅读全文

posted @ 2020-07-18 21:15 荣锋亮 阅读(2572) 评论(0) 推荐(0) 编辑

minio+ nginx rewrite 实现saas租户的个性化管理
摘要:这个是一个基于minio+nginx的rewrite 实现的一个功能(类似micro frontend 模式) 参考架构 一张架构图 说明 因为当前大家主流的还是基于前后端分离的模式开发软件,组件+api 实现功能,但是很多时候好多租户对于功能有个性化需求,但是 系统在设计的时候因为时间问题+早期设 阅读全文

posted @ 2020-07-18 13:30 荣锋亮 阅读(1861) 评论(0) 推荐(1) 编辑

errors 一个很不错的golang 异常处理包
摘要:pkg/errors 是一个用的比较多,同时也比较灵活的一个golang 异常处理包,我们基于此包,可以灵活的处理软件开发中的异常 以下是一个简单的学习 项目准备 go.mod module github.com/rongfengliang/go-error ​ go 1.14 ​ require 阅读全文

posted @ 2020-07-17 21:10 荣锋亮 阅读(997) 评论(0) 推荐(0) 编辑

使用nginx limit_rate 解决用户下载限速
摘要:问题 最近有一个文件下载的服务,下载流量很大,我们的带宽有限,很多时候系统有很多人同时在下载文件 尽管客户端已经做了一些断点续传以及重试,但是在用户访问量较大的时候容易出现链接因为带宽问题被 关闭,造成用户文件下载失败次数比较多,因为文件偏大, 很多时候整个元数据块下载不完整,造成了很差 的用户体验 阅读全文

posted @ 2020-07-17 15:54 荣锋亮 阅读(4524) 评论(0) 推荐(0) 编辑

EdgeDB 1.0 Alpha 4 发布了
摘要:EdgeDB 一直是一个比较期待的数据库,目前发布了Alpha 4,对sdk 的支持以及cli 工具以及server 端的处理都有增强 详细可以参考官方介绍 https://edgedb.com/blog/edgedb-1-0-alpha-4-barnard-s-star/ https://gith 阅读全文

posted @ 2020-07-17 12:41 荣锋亮 阅读(228) 评论(0) 推荐(0) 编辑

静态文件请求路径 rewrite nginx && openresty 实现
摘要:一个很简单的需求,就是静态页面请求url 的rewrite 方便使用,类似mvc 的路由,不同的请求,对应到后边不同的website,但是是一个地址 作用:类似一种micro frontend 的一些部分功能实现,这样静态web site 就有了一个统一而且灵活的入口 ,比较适合sass,或者用户有 阅读全文

posted @ 2020-07-17 11:30 荣锋亮 阅读(1417) 评论(0) 推荐(0) 编辑

hazelcast-jet docker 运行试用
摘要:上次有简单写过关于潜入模式的使用,以下是一个使用server 模式基于docker-compose 运行的demo hazelcast-jet 参考架构 环境准备 docker-compose 包含了一个management (注意多实例管理需要license)同时添加了prometheus 支持 阅读全文

posted @ 2020-07-15 20:16 荣锋亮 阅读(487) 评论(0) 推荐(0) 编辑

hazelcast-jet 开源分布式流以及批处理框架
摘要:hazelcast-jet 是hazelcast 团队开源的分布式流以及批处理框架,相比一些其他流以及批处理框架来说,只需要依赖jar包(Siddhi 也是不错的选择) 当然hazelcast-jet 同时支持流处理以及批处理,其他的一些stream 处理的平台(工具)streamsets,apac 阅读全文

posted @ 2020-07-15 15:21 荣锋亮 阅读(2184) 评论(0) 推荐(0) 编辑

Easy Python Decompiler 一个很不错的python pyc 反编译工具
摘要:最近在分析一个问题,基于python 开发,但是编译为了pyc,其他语言也都有反编译工具的,所以搜了下,发现 Easy Python Decompiler 是一个很不错的工具,所以整理下 参考下载地址 https://sourceforge.net/projects/easypythondecomp 阅读全文

posted @ 2020-07-14 21:42 荣锋亮 阅读(7916) 评论(0) 推荐(1) 编辑

HAProxy Process Management
摘要:参考资料:https://www.haproxy.com/blog/haproxy-process-management In his HAProxyConf 2019 presentation, William Lallemand (Senior HAProxy Developer) shows 阅读全文

posted @ 2020-07-14 09:58 荣锋亮 阅读(311) 评论(0) 推荐(0) 编辑

pgx zombodb 团队开源的基于rust 开发pg扩展
摘要:pgx 一个可以使用rust 开发pg 扩展的工具,由zombodb开源,当前支持的pg 有10,11,12 还是很不错的 特性 使用了cargo 的子命令 (pgx) 包括进行编译,安装,以及测试(很不错) postgres 的Datum 对应rust 的 pgx::IntoDatum 以及pgx 阅读全文

posted @ 2020-07-14 09:33 荣锋亮 阅读(751) 评论(0) 推荐(0) 编辑

一些docker init 进程工具
摘要:对于docker 来说init 进程的管理很重要,以下是几个不错的选择 tini 参考资料https://github.com/krallin/tini dumb-init 参考资料https://github.com/Yelp/dumb-init docker 自己的init 启动的时候添加 -- 阅读全文

posted @ 2020-07-13 20:53 荣锋亮 阅读(1486) 评论(0) 推荐(0) 编辑

使用kardianos-service 创建golang开机自启动服务
摘要:开机自启动服务在实际的应用中还是比较多的,kardianos-service 是golang 的一个很不错的实现,我们增强我们 golang 应用的可管理性,以下是一个实践说明 基本使用 此代码比较简单 代码 package main ​ import ( "flag" "log" "time" ​ 阅读全文

posted @ 2020-07-12 11:54 荣锋亮 阅读(7141) 评论(3) 推荐(0) 编辑

graylog 测试环境服务
摘要:graylog 是一个很不错的日志系统,但是我们实际开发中,可能需要进行测试,但是直接部署一个graylog 可能有点太费事 (依赖es,mongo),有一个golang mock 服务的实现包 github.com/lintianzhi/graylogd 以下是一个demo server的构建以及 阅读全文

posted @ 2020-07-12 01:47 荣锋亮 阅读(713) 评论(0) 推荐(0) 编辑

记一次keepalived lvs 负载均衡异常的问题
摘要:属于一个线上的问题,就大概介绍下处理 背景 一个需要需要进行内外网流量的切分(基于dns)外部dns 解析到一个公网ip,然后公网ip 映射到内网的lvs vip 为了部署简单,内网流量以及外网流量使用了一套keepalived(dr 模式,够用了),不同业务流量的请求到vip 然后vip 转发到实 阅读全文

posted @ 2020-07-11 10:47 荣锋亮 阅读(834) 评论(0) 推荐(0) 编辑

go-bindata + hcl 集成
摘要:go-bindata 可以方便的将静态资源潜入到golang 应用中,hcl 是一个很不错的配置语言,以下是一个简单的集成,比较适合 配置基本不需要变动的 环境说明 一个简单的基于hcl 的job 配置定义,然后通过go-bindata 将配置合并,然后代码引用 job hcl 定义 // Job 阅读全文

posted @ 2020-07-08 20:20 荣锋亮 阅读(350) 评论(0) 推荐(0) 编辑

hcl v2 golang 使用的一个参考demo
摘要:代码内容来自hashcorp 公司的一个分享,此demo 里边的一些实践很不错,很值得参考(实际上consul,vault,packer,terroform。。。都是值得参考的) 代码结构 ├── README.md ├── go.mod ├── go.sum ├── ink.jpg ├── mai 阅读全文

posted @ 2020-07-06 13:11 荣锋亮 阅读(578) 评论(0) 推荐(0) 编辑

hcl v2 golang支持环境变量参考
摘要:以前写过简单的hcl 解析,以下是一个关于支持环境变量的处理 参考代码 go mod module gihub.com/rongfengliang/hclv2-learning ​ go 1.14 ​ require ( github.com/hashicorp/hcl/v2 v2.6.0 gith 阅读全文

posted @ 2020-07-05 22:48 荣锋亮 阅读(447) 评论(0) 推荐(0) 编辑

Mage 类似make&&rake 基于golang 的build 工具
摘要:Mage 是基于golang 开发的,类似make/rake 的工具,我们可以使用golang 代码编写类似make 的功能 以下是一个简单的使用 安装 go get -u -d github.com/magefile/mage 基本使用 代码 go mod init github.com/rong 阅读全文

posted @ 2020-07-05 12:55 荣锋亮 阅读(1705) 评论(0) 推荐(0) 编辑

sql 数据定时发送webhook golang 服务
摘要:目的很简单,主要是基于cron表达式定时获取sql 数据库数据(sql server,mysql,pg,clickhouse)同时通过webhook 发送到外部接口 几个需求说明 应该基于配置管理,而不是代码写死的 支持多数据库同时运行(减少运行的实例) 支持sql 数据的处理(对于不用webhoo 阅读全文

posted @ 2020-07-04 22:45 荣锋亮 阅读(533) 评论(0) 推荐(0) 编辑

hcl v2 golang使用参考
摘要:最新写的定时关系数据库数据处理的简单应用,使用到了hcl配置管理,目前官方推荐的是v2 以下是关于v2的参考使用 环境准备 项目准备 go mod init github.com/rongfengliang/hclv2 go get github.com/hashicorp/hcl/v2 代码 pa 阅读全文

posted @ 2020-07-04 18:01 荣锋亮 阅读(690) 评论(0) 推荐(0) 编辑

crystal-lang 学习二 macos openssl 问题
摘要:因为我的openssl 是使用brew 安装的,按照一般的解决方法是如下配置 注意我的是按照brew 安装的版本的提示 配置 export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" export CPPFLAGS="-I/usr/local/opt/ope 阅读全文

posted @ 2020-07-02 21:31 荣锋亮 阅读(355) 评论(0) 推荐(0) 编辑

几个不错的golang 应用升级以及平滑启动包
摘要:在日常的应用开发中我们我们很多时候都需要处理软件的升级以及滚动式升级,基于.net 应用clickonce 以及微软的updte框架都 是一个不错的选择对于nodejs 的electron我们有electron-updater ,同时好多桌面应用的开发也会设计自己的更新程序,以下是 关于golang 阅读全文

posted @ 2020-07-02 20:04 荣锋亮 阅读(3092) 评论(0) 推荐(0) 编辑

crystal-lang 学习一 安装基本环境
摘要:crystal-lang 是一个不错的小众语言,ruby 模式的编写,c 级别的性能,不好的地方是目前社区的标准库有点少 这篇主要介绍关于安装环境的 linux 安装(centos) 添加repo curl https://dist.crystal-lang.org/rpm/setup.sh | s 阅读全文

posted @ 2020-07-02 10:40 荣锋亮 阅读(513) 评论(0) 推荐(0) 编辑

amqproxy 一个很不错的rabbitmq proxy
摘要:amqproxy 是由cloudamqp公司开源的(此公司专门搞rabbitmq 服务的)开发基于crystal(一个小众语言,但是很不错), 同时今天也转了一片此公司的文章 https://www.cloudamqp.com/blog/2019-05-29-maintaining-long-liv 阅读全文

posted @ 2020-07-01 20:46 荣锋亮 阅读(1280) 评论(0) 推荐(0) 编辑

Maintaining Long-Lived Connections with AMQProxy
摘要:转自:https://www.cloudamqp.com/blog/2019-05-29-maintaining-long-lived-connections-with-AMQProxy.html Some applications cannot maintain long-lived connec 阅读全文

posted @ 2020-07-01 17:08 荣锋亮 阅读(371) 评论(0) 推荐(0) 编辑

bfe+kuma 进入cncf孵化
摘要:bfe 是百度开源的7层lb,基于golang编写,功能也很丰富,kuma 是kong 团队开源的service mesh 方案,不错的消息是 bfe 进入cncf 孵化了,统计kong 团队捐赠kuma 给了cncf,都是很不错的工具,对于kuma 以前有过简单的介绍,但是已经 更新了好多版本了, 阅读全文

posted @ 2020-07-01 09:05 荣锋亮 阅读(439) 评论(0) 推荐(0) 编辑

导航