请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 375|回复: 1

Spring Cloud构建微服务架构-创建“服务提供方”

[复制链接]
发表于 2018-7-5 17:17:04 | 显示全部楼层 |阅读模式
本帖最后由 IT侠客 于 2018-7-5 17:18 编辑

下面我们创建提供服务的客户端,并向服务注册中心注册自己。本文我们主要介绍服务的注册与发现,所以我们不妨在服务提供方中尝试着提供一个接口来获取当前所有的服务信息。
首先,创建一个基本的Spring Boot应用。命名为eureka-client,在pom.xml中,加入如下配置:
  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>1.5.4.RELEASE</version>
  5. <relativePath/> <!-- lookup parent from repository -->
  6. </parent>
  7. <dependencies>
  8. <dependency>
  9. <groupId>org.springframework.cloud</groupId>
  10. <artifactId>spring-cloud-starter-eureka</artifactId>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-web</artifactId>
  15. </dependency>
  16. </dependencies>
  17. <dependencyManagement>
  18. <dependencies>
  19. <dependency>
  20. <groupId>org.springframework.cloud</groupId>
  21. <artifactId>spring-cloud-dependencies</artifactId>
  22. <version>Dalston.SR1</version>
  23. <type>pom</type>
  24. <scope>import</scope>
  25. </dependency>
  26. </dependencies>
  27. </dependencyManagement>
复制代码
其次,实现/dc请求处理接口,通过DiscoveryClient对象,在日志中打印出服务实例的相关内容。
  1. @RestController
  2. public class DcController {
  3. @Autowired
  4. DiscoveryClient discoveryClient;
  5. @GetMapping("/dc")
  6. public String dc() {
  7. String services = "Services: " + discoveryClient.getServices();
  8. System.out.println(services);
  9. return services;
  10. }
  11. }
复制代码
最后在应用主类中通过加上@EnableDiscoveryClient注解,该注解能激活Eureka中的DiscoveryClient实现,这样才能实现Controller中对服务信息的输出。
  1. @EnableDiscoveryClient
  2. @SpringBootApplication
  3. public class Application {
  4. public static void main(String[] args) {
  5. new SpringApplicationBuilder(
  6. ComputeServiceApplication.class)
  7. .web(true).run(args);
  8. }
  9. }
复制代码
我们在完成了服务内容的实现之后,再继续对application.properties做一些配置工作,具体如下:
  1. spring.application.name=eureka-client
  2. server.port=2001
  3. eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
复制代码
通过spring.application.name属性,我们可以指定微服务的名称后续在调用的时候只需要使用该名称就可以进行服务的访问。eureka.client.serviceUrl.defaultZone属性对应服务注册中心的配置内容,指定服务注册中心的位置。为了在本机上测试区分服务提供方和服务注册中心,使用server.port属性设置不同的端口。
 楼主| 发表于 2018-7-5 17:18:46 | 显示全部楼层
喜欢文章的朋友可以持续关注内容更新~~
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2020-3-29 07:06 , Processed in 0.263019 second(s), 7 queries , File On.

快速回复 返回顶部 返回列表