Fork me on GitHub

工作

使用Kafka Manager管理Kafka集群

公司使用到了Kafka,想借助一套可视化的工具更好地管理Kafka。笔者将目光瞄准了Kafka Manager。 安装Kafka一、下载Kafka 前往http://kafka.apache.org/downloads ,根据自己的需要,下载合适版本的Kafka,笔者使用的版本是kafka_2.12-0.10.2.1。 二、启动Kafka 启动Zookeeper。Kafka依赖Zookeeper,因此,启动Kafka前得先启动Zookeeper。在Kafka的根路径...

使用post receive hook同步Git仓库

工作原因,笔者需实现多个Git仓库数据的同步。 前面我们已经讲过使用GitLab Mirrors同步多个Git仓库( http://www.itmuch.com/work/git-repo-sync-with-gitlab-mirrors/ ),不过毕竟是定时任务,有一定的延时。本文探讨如何使用post receive hook同步多个Git仓库。 方便起见: GitLab仓库(原始仓库):http://192.168.1.102/root/test GitHub仓库...

使用GitLab Mirrors同步Git仓库

笔者需实现多个Git仓库数据的同步,大致是从一个远程的Git仓库同步代码到公司内部的GitLab仓库。经过调研,笔者将目光瞄准开源的GitLab Mirrors。 GitLab自带镜像功能,不过本文并未使用:https://gitlab.com/help/workflow/repository_mirroring.md GitLab Mirrors功能比较强大,可实现各种格式向Git的镜像,例如:Bazaar, Git, Mercurial, Subversion。 G...

合并两个不相关的Git仓库

大致是这样的场景:有两个仓库,一个Git仓库,一个SVN仓库,都是非空的。现在要把SVN仓库中的内容合入Git仓库中,并保留提交记录。听起来有点奇怪,不过现实中的问题总是千奇百怪加变态。既然遇到了,总得想办法解决。花了将近1个小时,简单总结一下。 按照问题的描述,问题可以演变成两部分: 将SVN仓库转换成Git仓库,这一步很简单。百度说:上我吧,我能给你100页的答案;谷歌说:上我吧,我能给你1000页的答案(Sounds weird)。简单来说,就是使用git s...

跨域访问支持(Spring Boot、Nginx、浏览器)

最近家中事多,好久没有写点啥了。一时间竟然不知从何说起。先说下最近家里发生的事情吧: 老爸肺气肿住院; 老妈甲状腺囊肿 儿子喘息性支气管炎住院 我莫名其妙尿脓。不要误会,我没有大保健。有空了考虑将去医院检查的经历写出来,绝对狗血、精彩!! 家里的事情竟然能按条标记,真是可悲。顾影自怜一下。好,言归正传。最近出于某些原因,笔者需要实现跨域请求。 下面咱们详细讨论实现跨域的步骤。跨域的玩法有很多,例如服务器端设置、浏览器端设置、Jsonp等等。本文只描述具体组件的具体做...

最简日志打印规范

个人认为,如果在公司的野蛮生长阶段,一些基础类库不做约束,很可能“埋坑”,形成技术债务,最终为此付出代价。本文讲解一个最简的日志打印规范。事实上,日志打印规范互联网上已有很多,但大多比较冗长(记不住),也不太契合我们团队(关注点不契合)。 所以,我又造了个轮子,写了个简单易懂、容易记的“最简日志打印规范”,后续随着团队实力的增长,和项目的演进,会逐步增加新的条例。 1. 日志打印组件日志组件有很多,日志门面的选择有:Slf4j、Apache Commons Loggi...

将应用的log4j换成logback

考虑到log4j很久不更新、性能相对弱,以及一些项目本身的原因,经过较为谨慎的考虑,决定改用logback。迁移还是比较顺利的,花了1个小时左右就搞定了,做个简单的笔记。 (1) 首先去掉所有log4j相关的依赖,主要有: 1234<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId></dependency> ...

应用无法启动,并且不报错的总结

本篇很LOW。做个记录而已。 这两天遇到了一个奇葩的问题:应用启动不起来,并且不报错。没有任何征兆与线索。经过排查,是log4j的问题,log4j配置如下。 123456789101112131415161718192021log4j.rootLogger = INFO,console,logstashlog4j.logger.com.atc=INFOlog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4...