国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Spring-cloud 服務發現與消費(以ribbon為例)

Spring-cloud 服務發現與消費(以ribbon為例)

2021-04-22 12:25東北小狐貍 Java教程

這篇文章主要介紹了Spring-cloud 服務發現與消費(以ribbon為例),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

說明:

ribbon是spring-cloud中作為服務消費者的一種角色,客戶端可以通過它來對服務提供者的服務進行消費,

比如本例中是服務提供者注冊到注冊中心,服務提供者提供了一個服務接口,返回一個hello字符串,我們通過ribbon將這個接口調用,再不暴露真實服務提供者的地址的同時,獲取服務提供者的服務

前提:

按照之前幾個教程,搭建出注冊中心、服務提供者。這里可以使用分片的注冊中心,也可以不使用,這里暫時定為使用之前搭好的分片注冊中心,服務提供者僅提供一個即可。

準備工作:

1、啟動注冊中心

按照之前的教程,分別使用peer1和peer2進行啟動兩個分片的注冊中心,如果是單節點直接啟動項目即可

Spring-cloud 服務發現與消費(以ribbon為例)

啟動后可以查看下localhost:1111或localhost:1112,如圖

Spring-cloud 服務發現與消費(以ribbon為例)Spring-cloud 服務發現與消費(以ribbon為例)

2、啟動服務提供者

這里為了查看負載均衡的情況,所以需要啟動兩個服務提供者

按照之前教程中,分別開啟兩個terminal進行指定端口啟動(兩個相同的服務也可以在各自的配置文件中配置不同的端口),兩個終端指令分別如下:

?
1
2
cd target
java -jar springclouddemo-0.0.1-snapshot.jar --server.port=8080
?
1
2
cd target
java -jar springclouddemo-0.0.1-snapshot.jar --server.port=8081

啟動結果:

Spring-cloud 服務發現與消費(以ribbon為例)

至此,準備工作已經完成

正文:

1、ribbon服務搭建

新建一個maven項目,不使用模板即可。項目名為robbin-customer,導入依賴參考如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelversion>4.0.0</modelversion>
 
  <groupid>com.hellxz</groupid>
  <artifactid>ribbon-customer</artifactid>
  <version>1.0-snapshot</version>
 
  <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>1.5.9.release</version>
    <relativepath/>
  </parent>
  
  <dependencies>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-starter-eureka</artifactid>
      <version>release</version>
    </dependency>
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-starter-ribbon</artifactid>
      <version>release</version>
    </dependency>
  </dependencies>
 
  <dependencymanagement>
    <dependencies>
      <dependency>
        <groupid>org.springframework.cloud</groupid>
        <artifactid>spring-cloud-dependencies</artifactid>
        <version>release</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencymanagement>
</project>

新建springboot啟動類,將resttemplate交給spring容器進行管理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.cnblogs.hellxz;
 
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.cloud.client.discovery.enablediscoveryclient;
import org.springframework.cloud.client.loadbalancer.loadbalanced;
import org.springframework.context.annotation.bean;
import org.springframework.web.client.resttemplate;
 
/**
 * @author : hellxz
 * @description: 消費應用
 * @date : 2018/4/16 15:45
 */
@enablediscoveryclient
@springbootapplication
public class customerapplication {
 
  @bean //將此bean交給spring容器
  @loadbalanced //通過此注解開啟負載均衡
  resttemplate resttemplate(){
    return new resttemplate();
  }
 
  public static void main(string[] args) {
    springapplication.run(customerapplication.class, args);
  }
}

在src/resources目錄下創建一個application.yml進行配置注冊信息相關,本文使用了分片的注冊中心,單節點請配置一個defaltzone即可

?
1
2
3
4
5
6
7
8
9
10
11
12
server:
 port: 9000  #為ribbon-customer指定服務端口
 
spring:
 application:
  name: ribbon-customer #指定應用名
 
#指定eureka注冊中心地址
eureka:
 client:
  serviceurl:
   defaultzone: http://peer1:1111/eureka/,http://peer2:1112/eureka/

