GithubPage+Hexo搭建个人主页

安装配置部署

https://zirho.github.io/2016/06/04/hexo/


添加评论

这个主题的评论已经集成了,并不需要我们进行手工导入,要求你有多说/disqus的账号,并在跟目录的_config.yml中,删去注释#:

DuoShuo

duoshuo_shortname: 多说设置的名称


添加友情链接

我们在主题的_config.yml中已经有设置links的了。只是没有显示出来:

修改主题的_config.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Links 通过links来设置友情链接

links:

  Hexo: http://hexo.io

  foam | 我一直在找寻有你的世界: http://zoufeng.net/

  getNway的博客: http://www.luojiawei.me/

  HCLAB-环宇创意电脑工作室: http://hclab.cn/hclab/index.php/

# Sidebar # 网站右边框

sidebar: right # set to false if you don't want a sidebar

widgets:

- category
- links

发布博客,markdown文件的格式

markdown文件需要添加categories进行归档区分。

相应的为:

1
2
3
4
5
6
7
8
9
10
11
title: "java-Map集合-HashMap"

thumbnail: http://XXXXXXX (或者相对路径)

date: 2015-07-28 10:48:16

categories: java

tags: [java,Map,HashMap,Hashtable]

---

thumbnail也可以在配置文件中关闭不显示

其中categories/tags的格式也可以为:

1
2
categories/tags:
    - java

具体格式相应属性的设置,直接去hexo提供的文档:

[Front-matter](https://link.jianshu.com/?t=https://hexo.io/zh-cn/docs/front-
matter.html),直接查看官方的文档就可以很快地知道个所以然了。


添加站长统计

我们通过站长统计来及时查看我们个人网站的浏览情况。首先,我们需要进行注册:站长统计

以下参考:[添加cnzz站长统计](https://link.jianshu.com/?t=https://github.com/woheme/hexo-
theme-icarus/commit/5b3da36aaffa4947cca358f40d5db09eddf3b9b8)

  1. 在theme的_config.yml中的末尾添加以下:(这部很重要,不添加web_id将无法显示出来)

CNZZ id

cnzz: 这里填入你在站长统计注册后的web_id

  1. 在目录:主题的layout/_partial/添加文件为cnzz.ejs,内容如下:
1
2
3
4
5
6
<% if (theme.cnzz){ %>

Analyse with <script src="http://s23.cnzz.com/z_stat.php?id=<%= theme.cnzz
%>&web_id=<%= theme.cnzz %>" language="JavaScript"></script>

<% } %>
  1. 最后进行显示,在路径layout/_partial/footer.ejs里面添加:
1
...PPOffice</a>.<%- partial('cnzz') %>

再次提醒注意在_config.xml中添加web_id,否则无法显示。当显示出来了,又有一个问题,那就是要填写查看密码了。

查看以下即可:【设置】如何设置查看密码?(此功能只限站长用户)


百度/谷歌验证站点

为什么要验证站点了,因为要搜索引擎进行收录,说白了就是让别人更容易搜索到你的网站,仅此而已。

首先需要到百度/谷歌站长统计中注册,以及验证:

Google网站管理员工具地址

百度站长工具

注册完后,进行输入相应的网站地址,然后选择html验证,将代码加入以下路径layout/_partial/head.ejs:(截取部分)

1
2
3
4
5
6
7
8
9
10
11

<head>

<meta name="baidu-site-verification" content="tqvy7RDErf" />

<meta name="google-site-verification" content="hjN29-PO_KfE-dgow-
7hcz75xJj0qzZ6G2OkXZ3FVd8" />

<meta charset="utf-8">

....

然后发布到github中,再进行验证即可。


发布后无法加载样式

因为默认的路径的为http://uername.com/hexo-theme-
icarus而你解析的路径直接为http://uername.com/导致无法加载样式,或者无法显示文章。那么,该如何进行修改呢?

我们需要对路径进行提升,从hexo-theme-
icarus到/,你可以按着Hexo使用总结中的配置进行修改_config.yml,即可。修改完后,不要着急,我的情况要等好久才回显示正常,真是郁闷。下面是个别的设置:

