Logstash-input-jdbc实现与MySql解耦同步数据到ES
随着业务数据的增长,Mysql压力增大,单表储存会严重影响读写的高效性,为解决这一问题,分表分库和历史数据迁移等解决方案就应运而生了,但在某些场景下这些解决方案还是存在问题,例如聚合查询等。而ElasticSearch作为实时的分布式搜索和分析引擎,能够快速查询和处理海量数据,高可用可扩展,通过ES,可以轻松做到保证查询效率的聚合查询,已有不少大型互联网企业成功使用案例,是值得一试的技术。
经过调研,实现与Mysql同步工具基本有以下几种:
logstash-input-jdbc:官方推荐的插件,Ruby编写的
go-mysql-elastic:Go编写,国内作者
python-mysql-replication: Python编写
elasticsearch-jdbc:Java编写
elasticsearch-river-mysql:听说已经很少维护
0. 安装 ElasticSearch参考 上一篇文章 此处不做详述。
1. 下载 Logstash官网链接: Download Logstash 以6.1.1版本为例:
wget https://artifacts.elas ...
分布式搜索引擎ElasticSearch安装小记
ElasticSearch(下面简称ES)是一个开源的、基于Apache Lucene的、分布式的实时分析搜索引擎。其设计理念就是可以从不用的数据源获取数据,进行实时的检索和分析。
利用ES可以减少数据库压力和数据复杂度,不用在原表大量添加索引,且可以使用廉价机器平行扩展性能,具有轻量高效的特点。
0. Java安装及环境变量配置
ElasticSearch基于Lucene封装了一套REST API,Lucene是Java开源库,所以需要在服务器(或本地)配置好Java环境,所需版本是jdk1.8以上。
java -version
echo $JAVA_HOME
1. 下载安装Elasticsearch官方下载地址及安装方法:Download Elasticsearch
以6.1.1版本为例:
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.zip
$ unzip elasticsearch-6.1.1.zip
$ cd elasticsearch-6.1.1/ ...
Git实用操作整理记录
记录某些可能不常用会忘记但实用的操作
0. 为当前版本打上 taggit tag -a v1.0 -m 'version 1.0 code'
1. 查看所有 taggit tag
2. 推送到远程仓库git push origin --tags
2.1 重新修改 commit 备注git commit --amend -m "新的提交信息"
3. 删除远程分支和 tag
在 Git v1.7.0 之后,可以使用这种语法删除远程分支:
git push origin --delete <branchName>
删除 tag 这么用:
git push origin --delete tag <tagname>
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
git push origin :<branchName>
推送一个空 tag 到远程 tag:
git tag -d <tagname>
git push origin :refs/tags/<t ...
vue相关笔记及思考
<img src="{{url}}" alt=""> 效果能出来,但是会报一个404错误
<img v-bind:src="url" alt=""> 效果可以出来,不会发404错误
补充中…
随手解决了但原理还未完全搞懂的奇怪问题:
如此绑定图片不使用require会报404::src="userInfo.avater||require('../../assets/images/default-avater.png')"
vue响应式原理是基于es5的Object.defineProperty实现的
关于模板:{ { msg } } 数据更新模板变化
{ { *msg } } 数据只绑定一次
{ { { msg } } ...
Mac中截图快捷键及截图名称配置
Command + Shift + 3 截取全屏
Command + Shift + 4 鼠标变成十字,点击选取屏幕区域截图
截图完成自动保存在桌面,文件名比较长,而且带有中文,此时可以自定义截图后保存的名称:
打开“终端”,粘贴以下文本并回车:
defaults write com.apple.screencapture name “Snapshot”
这里的Snapshot就是代替“屏幕截图”几个字的文本,可以更改。
同样的再执行以下文本以让配置生效:
killall SystemUIServer
打开“系统偏好设置”,选择“语言与地区”,点击窗口右下“高级..”,切换上面tab至“时间”,将“正午前”跟“正午后”的中文定义修改为“AM”、“PM”。
之后保存在桌面的屏幕截图名称就为全英文了。
Github pages + hexo 优雅地打造免费个人静态网页博客
前言:近期觉得写博客这件事必须提到日程了,一方面养成做笔记做总结的习惯,同时也能做些生活记录,提高写作能力,其实有很多不错的博客平台都可以用,自然曝光率可能也比较高,但是咱好歹也是程序员,博客网站不自己搭建一个感觉就有点没逼格,但这样至少需要域名空间和博客程序,对于写博客这个出发点似乎成本有点高。
后来发现很多大牛的个人博客都在用hexo,折腾了一下觉得简单又实用,markdown编写git发布,静态网页速度快,稳定性高,还利于搜索引擎收录,对于博客程序来说这一切足够了。听说还可以集成vue、angular等。
1. 准备工作
必要环境及工具的下载:
Node.js 安装后也会安装好 npm 包管理工具。
Git 用于提交代码的工具,mac下安装了xcode则忽略这步。
需要一个Github账号,使用它提供的 Pages 功能就可以拥有一个静态网站空间,而且是免费的。国内的 Coding 也能做到同样的事,这里我还是选择github作为例子,原理都一样按需选择。
申请个自己的域名(非必须)
2. 安装HEXO博客程序
mac下打开终端,如果嫌cd命令找目录麻烦,可以打 ...