InfluxDB 高可用

influxdb 开源版本不支持集群模式,社区开源的方案有多种,本文主要介绍官方提供的高可用方案 influxdb-relay

架构图

        ┌─────────────────┐                 
        │writes & queries │                 
        └─────────────────┘                 
                 │                          
                 ▼                          
         ┌───────────────┐                  
         │               │                  
┌────────│ Load Balancer │─────────┐        
│        │               │         │        
│        └──────┬─┬──────┘         │        
│               │ │                │        
│               │ │                │        
│        ┌──────┘ └────────┐       │        
│        │ ┌─────────────┐ │       │┌──────┐
│        │ │/write or UDP│ │       ││/query│
│        ▼ └─────────────┘ ▼       │└──────┘
│  ┌──────────┐      ┌──────────┐  │        
│  │ InfluxDB │      │ InfluxDB │  │        
│  │ Relay    │      │ Relay    │  │        
│  └──┬────┬──┘      └────┬──┬──┘  │        
│     │    |              |  │     │        
│     |  ┌─┼──────────────┘  |     │        
│     │  │ └──────────────┐  │     │        
│     ▼  ▼                ▼  ▼     │        
│  ┌──────────┐      ┌──────────┐  │        
│  │          │      │          │  │        
└─▶│ InfluxDB │      │ InfluxDB │◀─┘        
   │          │      │          │           
   └──────────┘      └──────────┘         
......

MySQL 中 utf8 和 utf8mb4 编码

最近在开发过程中碰到数据库写入失败的情况。

“Incorrect string value: ‘\xF0\x9F\x91\x91M\xE3…” for column ‘nick_name’ at row 1”

排查发现是由于该用户的昵称含有 emoji 表情包导致的,含有表情包和普通字符串有什么区别呢?

原来 MySQL 的默认 utf8 (也称 utf8mb3) 只支持三个字节的字符。而 emoji 表情包需要四个字节表示。所以存储就会报错。不过 MySQL 在 5.5.3 之后增加了这个 utf8mb4 的编码,用来兼容四字节的 Unicode。

为了解决这个问题,需要修改数据库的字符编码。

......

2019 小结

加班和宅

2019 年总结起来就两个关键字:加班,在肥宅的道路上越走越远。

由于加班较多,锻炼的时间相对减少,运动量直线下降。2019 年总共跑步 147 公里,相较于 2018 年 400 公里的运动量直接被腰斩。伴随着运动量地降低,体重也随着飙升。长胖了 10 斤,算是 2019 年的小小收获吧(囧)。不过唯一值得庆幸的是羽毛球一直坚持了下来,有一群自律的球友还是很幸福的。还是要通过外部条件去督促和约束自己,人一旦散漫下来过日便会失去些许活力。生命在于运动,希望新的一年运动量不要再创新低。

......

使用 Vue CLI 快速创建 Vue 项目

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供:

  • 通过 @vue/cli 搭建交互式的项目脚手架
  • 通过 @vue/cli + @vue/cli-service-global 快速开始零配置原型开发
  • 一个运行时依赖 (@vue/cli-service),该依赖
    • 可升级
    • 基于 webpack 构建,并带有合理的默认配置
    • 可以通过项目内的配置文件进行配置
    • 可以通过插件进行扩展
  • 一个丰富的官方插件集合,集成了前端生态中最好的工具
  • 一套完全图形化的创建和管理 Vue.js 项目的用户界面
......