上一篇文章创建了一个 user-service 微服务,本文编写一个消费者,本文比较简单。
1 目标
创建一个 movie-service,该服务器也能够查询用户信息,但是内部是通过调用 user-service 服务调用的。可能有人会问,为什么还要有一个中转,直接调用 user-service 不就好了吗?这里由于我只是做例子业务比较简单,两者都可以,但是实际中如果我们购买电影票,第一步要先验证用户信息,就需要先去请求 user-service 服务,本文例子是模拟这种情况。
本文的最终实现欠缺一定的灵活性,文末会给出一定的解决方案。
2 编写代码
2.1 创建工程
参照第一篇文章 Spring Cloud 入门(1)– 第一个 Kotlin 微服务 创建微服务 movie-service, artifactId 为 movie-service。依赖目前只选择 web 就可以了。
2.2 User Entity
将 user-service 中的 User 类,复制到新工程下(对于公用的一些Model,可以做成 Maven 的依赖,这里为了简单就复制了)。
package io.mshare.study.movieservice.entity
import java.math.BigDecimal
data class User(val id: Long = 0,
val username: String = "",
val name: String = "",
val age: Int =0,
val balance: BigDecimal = BigDecimal.ZERO)
2.3 修改 Application 类
在 Application 类中添加 restTemplate, 这个可以理解成 Spring Cloud 封装的网络请求的工具,可以类比 HttpClient,但是与Spring Cloud 结合更加紧密(以后会看到与 Eureka