站点的_config.yml

1
root: /

theme的_config.yml

1
2
3
4
5
6
7
8

Home: /

  Archives: /archives

  Categories: /categories

  About: /about

扩展插件的使用

强大的插件供你使用,插件集合:Hexo
Plugins

下面展示一个插件sitemap的使用:hexo优化–
向Google提交sitemap

还必须在根目录的_config.yml加入以下配置:

Extensions 这里配置站点所用主题和插件,暂默认,后面会介绍怎么修改

Plugins: https://github.com/tommy351/hexo/wiki/Plugins

exclude_generator:

plugins:

- hexo-generator-feed

- hexo-generator-sitemap


发布后显示404:

查看配置文件_config.yml中的配置是否与实际情况相符:

1
2
3
url: https://hcq0618.github.io/blog/

root: /blog/

在文章中插入本地图片

https://cloud.tencent.com/developer/article/1019861

遇到问题

遇到没能成功显示的问题,查看网页,结果是<img src="2017/02/26/2017-02-23-c/图片名.jpg"> 的形式,然后查看 hexo
的目录,发现路径是 /public/2017/02/26/c/a.jpg

之前在 md 文件中引用时写作:

1
![你想输入的替代文字](xxxx/图片名.jpg)

改为:

1
![](a.jpg)

就可以了。


创建Github Page

在Github上创建一个仓库,可以新建一个source分支用于存在主页项目源码,master用于存放主页网页静态代码,
然后在项目Settings里找到Github Page,选择master分支,即可创建一个github page主页
url一般为:

1
<github用户名>.github.io/<项目名>

然后每次都可以通过github desktop,将主页的项目源码上传到source分支
依次通过hexo的命令

  • hexo generate或者hexo g或者hexo g -f
  • hexo deploy或者hexo d

就会自动生成静态网页并将主页网页静态代码push到master分支(当然先会要求验证github账号密码),主页就随即更新了

图床及iPic

有了图床神器 iPic,不论屏幕截图、还是复制图片,都可以自动上传、保存 Markdown 格式的链接,直接粘贴插入,够懒人吧?

使用 Hexo | Heroku 或 WordPress 写博客、在公众号发文章、在知乎讨论、在豆瓣灌水、在论坛发帖、跨境做外贸电商 …

iPic 带给你从未有过的插图体验。

当然,除了图片,你可以 上传普通文件,上传方式与图片完全相同。

上传方式

图床工具 iPic 支持多种图片上传方式。下面我们来简单看下各个上传方式、以及分别适合在什么场景下使用。

1. 拖拽图片上传

拖动是比较好玩的一种上传方式。只要将图片拖到菜单栏的 iPic 图标上,松手后就可以自动上传。

可以注意到,上传时菜单栏图标也会显示上传的进度。很简洁、却很实用,不再盲目等待。

使用这种方式,还可以一次性上传多张图片。图片上传后的顺序,和上传前选择的顺序一致。

2. 使用服务上传图片

在 Finder 中使用 服务 上传也是很高效的方式。只要在图片上右击、然后选择服务中的 使用 iPic 上传 即可。

除了使用菜单,更高效的方式是使用快捷键。只要选中图片,然后按下 Command + U 快捷键,即可自动上传。

如果你觉得默认快捷键 Command + U 不方便,也可以在 系统偏好设置 > 键盘 > 快捷键 > 服务 中修改 使用 iPic 上传
对应的快捷键。同样,如果你的 Mac 中安装了很多程序、菜单中有很多你不需要的服务,也可以在这里进行关闭。

使用服务上传还有其他便利之处:

  • 可以一次性上传多张图片

  • 即使 iPic 并未运行,系统也会启动 iPic、并自动上传

注意:由于 macOS 系统更新机制的缘故,新安装 iPic 后上传服务可能未出现、或未翻译,可以等几分钟、甚至几小时后再试,iPic
上传服务就会正常显示;也可以在 终端 手动更新服务菜单:

/System/Library/CoreServices/pbs -update

