spring cloud alibaba系列(一)Nacos 服務注冊

alibaba-cloud

本項目演示如何使用 spring cloud alibaba系列之服務的注冊于發(fā)現(xiàn)

引入依賴

  • 版本 0.2.1.RELEASE 對應的是 Spring Cloud Finchley 版本镐躲,

  • 版本 0.1.1.RELEASE 對應的是 Spring Cloud Edgware 版本储玫。

  • 官方文檔目前推薦的SpringBoot 2.0.6.RELEASE版本。如果注冊不了一般都是版本不對萤皂∪銮睿可以去官方文檔查看對應的版本
    如果需要使用已發(fā)布的版本,在 dependencyManagement 中添加如下配置裆熙。

    <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                  <version>0.2.1.RELEASE</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
          </dependencies>
      </dependencyManagement>
    

然后在 dependencies 中添加自己所需使用的依賴即可使用端礼。

如果您想體驗最新的 BUILD-SNAPSHOT 的新功能,則可以將版本換成最新的版本入录,但是需要在 pom.xml 中配置 Spring BUILDSNAPSHOT 倉庫蛤奥,注意: SNAPSHOT 版本隨時可能更新

<repositories>
    <repository>
        <id>spring-snapshot</id>
        <name>Spring Snapshot Repository</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

服務的注冊發(fā)現(xiàn)(Nacos Discovery)

Nacos 是阿里巴巴開源的一個更易于構建云原生應用的動態(tài)服務發(fā)現(xiàn)、配置管理和服務管理平臺僚稿。
如何使用Nacos Discovery Starter 完成 Spring Cloud 應用的服務注冊與發(fā)現(xiàn)

創(chuàng)建服務提供者

新建一個項目 cloud-client

  1. 引入Nacos Discovery Starter
      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
  1. 配置Nacos Server地址
server.port=18082
#服務名稱
spring.application.name=cloud-client
#Nacos Server 地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
  1. 啟動類上使用 @EnableDiscoveryClient 注解開啟服務注冊與發(fā)現(xiàn)功能

4 下載 Nacos Server :https://github.com/alibaba/nacos/releases

  1. 啟動 Server
  • Linux/Unix/Mac 操作系統(tǒng)凡桥,執(zhí)行命令 sh startup.sh -m standalone

  • Windows 操作系統(tǒng),執(zhí)行命令 cmd startup.cmd

  • 訪問控制臺:http://127.0.0.1:8848/nacos/index.html

    0.8版本默認登錄賬號的密碼nacos/nacos.

image

啟動

出現(xiàn)如下信息說明注冊到nacos成功


image

nacos控制條界面就會出現(xiàn)注冊的服務


image

以上步驟向您展示了如何將一個服務注冊到 Nacos蚀同。

創(chuàng)建消費者

新建一個項目 cloud-consumer.配置文件和消費者一樣更換下端口即可缅刽。

server.port=18083
spring.application.name=service-consumer
#Nacos Server 地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
management.endpoints.web.exposure.include=*

啟動類同樣添加@EnableDiscoveryClient 注冊到nacos

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


    //實例化 RestTemplate 實例
    @Bean
    public RestTemplate restTemplate(){

        return new RestTemplate();
    }

}

新建一個 ConsumerController

@RestController
public class ConsumerController {

    @Autowired
    private LoadBalancerClient loadBalancerClient;
    @Autowired
    private RestTemplate restTemplate;

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

    /**
     * 通過帶有負載均衡的RestTemplate 和 FeignClient 也是可以訪問的
     * @return
     */
    @GetMapping("/echo/app-name")
    public String echoAppName(){
        //使用 LoadBalanceClient 和 RestTemolate 結合的方式來訪問
        ServiceInstance serviceInstance = loadBalancerClient.choose("service-provider");
        String url = String.format("http://%s:%s/echo/%s",serviceInstance.getHost(),serviceInstance.getPort(),appName);
        System.out.println("request url:"+url);
        return restTemplate.getForObject(url,String.class);
    }

}

分別啟動cloud-client和cloud-consumer刷新nacos


image

兩個服務都注冊成功

測試

訪問 http://127.0.0.1:18083/echo/app-name 消費者輸出訪問日志說明請求成功

image

瀏覽器出現(xiàn) 第一個Nacos 程序service-consumer 到此Over 基于Nacos實現(xiàn)的服務注冊發(fā)現(xiàn)已經(jīng)調(diào)用就到此為止。入門還是很簡單的 阿里巴巴大法好蠢络!

Nacos更多配置信息

