Spring Cloud 学习笔记——Eureka 客户端介绍、基本搭建和客户端集群

tech2022-07-08  147

6.1 Eureka 客户端

前面【Spring Cloud 学习笔记——Eureka 服务端集群、Eureka 工作细节、Eureka 集群原理】介绍完了 Eureka Sever,现在开始搭建客户端 Eureka Client;搭建客户端也非常方便,只需要 在 application.properties 中添加 3 行配置就可以了客户端要有两种,一种是被调用的客户端,一种是调用其他接口的客户端,是根据业务人为划分的,也可以叫生产者服务,一种消费者服务,以下简称 provider 和 consumer

6.1.1 Eureka Client —— provider

创建 provider 的module 输入项目名 选择 Web 、Eureka Discovery Client依赖 appliction.properties spring.application.name=provider server.port=1113 eureka.client.service-url.defaultZone=http://eurekaB:1112/eureka,http://eurekaA:1111/eureka 编写 HelloController @RestController public class HelloController { @Value("${server.port}") Integer port; @RequestMapping("/hello") public String hello(){ return "hello " + port; } } 启动项目,在 Eureka Server 中查看注册信息,看到 provider 服务注册到 Eureka Server,即 Eureka Client 注册到 Eureka Server 了

6.1.2 Eureka Client —— consumer

与 provider 一样,在 springcloudtest 项目中创建 consumer 的 moudle

输入项目名

选择 Web 、Eureka Discovery Client依赖

appliction.properties

spring.application.name=provider server.port=1115 eureka.client.service-url.defaultZone=http://eurekaB:1112/eureka,http://eurekaA:1111/eureka 编写 UseHelloController,使用 Java SE 请求访问 provider, @RestController public class UseHelloController { @GetMapping("/hello1") public String hello1() { HttpURLConnection conn = null; try { URL url = new URL("http://localhost:1113/hello"); conn = (HttpURLConnection) url.openConnection(); if (conn.getResponseCode() == 200) { BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String s = br.readLine(); br.close(); return s; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return "error!"; }

-在之前的 Eureka Server 集群基础上,打包 provider、consumer,通过命令行启动两个服务:

java -jar provider-0.0.1-SNAPSHOT.jar --server.port=1113 java -jar consumer-0.0.1-SNAPSHOT.jar --server.port=1115

然后通过,访问 Eureka 的可视化窗口:http://localhost:1111,查看注册情况

通过客户端 consumer 调用 provider 接口,成功了,证明单客户端、集群化服务的配置可用了 开始集群化 Eureka Clinet ,即集群化 provider、consumer服务,通过命令行再启动两个服务 java -jar provider-0.0.1-SNAPSHOT.jar --server.port=1114 java -jar consumer-0.0.1-SNAPSHOT.jar --server.port=1116

查看注册情况 访问:http://localhost:1111 通过 1116 端口的 consumer 服务访问 provider的内容,如果成功证明 consumer 集群可用; 因为 consumer 中的调用代码写死是访问 1113 端口的 provider,不能确定 provider 集群是否好用;获取服务也是写死的没有利用 Eureka Discovery Client ;在介绍 RestTemplate 和负载均衡的时候再进一步验证 provider 集群,并利用 Eureka 获取服务地址
最新回复(0)