3. 复制图片后上传

iPic 会自动监测剪切板的变化,当复制图片后,该图片会出现在 iPic 菜单中 待上传
区域。如果需要上传,点击菜单中该图片即可。手动上传比较适合临时上传少量图片。

除了手动点击菜单,还可以使用快捷键 Command + Shift + U 上传。当然,可以在偏好设置中修改此快捷键。

4. 上传其他 App 中的图片

上述示例中主要介绍了图片文件的上传。另外,iPic 还支持支持其他程序中图片的上传。例如:

其中,对于图片格式,常见的 jpg、png、gif 等格式都是支持。

上传图片相关设置

上传前压缩图片

可以在 iPic 的 偏好设置 中开启「上传前压缩图片」选项,目前支持压缩的图片格式:jpg、png、gif

采用有损压缩,压缩后肉眼几乎无法看出区别,却可明显降低图片尺寸。使用压缩后的图片,既可以节省图片的存储空间,还可以加快图片加载速度、节省流量。

上传后不播放声音

iPic 上传后会使用系统通知来提示。如果不喜欢该通知的声音,可进入 系统偏好设置 > 通知,在左侧列表选择 iPic,然后在右侧取消「播放通知的声音」。

图床

图床也即你选择存放图片的云服务。可以在 iPic 的 偏好设置 中添加你的图床:

添加后,可以在 iPic 的菜单中选择当前使用的图床:

目前 iPic
支持下列图床:微博图床(即默认图床)、七牛云
又拍云阿里云
OSS
腾讯云
COS

ImgurFlickrAmazon
S3

iPic 菜单

Markdown 链接

这里有个很贴心的功能:切换普通链接、Markdown 格式链接时,如果粘贴板中有上一格式的内容,会转换后重新保存到粘贴板中。

图片上传记录

iPic 会保存最近上传的 15 张图片,其中最后上传的 3 张图片会出现在一级菜单中,其他的则在 更多已上传图片 中。

点击已上传图片,则会复制该图片的链接。

当然,可以在 更多 菜单中清空图片上传记录。

iPic Mover

iPic Mover 可以一键将已有
Markdown 文件中所有图片迁移至新图床。批量上传图片、图床搬家,从未如此简单。

iPic Mover 更多介绍

其他

媒体报道

下载 iPic

配合默认图床,可免费使用所有功能。如需使用其他图床,订阅 iPic 高级版即可。暂不支持 Windows.

如果你觉得 iPic 还不错,欢迎 到 Mac App Store 给个 5
星、写点评论
。当然,如果能分享给周围也需要
iPic 的朋友,那就太赞了 ^_^


商家在选择图床的时候,请慎重选择免费图床,毕竟众多免费图床网站注册条款里有禁止商用这一条,哪天关闭了图片外链或者商用,势必给用户带来很大的麻烦,很多免费图床总是好景不长,为什么呢?其实很简单,做相册站是要投入的,比如服务器、带宽、人员、技术投资、市场宣传等等!完全免费了,这些小站可能自己都难存活,所以总是不能长久使用!

国内:

1、外链吧

有免费和收费的,100M 永久免费,收费相对便宜。不限外链、流量图片支持外链到所有网站。图片搬家、原图替换、水印、防盗链功能免费使用。

2、又拍网

付费外链,按流量和空间付费。价格比较贵

3、巴比豆

付费外链,价格和淘宝图片空间相同。

4、幻域图床

国内轻量级图床,采用国内cdn进行加速,图片加载速度快!需要注册即可上传图片,无限储存容量!

国外:

1. 美国TripnTale – 无限免费旅游网络图片相册

美国TripnTale是一个免费旅游图片存储空间,提供无限量的存储空间,但有个要求是你上传的图片必须和旅游相关的。支持上传jpeg、gif、
bmp、png格式图片,单个图片最大为6M,图片可以从flickr、picasa等中直接导入,然后给上传的图片进行注释,在地图上进行标注,最后发 布即可。

另外,还支持视频文件上传存储,单个视频最大为100M,上传速度还可以,图片能支持外链,后台能对图片进行管理,还能写日记,很适合旅游爱好者

