@Autowired 自动装配与冲突

今天在写代码的时候遇到这个情况

以前也经常这么写,在需要注入的属性上面直接添加 @Autowired 注解,但是今天注意到 @Autowired 是有警告的:Field Injection is not recommended,来看一下 IDEA 给的建议:Create Constructor: AuthProvider(UserService userService),原来是不建议使用属性注入的方式,而是建议使用 构造器注入,那么它们之间有什么区别呢?

SpringCloud 微服务(服务提供者和服务消费者)

本系列基于《SpringCloud 与 Docker 微服务架构实战》(作者:周立)一书

传统的项目都是 单体 结构的,简单的说就是一个 war 包,部署在 servlet 容器中。这是很多项目初期的架构选择,这种方案的优点是开发和运维都比较容易,简单的业务场景下维护的成本较低。随着业务的发展,这种架构暴露出严重的问题

SpringCloud 微服务实战(服务发现组件)

上一节我们搭建了最基础的两个微服务,他们分别是服务提供者 microservice-provider-user 与服务消费者 microservice-provider-movie,并使用 RestTemplate 成功的在消费者端调用了提供者的服务,但是也看到了存在一些问题:每次调用的时候需要传入服务提供者的 IP 地址和端口号。想象一下如果 user 服务改变了地址和端口,那些服务消费者(可能有多个)都需要更改,有人可能会说可以把 user 服务的地址和端口写成配置文件,这样相比硬编码在代码中确实要好一些,但是仍然不够优雅

SSH 原理

SSH 是连接 Linux 服务器中最常用的协议和工具,无论是自己本地开的虚拟机还是远端的云服务器。前段时间在配置 Hadoop 以及 Spark 集群的过程中用到了 SSH免密登录,虽然经常用 SSH 但用到的都是最基本的密码登录,这次就趁着这个机会,好好地了解了一下 SSH 的免密登录原理

Kafka 安装及使用

  • Zookeeper 3.4.8
  • Kafka 2.11-0.10.2.1
    • 2.11 表示 Scala 的版本,0.10 表示 Kafka 的版本

data 是本机的 hostname,在所有配置 hostname 的地方都可以配成本机的 IP 地址