在啟動類同級目錄創建customercontroller,注入resttemplate進行調用服務接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.cnblogs.hellxz;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
import org.springframework.web.bind.annotation.restcontroller;
import org.springframework.web.client.resttemplate;
/**
 * @author : hellxz
 * @description: 消費者應用
 * @date : 2018/4/16 15:54
 */
@restcontroller
public class customercontroller {
 
  @autowired
  //注入resttemplate
  private resttemplate resttemplate;
 
  @requestmapping(value="/ribbon-customer", method=requestmethod.get)
  public string hellocustomer(){
    //這里注釋掉,因為之前想當然使用了直鏈訪問服務提供者的接口,這樣是不會返回結果的,而且會報錯
    //return resttemplate.getforentity("http://localhost:8080/hello",string.class).getbody();
    //使用resttemplate調用微服務接口
    return resttemplate.getforentity("http://hello-service/hello", string.class).getbody();
 
  }
}

注意:上述代碼第24行給出了一個錯誤的演示,如果出現訪問ribbon接口報錯,出現白色報錯頁面,請檢查這里

至此ribbon消費者應用搭建完成,啟動測試

測試:

訪問http://localhost:1111/ 我們發現這個ribbon消費者應用已經注冊到注冊中心中了

Spring-cloud 服務發現與消費(以ribbon為例)

訪問http://localhost:9000/ribbon-customer

Spring-cloud 服務發現與消費(以ribbon為例)

還記得服務提供者項目中的如圖方法中如果有訪問則會打印信息,因為啟動了兩個服務提供者,這里可以測試ribbon的負載均衡

Spring-cloud 服務發現與消費(以ribbon為例)

查看服務提供者輸出

Spring-cloud 服務發現與消費(以ribbon為例)

而第二個終端沒有,依舊顯示到resolving eureka endpoints via configuration這行

刷新頁面查看終端,由于ribbon的默認負載均衡的實現是輪詢的,所以可能出現多次訪問同一服務,多刷新幾次頁面,一定會在另一個termical中顯示的!

Spring-cloud 服務發現與消費(以ribbon為例)

結語:

ribbon作為服務消費者,可以在用戶獲取到服務提供者提供的服務的同時,不向用戶暴露接口地址。可以看到,這里調用服務接口的時候使用的是服務提供者的服務名代替主機名,這在服務治理框架中,這種特性很重要。

由于本人之前是先學的jhipster生成器,所以,提前預報一下,之后還會有一種名為feign的技術可以替代ribbon,本系列博客均為學習筆記,實際操作中,可能會存在一個應用既是服務提供者又是服務消費者的情況。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/hellxz/p/8862209.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美日韩久久久久 | 99亚洲精品 | 午夜天堂精品久久久久 | 国产欧美一区二区 | 一区二区三区国产好的精 | 亚洲福利片 | 91中文字幕在线观看 | 日精品 | 亚洲国产高清美女在线观看 | 国产一区二区日韩 | 久久精品国产99国产精品 | 中文字幕免费在线 | 成人黄色在线 | 黑人巨大精品欧美一区免费视频 | 日美毛片 | 欧美与黑人午夜性猛交久久久 | 欧美在线 | 欧美一区二区最爽乱淫视频免费看 | 吴梦梦到粉丝家实战华中在线观看 | 亚洲高清视频在线观看 | 欧美日韩亚洲一区 | 最新国产精品精品视频 | 免费观看欧美一级大片 | 亚洲综合色成在线播放 | 桃色五月 | 蜜桃视频 精品区 | 精品自拍视频在线观看 | 精品成人| www国产精品| 国产精品区二区三区日本 | 国产久| 欧美三级在线 | 欧洲免费av | 日韩欧美在线观看 | 亚洲欧美精选 | 91在线综合 | 黄在线看 | 99看片| 狠狠艹av| 欧美成人激情 | 亚洲一区二区视频 |