2. 美国Tinyalbum – 无限免费相册+支持外链

Tinyalbum
是一个提供免费相册空间和图片存储服务的网站,服务器位于美国亚利桑那州斯科特斯德市,界面上与Flickr有些相似,支持外链。TinyAlbum的操
作上比较简单方便,上传速度也不错,能同时上传多张图片,相册能设置公开和私有。

另外,TinyAlbum对上传图片数量没有限制,单张图片限制在8M以
内,但只能上传jpg、png格式的图片。在网站还能看到其他用户的相册,在后台用flash浏览自己的图片时,很好玩哦,图片会随着鼠标动,这种效果很 好.

3. 瑞士overpic – 免费无限网络相册

瑞士overpic提供免费的无限网络相册,无需注册就能上传,能支持外部链接,同时能上传10张图片,单个上传图片的大小限制为10M,支持的图片格式
为:JPEG、JPG、BMP、PNG、GIF。可设置保存时间(一天、一周、一个月、三个月、六个月、永久),也能通过图片的网络地址来上传图片,但不是很稳定,上传完图片之后会自动生成一些html代码,论坛代码等方便用户复制代码进行外链

4. 美国imgplace – 提供无限的免费相册

美国imgplace提供免费的图片空间,能上传flash,图片,zip文件等,flash需要注册才能上传,其他不用注册也能上传,zip文件里面能放
100张图片,但里面不能建文件夹,上传后会自动解压支持的图片格式有jpg, jpeg, gif, and
bmp。上一次最多能上传50张图片,但图片加在一起的总大小不能超过100M,单个文件不能超过3M,没有带宽限制,但页面上广告很多,页面不是很好

5. 加拿大tinypic – 免费相册和视频空间

加拿大tinypic提供免费的相册和视频空间,是Photobucket旗下的一个网站,成立于2003年,由Alex Welch 和 Darren
Crystal 创办,每月有3900万的访问者,其中一半是来自美国的。

不用注册就能上传,上传的空间无限制,上传时可以改变图片的大小,有多种大小供选择,当然注册了
更好,能建立自己的相册和视频空间,支持多个文件同时上传,图片上传后会产生一个很短的地址,能直接进行外部引用链接。还能对图片进行编辑,提供很多的编
辑工具,基本上能满足你的要求,去体验吧,相当不错的一个空间了

6. 美国xs – 完全支持外链的图片空间

美国xs提供无限免费的图片空间,完全支持外链(以测试过),而且不用注册就能上传图片,支持上传JPG, JPEG, GIF, PNG, BMP, TIF,
TIFF等格式的图片,单个上传文件最大为2Mb,能同时上传多张图片,每次上传最大数为500,只要你知道图片的网络地址也能上传图片,只要你的图片每
月有一个点击量就不会删除你的图片,后台还支持FLASH相册制作,提供多种引用形式

7. Flickr – 免费相册支持外链

Flickr 是目前世界上最好的线上相片管理和分享应用程式之一。Flickr是由加拿大Ludicorp公司所开发设计。该公司于2004年2月正式推出
Flickr网站。Flickr于2005年3月被雅虎收购,在6月,所有的资料都从原本位于加拿大的服务器迁入美国,使得所有的资料都受到美国联邦法的 管辖。

上传速度还不错而且还支持外链,有很多图片网站都是利用这个相册来装图片的,还能对你的图片进行特效外理以及在线图片编辑功能,每月上传空间限制在
100M,但如果超过90天未登录,你帐号下的图片将会被删除。

8. Dumpt – 提供无限免费图片空间无需注册

Dumpt 是来自美国伊利诺伊州的无限免费空间,无需注册就能使用,页面很简洁,在首页就能上传,支持多文件上传,一次最多能上传10张图片,最大上传文件为3M,
不但可以上传本地电脑上的图片,还可以上传URL网络图片,可以设置上传的图片为私有或公开。上传格式支持:JPEG, .JPG, .GIF,
.PNG,.BMP。上传图片后可获得很多图片的外链地址,方便引用图片。

