spring和kafka集成

kafka

创建项目

  • 创建项目文件夹spring-kafka
  • 生成项目结构gradle init --type java-library

阅读全文

分享到

接口无益

你认为接口怎么样?

你的意识是Java或者C#的interface

是的,接口是一个好的语言特性吗?

当然,接口很好用!

真的吗,呃。接口是什么?一个类吗?

不是,和类不一样。

怎么说?

接口没有方法实现。

这是一个接口吗?

1
2
3
public abstract class MyInterface {
public abstract void f();
}

这不是,这是一个抽象类。

阅读全文

分享到

小小单例模式

单例模式

你熟悉这段代码吗:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class X {
private static X instance = null;

private X() {}

public static X instance() {
if (instance == null)
instance = new X();
return instance;
}

// more methods...
}

当然。这是GOF这本书里面提到的单例模式。但是我总是听到别人说我们不应该使用它。

为什么我们不应该使用它?

因为它使得我们的系统难以测试

真的吗?为什么会那样呢?

因为你不能模拟(mock)一个单例对象。

不能吗?为什么不能?

这样说吧,因为唯一能够访问私有变量的类只有单例对象自身,不暴露给外部就没办法模拟(mock)。

阅读全文

分享到

微服务利弊权衡

微服务架构

现在许多开发团队已经意识到微服务架构模式会是解决大型单体应用架构所带来的问题的首选解决方案,但是某些团队也反应微服务架构会在某种程度上降低整个开发团队的开发效率。与任何其他架构模式一样,微服务架构也有其利弊之处,结合你特定的应用场景理解这些利弊之处能够帮助你做出更加明智的选择。

微服务带来的好处…

  • 高度的模块边界化:微服务促进系统模块化,对大型团队尤其重要。
  • 独立部署:简单的服务部署更为容易因为它的依赖更少,并且服务是相对独立的,而且当某个服务出错时不太可能引起整个应用程序系统崩溃。
  • 技术多样性:使用微服务你可以混用多种开发语言,开发框架和数据存储技术。

微服务引入的成本…

  • 分布式:由于远程调用速度慢且出错风险极高,分布式系统开发难度极大。
  • 最终一致性:在分布式系统中维护数据一致性极其困难,它意味着每个服务都必须关注并处理的最终一致性问题。
  • 运维复杂性:你需要一个较为成熟的维护团队来管理诸多的微服务,处理日常的微服务更新及频繁部署等问题。

阅读全文

分享到

互联网+

互联网+

  眼下,互联网+持续升温,发展迅猛,加之政府大力扶持,中国经济开始进入技术、模式和产业大变革时期。在“站在这个风口上,猪都能飞起来了”的大背景之下,涌现出了一大批勇于创业积极创新的先进集体和个人。

宏观政策

  当下,经济下行压力巨大,消费、投资和出口已不再是保持中国经济增长可靠的引擎。中国迫切的需要一个新的政策来拉动经济,促进消费及解决日益严峻的就业压力;加之地产行业的持续低迷,资产加速逃离,大量闲置资金急迫需要寻找下一个可靠的“资金池”以缓解经济运行压力。 “大众创业、万众创新”作为经济增长的双引擎之首写入政府工作报告, 以一种”抛开杂念,放手一搏“的精神激励着广大人民勇于创业积极创新的势头,可见政府抓重点调整产业结构的决心。互联网+恰好在各行各业起到了催化剂的作用,必将加速重塑传统行业的进程。

阅读全文

分享到