使用ssh-keygen生成ssh密钥的操作相信大家都很熟悉了。但是现在市面上有很多Git仓库,除了GitHub之外,还有CODING、码云Gitee,以及公司的私有云代码仓库。我们不可能只使用其中一种,但是如果用最简单的方式去生成id_rsa,就意味着需要同时保存多个id_rsa。通过本文,你将学会如何通过ssh-agent管理多个id_rsa密钥。
记一次线上服务器CPU占用100%事故
由于一些突发状况,本应在四月底完成的这篇博客拖到现在才完成。这篇博客要讲述的是一个午夜惊魂的故事,请各位看官自备薯条可乐。
你的孩子可能会喜欢的打字练习神器
前些日子在教5岁的儿子练习打字,本来只是觉得他一时兴起,没想到他还真的很喜欢打字的感觉。但是网上找来的大多数打字工具都是比较粗制滥造的FLash小游戏,而且也缺乏练习体系。想想自己小时候玩的金山打字通,虽然好,但过于严谨,不太适合低龄儿童。
于是顺其自然的自己做了一个,演示地址请阅读全文:)
使用Feign的方式访问Zuul网关
在微服务架构中,服务是零散的,去中心化的。对于调用者来说,调用这些服务就需要了解服务的地址。比如:我们有一个手机APP,需要访问多个微服务接口才能满足不同的业务功能,而不同的微服务地址显然是不同的,如果微服务数量激增,则对于APP开发者来说,维护服务地址的工作几乎是灾难性的。
因此Spring Cloud引入了Zuul网关服务来解决这个问题。APP只需要访问Zuul,并告诉Zuul自己所需要的服务名称,即可触达对应的服务实例。
引入网关服务的好处有很多,网上的资料也非常多,这里就不再赘述。本文想讨论的是另一个场景的用法:既然我们可以在外部通过REST的方式来访问网关,并赋予网关更多的职能,那么可不可以在内部服务调度的时候,也经过网关?由于我们的内部服务调度是通过Feign的形式,所以如何使用Feign的方式访问Zuul网关就成了一个问题。这里,不论是书籍还是网上资料,几乎没有找到合适的资料。所以我觉得有必要写下这篇文章,以备后来者查阅。
Spring Cloud Config接入Memcached爬坑实录
Spring Cloud Config是Spring Cloud全家桶的一部分,由于我之前自己实现过一个配置中心(Peso),所以知道这里面有很多看似简单的功能,实现起来并不容易。在使用Spring Cloud Config之后,发现它的功能和实现都可以说是相当棒的。然而还是会有一些小遗憾,比如:它只支持Properties和Yml两种格式的配置文件,这就对我这次接入Memcached的传统型XML配置文件造成了一定的麻烦。
记一次坑爹的Gitlab数据迁移之旅
昨晚加班到两点,为了完成公司开发环境的Gitlab迁移,以便在从今天开始所有人都能在新的Gitlab上工作。迁移的原因是之前错误的估计了Gitlab的系统资源占用率,在一台比较繁忙的服务器上搭建了Gitlab,服务器配置只有单核4G内存,还运行了Jenkins和Nginx等其他服务,导致Gitlab在繁忙时经常响应缓慢或无响应,因此有了这次迁移之旅,期间踩坑无数,不过也学到了很多关于CentOS和Docker的知识。
Questioning if Agile Works in Asia 读后感
最近在infoQ上看到scrum.org的一位资深敏捷教练Joshua Partogi发表的关于敏捷开发的文章《Questioning if Agile Works in Asia》,结合目前自己工作中的敏捷实施现状,有感而发。
Hexo使用体验-多机同步发布解决方案
自从使用了Hexo作为主力博客平台,已经有半年左右的时间,虽然由于工作关系,其间没有更新多少博文,不过也没想过切换到其他平台。相比于GitHub官方推荐的Jekyll,我觉得Hexo更简单快速,符合写作的初心。
然而Hexo在多机同步发布方面,存在天然的缺陷,本文将和大家一起讨论该缺陷的解决方案。
Maven多模块继承和聚合
最近在尝试用模块化的方式重构Maven工程,然而网上很多中文资料大都语焉不详,仅仅只是罗列配置和代码。于是我根据自己的需求重新阅读了Maven的官方文档,温故而知新,在这里将心得分享给大家。
用Electron构建次世代桌面APP
什么是Electron?
Electron是基于Node.js的桌面应用开发框架。他的出现是为了解决传统桌面应用程序开发中,一直存在着的老大难问题:跨平台一致性。
Electron的工作原理是模拟一个简化版的Chrome内核浏览器,通过编写HTML和CSS程序来渲染界面,而在底层调用Node.js来和操作系统交互,从而另辟蹊径地解决了跨平台一致性的问题。