1-05氢妈、Spring Cloud Alibaba 創(chuàng)建服務(wù)消費(fèi)者

服務(wù)消費(fèi)者的創(chuàng)建與服務(wù)提供者大同小異眼坏,這里采用最原始的一種方式,即顯示的使用 LoadBalanceClient 和 RestTemplate 結(jié)合的方式來訪問

POM

創(chuàng)建一個工程名為 hello-spring-cloud-alibaba-nacos-consumer 的服務(wù)消費(fèi)者項(xiàng)目地粪,pom.xml 配置如下:

<?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>
    <parent>
        <groupId>com.wj</groupId>
        <artifactId>hello-spring-cloud-alibaba-dependencies</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <relativePath>../hello-spring-cloud-alibaba-dependencies/pom.xml</relativePath>
    </parent>

    <artifactId>hello-spring-cloud-alibaba-consumer</artifactId>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- Spring Boot Begin -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot End -->

        <!-- Spring Cloud Begin -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- Spring Cloud End -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.wj.hello.spring.cloud.alibaba.nacos.consumer.NacosConsumerApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Application

package com.wj.hello.spring.cloud.alibaba.nacos.consumer.NacosConsumerApplication;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosConsumerApplication.class, args);
    }
}

Configuration

創(chuàng)建一個名為 NacosConsumerConfiguration 的 Java 配置類取募,主要作用是為了注入 RestTemplate

package com.wj.hello.spring.cloud.alibaba.nacos.consumer.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class NacosConsumerConfiguration {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Controller

創(chuàng)建一個名為 NacosConsumerController 測試用的 Controller

package com.wj.hello.spring.cloud.alibaba.nacos.consumer.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class NacosConsumerController {

    @Autowired
    private LoadBalancerClient loadBalancerClient;

    @Autowired
    private RestTemplate restTemplate;

    @Value("${spring.application.name}")
    private String appName;

    @GetMapping(value = "/echo/app/name")
    public String echo() {
        //使用 LoadBalanceClient 和 RestTemplate 結(jié)合的方式來訪問
        ServiceInstance serviceInstance = loadBalancerClient.choose("nacos-provider");
        String url = String.format("http://%s:%s/echo/%s", serviceInstance.getHost(), serviceInstance.getPort(), appName);
        return restTemplate.getForObject(url, String.class);
    }
}

application.yml

spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

server:
  port: 9091

management:
  endpoints:
    web:
      exposure:
        include: "*"

啟動工程

通過瀏覽器訪問 http://localhost:8848/nacos,即 Nacos Server 網(wǎng)址

你會發(fā)現(xiàn)多了一個名為 nacos-consumer 的服務(wù)

這時打開 http://localhost:9091/echo/app/name 蟆技,你會在瀏覽器上看到:

Hello Nacos Discovery nacos-consumer

服務(wù)的端點(diǎn)檢查

通過瀏覽器訪問 http://localhost:9091/actuator/nacos-discovery 你會在瀏覽器上看到:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玩敏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子质礼,更是在濱河造成了極大的恐慌旺聚,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眶蕉,死亡現(xiàn)場離奇詭異砰粹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)造挽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門碱璃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饭入,你說我怎么就攤上這事嵌器。” “怎么了谐丢?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵嘴秸,是天一觀的道長。 經(jīng)常有香客問我庇谆,道長岳掐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任饭耳,我火速辦了婚禮串述,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寞肖。我一直安慰自己纲酗,他們只是感情好衰腌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著觅赊,像睡著了一般右蕊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吮螺,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天饶囚,我揣著相機(jī)與錄音,去河邊找鬼鸠补。 笑死萝风,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的紫岩。 我是一名探鬼主播规惰,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼泉蝌!你這毒婦竟也來了歇万?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤勋陪,失蹤者是張志新(化名)和其女友劉穎堕花,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粥鞋,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年瞄崇,在試婚紗的時候發(fā)現(xiàn)自己被綠了呻粹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡苏研,死狀恐怖等浊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情摹蘑,我是刑警寧澤筹燕,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站衅鹿,受9級特大地震影響撒踪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜大渤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一制妄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泵三,春花似錦耕捞、人聲如沸衔掸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敞映。三九已至,卻和暖如春磷斧,著一層夾襖步出監(jiān)牢的瞬間定页,已是汗流浹背耸袜。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剂买。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像老玛,于是被迫代替她去往敵國和親蜕青。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354