亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Spring Cloud的Eureka實現服務注冊

發布時間:2022-03-03 16:09:59 來源:億速云 閱讀:113 作者:iii 欄目:web開發

今天小編給大家分享一下怎么用Spring Cloud的Eureka實現服務注冊的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

  Eureka 是 Netflix 開源的服務注冊發現組件,服務發現可以說是微服務架構的核心功能了,微服務部署之后,一定要有服務注冊和發現的能力,Eureka 就是擔任這個角色的。如果你用過 dubbo 的話,那一定知道 dubbo 中服務注冊和發現的功能是用 zookeeper 來實現的。

  Eureka 目前是 2.x 版本,并且官方已經宣布不再維護更新。不過其實 Eureka 已經很穩定了,當做注冊中心完全沒有問題。Spring Cloud 集成了 Eureka ,并做了完善的封裝。方便我們使用 Spring boot 開發的時候簡單配置就可以使用。

  微服務框架中有三類角色,分別是注冊中心、服務提供者、服務消費者,注冊中心就是今天要說的主角 Eureka,這篇文章簡單說明 Spring Cloud Eureka 的使用,模擬實現單點和高可用注冊中心,并簡單介紹服務提供者和服務消費者如何使用 Eureka 提供的服務注冊和發現功能。

  版本說明

  Java : 1.8

  Spring Boot : 2.1.3.RELEASE

  Spring Cloud: Finchley.SR2

  之說以要說一下版本,因為 Finchley.SR2 版本較之前的版本包名有變化,所以在引用 maven 包的時候要注意。

  單點注冊中心

  創建 Eureka 注冊中心

  1、引用 maven 包,其中

  <dependencyManagement>

  <dependencies>

  <dependency>

  <groupId>org.springframework.cloud</groupId>

  <artifactId>spring-cloud-dependencies</artifactId>

  <version>Finchley.SR2</version>

  <type>pom</type>

  <scope>import</scope>

  </dependency>

  </dependencies>

  </dependencyManagement>

  <!-- 最新版的 eureka 服務端包 -->

  <dependency>

  <groupId>org.springframework.cloud</groupId>

  <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

  </dependency>

  <!-- 監控管理 -->

  <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-actuator</artifactId>

  </dependency>

  2、新建 bootstrap.yml,并配置 Spring cloud 參數

  spring:

  application:

  name: kite-eureka-center

  cloud:

  inetutils: ## 網卡設置

  ignoredInterfaces:  ## 忽略的網卡

  - docker0

  - veth.*

  - VM.*

  preferredNetworks:  ## 優先的網段

  - 192.168

  3、新建 application.yml ,并配置參數

  server:

  port: 3000

  eureka:

  instance:

  hostname: eureka-center

  appname: 注冊中心

  client:

  registerWithEureka: false # 單點的時候設置為 false 禁止注冊自身

  fetchRegistry: false

  serviceUrl:

  defaultZone: http://localhost:3000/eureka

  server:

  enableSelfPreservation: false

  evictionIntervalTimerInMs: 4000

  bootstrap.yml 和 application.yml 的區別:

  bootstrap.yml 在 application.yml 之前啟動;

  bootstrap.yml 配置 application 的 name、spring.cloud.config.server.git.uri、一些encryption/decryption(加密/解密)信息;

  application.yml 的信息會覆蓋 bootstrap.yml 中的內容,當遇到相同的配置的時候;

  4、新建 Application.java 啟動文件

  @EnableEurekaServer

  @SpringBootApplication

  public class Application {

  public static void main(String[] args) {

  SpringApplication.run(Application.class, args);

  }

  }

  @EnableEurekaServer 表示使用 Eureka Server 端功能,也就是啟動為一個注冊中心節點。

  5、運行 Application.java ,訪問 http://localhost:3000 即可看到 Eureka 提供的 ui 控制臺。

  創建一個服務提供者

  接下來創建一個服務提供者,并注冊到上面創建的 Eureka 注冊中心。

  1、添加 maven 依賴包

  <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-web</artifactId>

  </dependency>

  <!-- eureka 客戶端 -->

  <dependency>

  <groupId>org.springframework.cloud</groupId>

  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

  </dependency>

  2、配置 application.yml

  server:

  port: 3001

  eureka:

  instance:

  preferIpAddress: true

  client:

  serviceUrl:

  defaultZone: http://localhost:3000/eureka  ## 注冊到 eureka

  spring:

  application:

  name: single-provider  ## 應用程序名稱,后面會在消費者中用到

  3、創建一個簡單的 RESTful 接口 controller

  @Slf4j

  @RestController

  public class ProviderController {

  @Autowired

  private DiscoveryClient discoveryClient;

  @RequestMapping(value = "/hello")

  public String hello(){

  List<String> services = discoveryClient.getServices();

  for(String s : services){

  log.info(s);

  }

  return "hello spring cloud!";

  }

  @RequestMapping(value = "/nice")

  public String nice(){

  List<String> services = discoveryClient.getServices();

  for(String s : services){

  log.info("gogogo" + s);

  }

  return "nice to meet you!";

  }

  }

  4、創建 spring boot 啟動類

  @EnableEurekaClient

  @SpringBootApplication

  public class SingleProviderApplication {

  public static void main(String[] args) {

  SpringApplication.run(SingleProviderApplication.class, args);

  }

  }

  @EnableEurekaClient 修飾,表示要注冊到注冊中心。

  5、啟動項目,正常情況下就注冊到了 Eureka 注冊中心,打開 Eureka 控制臺,會看到已經出現了這個服務

  創建一個服務消費者

  有了服務提供者,接下來創建一個消費者來消費一下

  1、引用 maven 包

  <dependency>

  <groupId>org.springframework.cloud</groupId>

  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

  </dependency>

  <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-web</artifactId>

  </dependency>

  <dependency>

  <groupId>org.springframework.cloud</groupId>

  <artifactId>spring-cloud-starter-openfeign</artifactId>

  </dependency>

  <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-actuator</artifactId>

  </dependency>

  2、配置 application.yml

  server:

  port: 3002

  eureka:

  client:

  serviceUrl:

  defaultZone: http://127.0.0.1:3000/eureka  ## 注冊到 eureka

  instance:

  preferIpAddress: true

  spring:

  application:

  name: single-customer

  3、開始消費提供者提供的服務接口,這里演示了兩種消費方法,一種是用 RestTemplate ,另外一種是用 FeignClient,Feign 同樣是 Netflix 開源,并被 Spring Cloud 封裝到 spring-cloud-starter-openfeign 包中。

  創建啟動類,并添加相關注解

  @SpringBootApplication

  @EnableEurekaClient

  @EnableFeignClients

  public class SingleCustomerApplication {

  /**

  * 注入 RestTemplate

  * 并用 @LoadBalanced 注解,用負載均衡策略請求服務提供者

  * 這是 Spring Ribbon 的提供的能力

  * @return

  */

  @LoadBalanced

  @Bean

  public RestTemplate restTemplate() {

  return new RestTemplate();

  }

  public static void main(String[] args) {

  SpringApplication.run(SingleCustomerApplication.class, args);

  }

  }

  @EnableEurekaClient 聲明此項目為一個 eureka 客戶端,@EnableFeignClients 聲明此項目可以使用 Feign。

  4、創建一個服務接口類,這是 Feign 的使用方式,詳細的用法可以查一下 Spring Cloud Feign 相關文檔

  /**

  * IHelloService

  * 配置服務提供者:single-provider 是服務提供者的 application.name

  */

  @FeignClient("single-provider")

  public interface IHelloService {

  @RequestMapping(value = "/hello")

  String hello();

  @RequestMapping(value = "nice")

  String nice();

  }

  @FeignClient 注解的 value 為服務提供者的 appplication.name 。

  5、創建一個 Controller 用于調用服務

  @RestController

  public class ConsumerController {

  @Autowired

  private RestTemplate restTemplate;

  @Autowired

  private IHelloService helloService;

  private static final String applicationName = "single-provider";

  @RequestMapping(value = "feignRequest")

  public Object feignRequest(){

  String s = helloService.nice();

  return s;

  }

  @RequestMapping(value = "commonRequest")

  public Object commonRequest(){

  String url = "http://"+ applicationName +"/hello";

  String s = restTemplate.getForObject(url,String.class);

  return s;

  }

  }

  其中 feignRequest 方法是使用了 Feign 的方式調用服務接口;

  commonRequest 方法是用 RestTemplate 提供的方法調用服務接口;

以上就是“怎么用Spring Cloud的Eureka實現服務注冊”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德化县| 蓬安县| 余姚市| 洛浦县| 开阳县| 郑州市| 合阳县| 临武县| 崇文区| 新宁县| 乌拉特中旗| 江口县| 张家港市| 富宁县| 探索| 武汉市| 巩留县| 迁西县| 盘锦市| 神农架林区| 贵港市| 荣昌县| 石林| 木里| 长子县| 原平市| 波密县| 隆林| 错那县| 嘉峪关市| 鱼台县| 天气| 保定市| 贵港市| 城固县| 民县| 潞西市| 台湾省| 贵溪市| 西乡县| 大庆市|