正文内容加载中...
posted @ 2019-08-02 12:52 无知者云 阅读 (332) 评论 (0) 编辑
摘要:在使用消息机制时,我们通常需要考虑以下几个问题: 消息不能丢失 保证消息一定能投递到目的地 保证业务处理和消息发送/消费的一致性 本文以RabbitMQ为例,讨论如何解决以上问题。 消息持久化 如果希望RabbitMQ重启之后消息不丢失,那么需要对以下3种实体均配置持久化: exchange que 阅读全文
posted @ 2019-05-21 22:11 无知者云 阅读 (4045) 评论 (10) 编辑
摘要:在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为“第0个迭代”要做的事情。但是,当项目运行了一段时间之后再来反观,我总会发现一些不足的地方,要么测试分类没有分好,要么基本的编码架子没有考虑周全。 另外,我在工作中也会接触到很多既有 阅读全文
posted @ 2019-04-29 16:43 无知者云 阅读 (1869) 评论 (5) 编辑
摘要:互联网时代的企业都需要一个属于自己的数字化平台,具有“中国特色”的微信能够为企业提供现成的平台基础。在整个数字化平台的生态体系中,企业可以选择微信平台以触达终端用户和完成核心业务。在该平台中,微信公众号与企业微信紧密结合,形成了一套完整的、行业级别的业务运作和客户服务体系。 阅读全文
posted @ 2017-11-29 07:59 无知者云 阅读 (972) 评论 (0) 编辑
摘要:Spring Web Security是Java web开发领域的一个认证(Authentication)/授权(Authorisation)框架,基于Servlet技术,更确切的说是基于Servlet的Filter技术。因此,在学习Spring Web Security之前,有必要先对Servle 阅读全文
posted @ 2017-09-04 12:23 无知者云 阅读 (1193) 评论 (1) 编辑
摘要:你背井离乡摸爬滚打多年,搬了无数次家,受够了各种各样的房东的各种各样的苛刻与挑剔,好不容易凑够了买房的首付,想着即将拥有一个安身立命之所以及心灵栖息之港,满心愉悦地告慰自己道再苦再累也值了。预期快乐本身也是一种快乐,但是你知道你不能长时间沉浸在还处于设想阶段的未来憧憬中,于是,你擦把汗,加把劲,继续 阅读全文
posted @ 2017-07-18 21:23 无知者云 阅读 (7397) 评论 (73) 编辑
摘要:说得直白点,数字证书(Digital Certificate)即通过对通信双方(比如浏览器和服务器)之间传输的数据进行加密以达到安全通信的目的。除了加密功能外,数字证书还用于身份认证,即数字证书就像是居民身份证一样,能够向别人证明“你确是你”。 一点点理论基础 我们都知道,HTTP协议对数据采用明文 阅读全文
posted @ 2017-06-17 17:45 无知者云 阅读 (1414) 评论 (5) 编辑
摘要:稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程。当你点击鼠标、敲击键盘或者插上U盘时,计算机便以中断的形式处理各种外部事件。在软件开发领域,事件驱动架构(Event Driven Architecture,EDA)早已被开发者用于各种实践,典型的应用 阅读全文
posted @ 2017-04-18 22:19 无知者云 阅读 (13310) 评论 (29) 编辑
摘要:相比起Maven的XML配置方式,Gradle提供了一套简明的DSL用于构建Java项目,使我们就像编写程序一样编写项目构建脚本。本文将从无到有创建一个用Gradle构建的Spring Boot项目,并在此过程中讲到Gradle的一些典型用法。 本文Github代码:https://github.c 阅读全文
posted @ 2017-04-07 22:22 无知者云 阅读 (19649) 评论 (3) 编辑
摘要:秦天四月飞沙黄, 朱雀山茫路亦茫, 今有渝洲故友在, 何须投目那春光。 阅读全文
posted @ 2017-04-03 18:32 无知者云 阅读 (203) 评论 (0) 编辑
摘要: 阅读全文
posted @ 2017-03-31 20:35 无知者云 阅读 (249) 评论 (0) 编辑
摘要:这里收藏了我之前在各种场合做的分享/演讲的PPT: Linux Shell编程 从汽车到科技之恶 民主的历史 Airplanes 中欧历史对比 飞机的故事 航母啊航母 关于Linux的许多 聆听贝多芬 中国军事实力 三十分钟欧洲史 阅读全文
posted @ 2017-03-28 12:17 无知者云 阅读 (178) 评论 (0) 编辑
摘要:以下摘自Spring Framework官方文档,版本Spring 4.3。 <context:annotation-config/> implicitly registered post-processors include AutowiredAnnotationBeanPostProcessor 阅读全文
posted @ 2017-03-24 16:31 无知者云 阅读 (492) 评论 (0) 编辑
摘要:在Servlet 3.0之前,Servlet采用Thread-Per-Request的方式处理请求,即每一次Http请求都由某一个线程从头到尾负责处理。如果一个请求需要进行IO操作,比如访问数据库、调用第三方服务接口等,那么其所对应的线程将同步地等待IO操作完成, 而IO操作是非常慢的,所以此时的线 阅读全文
posted @ 2017-03-14 16:58 无知者云 阅读 (13228) 评论 (1) 编辑
摘要:在Java中,我们经常听到Collections框架、Collection类以及Collections类。这三者名字相似,但是从概念上讲却是不同的。Collections框架泛指Java中用于存储和操作集合的类库总和,其中包括了List、Set和Map等。但是在具体实现上,由于Map中装的是Key- 阅读全文
posted @ 2017-03-12 17:21 无知者云 阅读 (2500) 评论 (0) 编辑
摘要:通常来说,要写Java代码,你基本上都没必要听说垃圾回收这个概念的。这不,对于已经写了多年Java代码的我来说,我还没有哪次经历说是需要使用垃圾回收方面的知识来解决问题的。但是,我依然督促自己花了几天时间系统性地(也比较浅显地)学习了Java垃圾回收机制。我认为学习Java垃圾回收机制至少可以得到以 阅读全文
posted @ 2017-03-10 14:28 无知者云 阅读 (2470) 评论 (1) 编辑
摘要:有句话这么说的:程序员的能力不在于增加代码的能力,而在于减少代码的能力。基于这个我认之为真的命题,我经常问和我一起工作的程序员:你的程序还能不能精简一点?如果能,那能不能再精简一点? 要减少程序,往往建立在程序员对自己的程序代码本身、对业务,以及对所使用的技术框架都非常的熟悉的情况下,而这些就是一个 阅读全文
posted @ 2016-09-28 12:03 无知者云 阅读 (3830) 评论 (18) 编辑
摘要:这是一个关于Vagrant的学习系列,包含如下文章: 随着微服务越来越被行业所接受,与之相关的持续集成和持续交付的作用和价值也更加突显。在本文中,我们将使用Vgrant和Ansible来自动地创建一套持续交付平台——ThoughtWorks的GoCD。如果你对Jenkins比较熟悉,也可以参考笔者另 阅读全文
posted @ 2016-09-22 17:23 无知者云 阅读 (4337) 评论 (1) 编辑
摘要:这是一个关于Vagrant的学习系列,包含如下文章: 在上一篇文章中,我们讲到了如何创建自己的vagrant box。本文中,我们将使用Vagrant一次性创建3台虚拟机以组成一个Jenkins的master-slave构建环境,其中包含1台Jenkins master机器,2台slave机器。我们 阅读全文
posted @ 2016-08-26 14:12 无知者云 阅读 (3691) 评论 (1) 编辑
摘要:这是一个关于Vagrant的学习系列,包含如下文章: 在上一篇中,我们讲到了Vagrant的基本使用,在本文中我们将尝试创建自己的Vagrant box。 本文源代码:https://github.com/davenkin/vagrant/tree/master/ubuntu1604-jdk1.8- 阅读全文
posted @ 2016-08-21 09:07 无知者云 阅读 (14208) 评论 (4) 编辑