Eureka的元数据
生活随笔
收集整理的這篇文章主要介紹了
Eureka的元数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一 介紹
Eureka的元數據有兩種:標準元數據和自定義元數據。 標準元數據:主機名、IP地址、端口號、狀態頁和健康檢查等信息,這些信息都會被發布在服務注冊表中,用于服務之間的調用。 自定義元數據:可以使用eureka.instance.metadata-map配置,這些元數據可以在遠程客戶端中訪問,但是一般不改變客戶端行為,除非客戶端知道該元數據的含義。 二 改造用戶微服務的application.yml server:port: 8000 spring:application:name: microservice-provider-userjpa:generate-ddl: falseshow-sql: truehibernate:ddl-auto: nonedatasource: # 指定數據源platform: h2 # 指定數據源類型schema: classpath:schema.sql # 指定h2數據庫的建表腳本data: classpath:data.sql # 指定h2數據庫的數據腳本 logging: # 配置日志級別,讓hibernate打印出執行的SQLlevel:root: INFOorg.hibernate: INFOorg.hibernate.type.descriptor.sql.BasicBinder: TRACEorg.hibernate.type.descriptor.sql.BasicExtractor: TRACE eureka:client:serviceUrl:defaultZone:http://localhost:8761/eureka/instance:prefer-ip-address: truemetadata-map:my-metadata: 我自定義的元數據 # 自定義的元數據,key/value都可以隨便寫。 三 改造電影微服務的Controller package com.itmuch.cloud.study.user.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate;import com.itmuch.cloud.study.user.entity.User;@RestController public class MovieController {@Autowiredprivate RestTemplate restTemplate;@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/user/{id}")public User findById(@PathVariable Long id) {return this.restTemplate.getForObject("http://localhost:8000/" + id, User.class);}/*** 查詢microservice-provider-user服務的信息并返回* @return microservice-provider-user服務的信息*/@GetMapping("/user-instance")public List<ServiceInstance> showInfo() {return this.discoveryClient.getInstances("microservice-provider-user");} } 使用DiscoveryClient.getInstances(serviceId),可查詢指定微服務在Eureka上的實例列表。 四 測試 1?先啟動microservice-discovery-eureka、microservice-consumer-movie-understanding-metadata、microservice-provider-user-my-metadata 2?訪問http://localhost:8761/eureka/apps 3?訪問 http://localhost:8010/user-instance 可以看到,使用DiscoveryClient的API獲得了用戶微服務的各種信息,其中包括了標準元數據和自定義元數據。例如IP、端口等信息都是標準元數據,用于服務之間的調用;同時,自定義元數據my-metadata,也可通過客戶端查詢到,但是并不會改變客戶端的行為。
Eureka的元數據有兩種:標準元數據和自定義元數據。 標準元數據:主機名、IP地址、端口號、狀態頁和健康檢查等信息,這些信息都會被發布在服務注冊表中,用于服務之間的調用。 自定義元數據:可以使用eureka.instance.metadata-map配置,這些元數據可以在遠程客戶端中訪問,但是一般不改變客戶端行為,除非客戶端知道該元數據的含義。 二 改造用戶微服務的application.yml server:port: 8000 spring:application:name: microservice-provider-userjpa:generate-ddl: falseshow-sql: truehibernate:ddl-auto: nonedatasource: # 指定數據源platform: h2 # 指定數據源類型schema: classpath:schema.sql # 指定h2數據庫的建表腳本data: classpath:data.sql # 指定h2數據庫的數據腳本 logging: # 配置日志級別,讓hibernate打印出執行的SQLlevel:root: INFOorg.hibernate: INFOorg.hibernate.type.descriptor.sql.BasicBinder: TRACEorg.hibernate.type.descriptor.sql.BasicExtractor: TRACE eureka:client:serviceUrl:defaultZone:http://localhost:8761/eureka/instance:prefer-ip-address: truemetadata-map:my-metadata: 我自定義的元數據 # 自定義的元數據,key/value都可以隨便寫。 三 改造電影微服務的Controller package com.itmuch.cloud.study.user.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate;import com.itmuch.cloud.study.user.entity.User;@RestController public class MovieController {@Autowiredprivate RestTemplate restTemplate;@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/user/{id}")public User findById(@PathVariable Long id) {return this.restTemplate.getForObject("http://localhost:8000/" + id, User.class);}/*** 查詢microservice-provider-user服務的信息并返回* @return microservice-provider-user服務的信息*/@GetMapping("/user-instance")public List<ServiceInstance> showInfo() {return this.discoveryClient.getInstances("microservice-provider-user");} } 使用DiscoveryClient.getInstances(serviceId),可查詢指定微服務在Eureka上的實例列表。 四 測試 1?先啟動microservice-discovery-eureka、microservice-consumer-movie-understanding-metadata、microservice-provider-user-my-metadata 2?訪問http://localhost:8761/eureka/apps 3?訪問 http://localhost:8010/user-instance 可以看到,使用DiscoveryClient的API獲得了用戶微服務的各種信息,其中包括了標準元數據和自定義元數據。例如IP、端口等信息都是標準元數據,用于服務之間的調用;同時,自定義元數據my-metadata,也可通過客戶端查詢到,但是并不會改變客戶端的行為。
總結
以上是生活随笔為你收集整理的Eureka的元数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据仓库——元数据、主数据
- 下一篇: 一篇文章搞懂数据仓库:元数据分类、元数据