golang-Trace链路跟踪实践 Posted on 2018-12-05 | In Golang , 分布式 Tracing 系统是监控的一个方面基础层面跟踪有很多工具是可以在 k8s 这种容器化环境里自动追踪到, 服务间的调用的. 甚至记录下一些性能相关的信息, 并生成链路的图表 Tracing 系统 侧重 ELK/EFK - 侧重 log Promethuse - 侧重 metrics Tracing ... Read more »
前端独立部署,最小docker化实践 Posted on 2018-10-30 | In Docker 前端容器化, 为了能够独立进行部署, 配备 nginxDockerfile这里利用 docker 的 MultiStage 特性,区分打包和生产镜像的 build.注意顺序,为了利用潜在的 cache 提高打包速度只把生成的 dist 内容放到 nginx 里面, 并且放入自己的 nginx 配置, ... Read more »
关于opener的安全小技巧 Posted on 2018-10-10 | In JS window.open() var window = window.open(url, windowName, [windowFeatures]); 本文主要针对 _blank的情况, 本文主要讲的就是 windowFeature 中的 noopener 当我们需要以另一个窗口的形式打开一个地 ... Read more »
CSS-Collections-Buttons-4 Posted on 2018-09-26 | In CSS Preview.underline–magical { background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%); background-repeat: no-repeat; background-size: 100 ... Read more »
CSS-Collections-Buttons-3 Posted on 2018-09-26 | In CSS Preview * { box-sizing: border-box; } .container { width: auto; margin: auto; } a { text-transform: uppercase; text-decoration: none; fo ... Read more »
CSS-Collections-Buttons-2 Posted on 2018-09-25 | In CSS Preview .demo-container { background-image: linear-gradient(-128deg, rgba(255, 181, 32, 0.93) 3%, rgba(239, 39, 153, 0.93) 88%, rgba(237, 18, 171, ... Read more »
CSS-Collections-Buttons-1 Posted on 2018-09-25 | In CSS Preview * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .buttons { margin: 10%; text-a ... Read more »
Etcd - 分布式配置中心2 - runtime切换配置 Posted on 2018-09-18 | In Golang , 分布式 简介背景接上一篇 Etcd - 分布式配置中心这里是使用 etcd 获取配置信息,后在程序中热切换配置的例子 代码调用流程 controllers package controllersimport ( "github.com/jinzhu/gorm" "vincent.com/iris-demo ... Read more »
Etcd - 分布式配置中心 Posted on 2018-09-14 | In Golang , 分布式 Etcd 简介Etcd 是一种分布式 kv 存储设施, 他具有一定的一致性,高性能,高可用的方案. 类似的 zookeeper, 但没有 zookeeper 那么重型,功能也没有覆盖那么多. 简单直接的应用就是配置中心 架构设计总览 clients 为多个需要 配置的服务, 中间层为 多个 gr ... Read more »
golang-uuidv1 Posted on 2018-09-12 | In Golang 源码解读 github.com/satori/go.uuid// NewV1 returns UUID based on current timestamp and MAC address.func (g *generator) NewV1() UUID { u := UUID{ ... Read more »