9. Pict –捷克的一个免费相册

它和别的相册不同,页面很特别,打开首页就是一个相册,你会看到有很多的很多的正方形框,上面标有“Upload images”,点击任意一个即可上传图片,
允许上传JPG/PNG/GIF等格式的图片,
最大上传的图片尺寸为3.5M。同时可选择多张图片上传,最多同时能上传多张不详,我曾选择过100多张图片同时上传也可以,首页会自动变长,方框会自动
增多。不过上传多了,会减慢上传速度。

在网站底部会看到“Share this album”地址,通过这个网址可以链接到这个相册,图片支持外链,点击相册图片上的“Share
it”,即可出现引用地址。

10. RockYou – 无限图片上传空间+闪秀相册

RockYou
是来自美国的免费网络FLASH相册网站,主要面对客户是博客使用者,现在在美国有大量的人在使用,网站提供电子相册、刮刮卡、闪闪靓字、靓字闪图、动态
相册等BLOG扩展服务。目前,网站已经推出了中文版本。

你可以无限制的上传图片. 图片的格式必须为jpeg, gif, 或者 png;每张图片的大小不得超过 3
M,你可以无限制的创建你的闪秀相册。想拥有多少,就拥有多少!用户可进行隐私设置。

11 . Thumbsnap – 非常简单好用的图片存储空间

Thumbsnap是来自美国乔治亚州的一个非常简单,好用的免费图片存储空间。界面简洁无广告,无需注册即可上传图片,对上传图片张数无限制,支持.jpg,
.jpeg, .gif, .png格式的图片。支持的最大上传图片大小为2M。而且还支持图片外链。

上传非常简单,进入网站首页后,点击”UPLOAD
Photo”按钮,选择一张图片即可自动上传,上传速度非常不错。上传完成后可获得图片的分享代码,提供4种代码。可通过点击”More Link
Codes”来获得图片的直接外链地址(Direct Link)。还可能过E-mail来分享。

12. SharePiks – 无需注册的免费图片存储空间

SharePiks
是来自美国的一个免费图片存储空间,支持上传的最大图片为5M,无需注册即可上传。不允许上传违反法律的图片,图片也不可用于邮件发送、商业广告等。如上
传了以上图片将会被删除,非以上图片可以永久保存。SharePiks不会公开你上传的图片,除非是你指定的人。

图片上传后会获得四种外链代码,有图片的直接外链地址、引用地址、HTML代码、论坛代码。也可通过点击”Click here to share this
image with your friends”来将你的图片发送给你的朋友进行分享。

13. 美国imgur – 简单实用的无限外链相册

Imgur 是来自美国的一个免费网络相册,非常简单实用。Imgur由美国俄亥俄州大学的学生Alan
Schaaf创建,Imgur的服务器位于美国得克萨斯州达拉斯市,其Alexa世界排名为1283,Imgur免费相册流行于美国、印度、英国、德国、
加拿大、澳大利亚等国家。

使用Imgur相册时,不需要注册,Imgur不限制图片上传空间,支持图片直接外链,支持的图片格式有JPEG, GIF, PNG, TIFF, BMP,
PDF, XFC (GIMP)。但TIFF, BMP, PDF,
XFC格式的图片上传后会转换成PNG格式。非动画图片允许上传的最大为10M,但超过1M的图片都会被压缩成1M,允许上传的动画图片最大为2M(包括
PNG、GIF),只要图片每3个月有一个浏览量,图片会被永久保存。可上传本地图片或通过图片URL地址上传。

14. 德国Imagez– 无需注册可外链的免费相册

Imagez是来自德国的一个免费相册,无需注册即可使用,且支持直接外链。支持上传jpg, jpeg, png, bmp,
gif格式的图片,最大单个文件最大为5M,注册用户限制在10M,支持批量上传,还可上传zip文件。注册用户还可对相册设置密码保护。上传速度还不 错。

15. 美国Fotki– 支持FTP可外链的无限免费相册

