docker环境部署
docker安装
使用系统Ubuntu 15.04 vivid,该版本无法安装最新版docker,需要升级ubuntu到最新版本。
安装最新版docker需要添加docker源,参考Docker Community Edition for Ubuntu。
docker配置阿里云
参考阿里云加速器进行配置。
初步使用docker时出现问题
在使用docker build时强行停止后,在使用docker image
出现如下错误
1 | <none> <none> 1c4475fbe64f 5 minutes ago 194 MB |
使用docker rmi 1c4475fbe64f
命令删除该无用image出现如下错误
1 | Error response from daemon: conflict: unable to delete 1c4475fbe64f (must be forced) - image is being used by stopped container a4f0c195cff5 |
但是使用docker ps
未显示任何数据
解决办法先docker rm a4f0c195cff5
之后docker rmi 1c4475fbe64f
定时消息推送
需求
有一部分数据设置了超时时间,当到达该超时时间改数据还未处理时,推送数据给监控人员。由监控处理相关事情。
技术方案
1、维护一个有序链表,在生成改数据后,把该数据加入该有序链表中,保证链表头为最小的超时时间。
2、通过线程自旋,获取头部数据是否超时,超时取出数据,查询DB该数据是否已经被处理,未处理超时推送给监控,已经处理丢掉改数据。
考虑问题
- 因为是部署集群,没有调度器,在迭代更新时,重启服务器会导致服务器中数据丢失。
解决方案:在启动服务器时使用redis中incs命令(过期时间30s),当返回值为1时,该服务器从数据库中获取所有需要监控的数据,加入链表。其他服务器因为值不为1,不做处理。 - 在服务器运行过程中,其中一台服务器宕机,重启服务器后,当前服务器数据数据丢失,其他服务器正常,重启从数据中获取的数据保护其他服务器中数据。
解决方案:在处理超时数据的时候,同样适用redis的incs命令(过期时间30s),返回值为1的服务器处理数据,另外非1的是丢弃数据。
SpringMVC RESTful风格
Git命令
命令 | 解释 | 备注 |
---|---|---|
git init | 初始化一个Git仓库 | |
git add |
添加 | 反复多次使用,添加多个文件 |
git commit | 提交 | |
git status | 工作区的状态 | |
git diff | 查看修改内容 | |
git reset –hard commit_id | 返回到某版本 | HEAD指向的版本就是当前版本 |
git log | 查看提交历史 | 以便确定要回退到哪个版本 |
git reflog | 查看命令历史 | 以便确定要回到未来的哪个版本 |
git checkout – file | 直接丢弃工作区的修改 | 未add |
git reset HEAD file | 去掉暂存区,之后还要进行上面步骤 | 已经add,未commit |
jetty9遇到问题
hexo部署静态文件位置修改
发表于
更新于
使用hexo-htemo-kael后出现样式不对
一般在部署到whhxz.github.io上不会出现问题,如果部署在whhxz.github.io/myblog上,会出现本地静态文件如js、css等出错
解决办法:修改hexo-htemo-kael中head.ejs,添加
1 | var reg = /myblog\/$/; |
设置config.root后面添加博客地址,在生成html后,就会自动添加上去,而且为了避免多次添加,所以使用正则表达式判断是否已经存在