![微服务从小白到专家:Spring Cloud和Kubernetes实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/981/41202981/b_41202981.jpg)
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=1738884192-d1aurILRmFdSce5277vR6f74TfpVPYHq-0-97c53d7d2b0fd970b26fc8ec2a96a72a)
注意:上面代码中添加的依赖项是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=1738884192-pduS0SSN1JKFelvXJa36Xy79oHoBPBtM-0-ac9891eabdc3c8a9337eb7e081cf090d)
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/248-1.jpg?sign=1738884192-0yhJjpaTBgPrCKjnClbHRBkJPuW6ACb6-0-2dc51130c11eaf845dcfa41188d8c366)
上面代码中的关键注解是@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=1738884192-qYCWpm4EJKpqU3RMkWSrkbgD2fjep3Bc-0-3984cbb04e3b2bc1135cbecf4042e04a)
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/249-1.jpg?sign=1738884192-7xlp5OKoMoUYXWxKkGN7nLp5MXVzIVT2-0-cf1c713bab567cb78e4043e900f2d215)
以上配置项中有三个关键配置,分别是当前应用的端口号、注册中心地址和应用名称,这三个配置是服务注册的关键信息。
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=1738884192-sO7sIReRwLeTWfn37Tq5vlnWcENUOI44-0-349895100de5f6dab5a7815c497a7ae6)
图5-6 coupon-template-service的服务注册信息