Fotki是来自美国弗吉尼亚州的一个在线免费相册,成立于1998年,是一个比较老牌的相册了。存储空间容量不限,可创建多个相册,创建时可对相册设置
访问密码。支持jpg、jpeg、png、psd、gif、bmp、tif、tiff图片格式,但上传的图片都会被转换成jpeg格式,单张图片大小限制
不祥,免费注册为Fotki用户,可以使用Java、ActiveX控件、软件客户端、网页、URL网址、FTP、手机、E-Mail等多种方式上传图
片。图片支持外链,可通过右键点击图片,查看属性,找到外链地址。

Fotki除提供免费相册外,还提供免费日记本、免费留言板、免费论坛等免费服务。还支持上传某些网站的视频如:youtube,但不支持国内视频网站上的视频上传。

16. 幻天图床

国外轻量级图床,采用了国外cdn加速图片缓存,操作简单方便!无需注册!即可上传图片。无需付费,空间图片无限制。

DB主从一致性架构优化4种方法

需求缘起

大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。

这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据:

(1)系统先对DB-master进行了一个写操作,写主库

(2)很短的时间内并发进行了一个读操作,读从库,此时主从同步没有完成,故读取到了一个旧数据

(3)主从同步完成

有没有办法解决或者缓解这类“由于主从延时导致读取到旧数据”的问题呢,这是本文要集中讨论的问题。

方案一(半同步复制)

不一致是因为写完成后,主从同步有一个时间差,假设是500ms,这个时间差有读请求落到从库上产生的。有没有办法做到,等主从同步完成之后,主库上的写请求再返回呢?答案是肯定的,就是大家常说的“半同步复制
”semi-sync:

(1)系统先对DB-master进行了一个写操作,写主库

(2)等主从同步完成,写主库的请求才返回

(3)读从库,读到最新的数据(如果读请求先完成,写请求后完成,读取到的是“当时”最新的数据)

方案优点:利用数据库原生功能,比较简单

方案缺点:主库的写请求时延会增长,吞吐量会降低

方案二(强制读主库)

如果不使用“增加从库”的方式来增加提升系统的读性能,完全可以读写都落到主库,这样就不会出现不一致了:

方案优点:“一致性”上不需要进行系统改造

方案缺点:只能通过cache来提升系统的读性能,这里要进行系统改造

方案三(数据库中间件)

如果有了数据库中间件,所有的数据库请求都走中间件,这个主从不一致的问题可以这么解决:

(1)所有的读写都走数据库中间件,通常情况下,写请求路由到主库,读请求路由到从库

(2)记录所有路由到写库的key,在经验主从同步时间窗口内(假设是500ms),如果有读请求访问中间件,此时有可能从库还是旧数据,就把这个key上的读请求路由到主库

(3)经验主从同步时间过完后,对应key的读请求继续路由到从库

方案优点:能保证绝对一致

方案缺点:数据库中间件的成本比较高

方案四(缓存记录写key法)

既然数据库中间件的成本比较高,有没有更低成本的方案来记录某一个库的某一个key上发生了写请求呢?很容易想到使用缓存,当写请求发生的时候:

(1)将某个库上的某个key要发生写操作,记录在cache里,并设置“经验主从同步时间”的cache超时时间,例如500ms

(2)修改数据库

而读请求发生的时候:

(1)先到cache里查看,对应库的对应key有没有相关数据

(2)如果cache hit,有相关数据,说明这个key上刚发生过写操作,此时需要将请求路由到主库读最新的数据

(3)如果cache miss,说明这个key上近期没有发生过写操作,此时将请求路由到从库,继续读写分离

方案优点:相对数据库中间件,成本较低

方案缺点:为了保证“一致性”,引入了一个cache组件,并且读写数据库时都多了一步cache操作

总结

为了解决主从数据库读取旧数据的问题,常用的方案有四种:

(1)半同步复制

(2)强制读主

(3)数据库中间件

(4)缓存记录写key

前3个方案在今年数据库大会(DTCC2016)上share过,相关的材料在网上能下载到。第4个方案是大会现场有其他同学share的一个好方法,感谢这位同学。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×