spring.cloud.nacos.discovery.server-addr  #Nacos Server 啟動監(jiān)聽的ip地址和端口
spring.cloud.nacos.discovery.service  #給當前的服務命名
spring.cloud.nacos.discovery.weight  #取值范圍 1 到 100衰猛,數(shù)值越大,權重越大
spring.cloud.nacos.discovery.network-interface #當IP未配置時刹孔,注冊的IP為此網(wǎng)卡所對應的IP地址腕侄,如果此項也未配置,則默認取第一塊網(wǎng)卡的地址
spring.cloud.nacos.discovery.ip  #優(yōu)先級最高
spring.cloud.nacos.discovery.port  #默認情況下不用配置芦疏,會自動探測
spring.cloud.nacos.discovery.namespace #常用場景之一是不同環(huán)境的注冊的區(qū)分隔離冕杠,例如開發(fā)測試環(huán)境和生產(chǎn)環(huán)境的資源(如配置、服務)隔離等酸茴。

spring.cloud.nacos.discovery.access-key  #當要上阿里云時分预,阿里云上面的一個云賬號名
spring.cloud.nacos.discovery.secret-key #當要上阿里云時,阿里云上面的一個云賬號密碼
spring.cloud.nacos.discovery.metadata    #使用Map格式配置薪捍,用戶可以根據(jù)自己的需要自定義一些和服務相關的元數(shù)據(jù)信息
spring.cloud.nacos.discovery.log-name   日志文件名
spring.cloud.nacos.discovery.enpoint   #地域的某個服務的入口域名笼痹,通過此域名可以動態(tài)地拿到服務端地址
ribbon.nacos.enabled  #是否集成Ribbon 一般都設置成true即可

Demmo源碼:https://github.com/a870439570/alibaba-cloud

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末配喳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凳干,更是在濱河造成了極大的恐慌晴裹,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件救赐,死亡現(xiàn)場離奇詭異涧团,居然都是意外死亡,警方通過查閱死者的電腦和手機经磅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門泌绣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人预厌,你說我怎么就攤上這事阿迈。” “怎么了轧叽?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵苗沧,是天一觀的道長。 經(jīng)常有香客問我炭晒,道長待逞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任腰埂,我火速辦了婚禮飒焦,結果婚禮上蜈膨,老公的妹妹穿的比我還像新娘屿笼。我一直安慰自己,他們只是感情好翁巍,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布驴一。 她就那樣靜靜地躺著,像睡著了一般灶壶。 火紅的嫁衣襯著肌膚如雪肝断。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天驰凛,我揣著相機與錄音胸懈,去河邊找鬼。 笑死恰响,一個胖子當著我的面吹牛趣钱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胚宦,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼首有,長吁一口氣:“原來是場噩夢啊……” “哼燕垃!你這毒婦竟也來了?” 一聲冷哼從身側響起井联,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卜壕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烙常,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轴捎,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年军掂,在試婚紗的時候發(fā)現(xiàn)自己被綠了轮蜕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝗锥,死狀恐怖跃洛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情终议,我是刑警寧澤汇竭,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站穴张,受9級特大地震影響细燎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜皂甘,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一玻驻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧偿枕,春花似錦璧瞬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至墓塌,卻和暖如春瘟忱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苫幢。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工访诱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人韩肝。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓触菜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伞梯。 傳聞我的和親對象是個殘疾皇子玫氢,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud學習02-服務注冊與發(fā)現(xiàn) Spring Cloud簡介 Spring Cloud是一個基于...
    it_zzy閱讀 4,632評論 2 20
  • 我們在拜讀Linux內(nèi)核源代碼時帚屉,是否會經(jīng)常遇到一些既熟悉又陌生的C語言語法?熟悉是因為我們對Linux內(nèi)核中使用...
    Leon_Geo閱讀 521評論 2 10
  • 外面的世界太美了漾峡! 眼前的一切讓小家伙們感到不可思議攻旦,他們嘰嘰咕咕,指手畫腳生逸,向鼠媽提出數(shù)不清的問題牢屋。 真正的快樂...
    東燕川閱讀 405評論 0 1
  • 建議籃筐靠近模特群擺放 增加棉花展示 參考下圖 男模衣袖細節(jié)處理需注意
    Holiday澈閱讀 161評論 0 0
  • 版本判斷1.1.1版本判斷 截取內(nèi)容軟件名稱:更新例子【換行】軟件大小:6.6MB【換行】軟件版本:1.1.2【換...
    兮怨閱讀 153評論 0 0