- 微服务从小白到专家:Spring Cloud和Kubernetes实战
- 姚秋辰 张昕 卿睿
- 700字
- 2021-10-29 12:24:37
5.6 coupon-template-service微服务架构升级
限于篇幅,Controller类的创建没有包含在正文中,Controller部分代码没有太多业务逻辑,只是对外开放HTTP接口和设置访问路径,读者可以到本书指定的GitHub站点中获取源代码参考。
5.6.1 添加依赖项
在coupon-template-service的pom.xml文件中的<dependency>节点下添加eureka-client的依赖项,代码内容如下:
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/247-1.jpg?sign=1739023982-mvNqvmgaix0Jdp18tAZU0D2Ko9kIwb21-0-3a672bc64a0437724e1a4c25167f8224)
注意:上面代码中添加的依赖项是eureka-client,这与我们在注册中心模块中添加的依赖项不同,注册中心模块添加的依赖项是eureka-server,初学者很容易将两者混淆。
5.6.2 创建启动类
在coupon-template-service下的com.broadview.coupon.template路径中创建启动类,命名为CouponTemplateApplication,启动类的创建代码如下:
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/247-2.jpg?sign=1739023982-mphwbwYonOelO89fzkFaGg18ifJ8fWOw-0-a1bd137b25fc76c68029c0466d3109fc)
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/248-1.jpg?sign=1739023982-jVXHxOG64CAyikEIi6zNuUHQWJd0SqOD-0-6867d069ab02b3791120c04d9b1809e5)
上面代码中的关键注解是@EnableDiscoveryClient,它会在项目启动的同时加载配置信息,根据配置开启Eureka的服务治理功能。该注解是Spring Cloud中的一层标准抽象接口,如果后续想要使用Nacos替换Eureka,则只需要对底层组件的依赖和配置项进行替换,不用改动任何注解。
5.6.3 添加配置项
在src/main/resources目录下创建配置文件application.yml,并添加配置项,具体配置代码如下:
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/248-2.jpg?sign=1739023982-pqzGC1oWr5bvUg3AIgXIo1teyjfWTB83-0-07df8a1996bdad7c53d0745e91f6409b)
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/249-1.jpg?sign=1739023982-aaWcxXMEhqTfP2C3zHkk7cgtl2oKxiWe-0-2ec3c52d77408a4c0a6e1648eb2bc8ca)
以上配置项中有三个关键配置,分别是当前应用的端口号、注册中心地址和应用名称,这三个配置是服务注册的关键信息。
5.6.4 运行项目
项目代码和配置项都添加完毕后,我们就可以启动项目并验证服务注册功能是否正常。首先在coupon-cloud-center项目下将整个项目编译一遍(编译命令为mvn clean install),由于coupon-user-service和coupon-calculation-service还没有进行微服务改造,可以暂时将这两个模块从父类pom中的module节点下注释掉,以免引起编译错误,待改造完成之后再添加进来。
我们可以通过java-jar命令在命令行启动项目,也可以通过在开发工具中直接运行main()方法的方式启动项目。首先将eureka-server和eureka-server1项目启动,待两个项目的注册中心都启动成功后,运行CouponTemplateApplication类中的main()方法。当项目启动完成后,在浏览器中打开注册中心页面,如果可以在服务注册表中看到一条coupon-template-service的记录,那么就宣告coupon-template-service项目改造成功,服务注册信息如图5-6所示。
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/250-01.jpg?sign=1739023982-dhW6rceSCYgyNsomJtWlv5o81eS7ZZI8-0-521345bf96f34e8a599dcda20b1c8823)
图5-6 coupon-template-service的服务注册信息