1. 程式人生 > >SpringCloud--向服務註冊中心註冊一個服務

SpringCloud--向服務註冊中心註冊一個服務

xl_echo編輯整理,歡迎轉載,轉載請宣告文章來源。更多IT程式設計案例、資料請聯絡QQ:1280023003 ,群:298140694
百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!!

前言:
在註冊服務之前你需要一個正常執行的服務註冊中心,搭建參考:https://blog.csdn.net/xlecho/article/details/80614496
在springcloud中每一個服務都是一個springboot工程,所以我們的服務搭建也是從一個簡單的springboot工程開始,新增基本的依賴之後,最為關鍵的就是怎麼指向我們的服務註冊中心。

快速搭建一個springboot工程,工程結構如下:
這裡寫圖片描述

pom依賴詳情如下:

<?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.echo.demo</groupId> <artifactId>demo_service</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId
>
<version>1.5.13.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

pom檔案和我們之前建立的springboot工程有不同的地方在於多添加了幾個依賴

<dependencies>
	<!-- 編寫了自動配置Web項的邏輯 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

	<!-- springboot對單元測試的支援 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

	<!-- 表明這是一個eureka的服務 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
</dependencies>

主類:

package com.echo.demo;

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

/**
 * Created by Xlecho on 2018/6/8/008
 */
@SpringBootApplication
//服務註冊元件
@EnableDiscoveryClient
public class ServiceApplication {

  public static void main(String[] args){
    SpringApplication.run(ServiceApplication.class, args);
  }

}

基本的依賴新增好後,主類啟用服務註冊元件,那麼我們就需要為工程指定註冊的位置了,不然兩個springboot工程不能自動匹配。配置檔案就是我們的application.properties,詳情如下

spring.application.name=demo_service

#注意一下地址是eureka的地址,不能隨便寫,不然無法發現註冊中心
eureka.client.serviceUrl.defaultZone=http://localhost:10080/eureka/

補充:類一個

package com.echo.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by Xlecho on 2018/6/8/008
 */
@RestController
public class HelloController {

  private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

  @Autowired
  private DiscoveryClient client;

  @RequestMapping(value = "/hello", method = RequestMethod.GET)
  public String index(){
    ServiceInstance instance = client.getLocalServiceInstance();
    logger.info("/hello, host:" + instance.getHost() + ", service_id:" + instance.getServiceId());
    return "Hello World";
  }

}

配置完成之後,我們一次啟動服務,先eureka,然後在啟動需要註冊的服務。之後訪問http://localhost:10080,看到一下介面就證明你成功了,可以看到我們註冊了一個服務。
這裡寫圖片描述

採坑,如果我們碰到以下錯誤:
這裡寫圖片描述

請檢查你的配置檔案application.properties中的註冊地址,報錯就是因為註冊地址是錯誤的。

採坑:當你自動生成專案配置完成啟動之後,只要一小會專案就會斷開。無法註冊,啟動也看起來不成功,但是沒有明顯的錯誤。
解決辦法:在服務提供者的pom.xml檔案中加入web依賴即可

以上為博主自己學習採坑實記,不喜勿噴,有不足的地方希望能夠補充評論。

相關推薦

SpringCloud--服務註冊中心註冊一個服務

xl_echo編輯整理,歡迎轉載,轉載請宣告文章來源。更多IT程式設計案例、資料請聯絡QQ:1280023003 ,群:298140694 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!! 前言: 在註冊服務之前你需要一個正常執行的

通過Maven將一個dubbo服務打包成可執行的jar包,並註冊中心註冊服務

 1.向pom.xml裡面新增如下程式碼: dubbo-Service${project.build.directory}/classessrc/main/resourcestrue**/*.p

SpringCloud】consul註冊中心註冊服務為內網(區域網)IP

## 一、前因 最近在做公司的一個微服務專案,技術架構為spring cloud + consul + SSM。 當我寫完一個功能要在本地測試時,發現**服務執行成功,但是前後端聯調報500錯誤。** 當時的第一個想法就是gateway服務的問題,但是其他同事卻說gateway服務沒毛病。 最後想到可

spring cloud 入門(四)【Eureka註冊中心,微服務之間服務呼叫方式二(FeignClient進行服務呼叫)】

FeignClient 支隊服務消費方進行修改,服務提供方不需要修改   還是對  User 進行修改  UserApplication 中新增  @EnableFeignClients UserApplication 程式碼如下: pac

spring cloud 入門(三)【Eureka註冊中心,微服務之間服務呼叫方式一(LoadBalancerClient 以及RestTemplate 進行服務呼叫)】

構建第二個微服務 menu 程式碼結構如下   MenuApplication 程式碼如下: package com.study.menu; import org.springframework.boot.SpringApplication; import org

Spring Cloud(一) — 服務註冊中心-註冊服務

SpringClod簡介 首先,pring Cloud是基於Spring Boot的, 最適合用於管理Spring Boot建立的各個微服務應用。 Spring提供了一系列工具,可以幫助開發人員迅速搭建分散式系統中的公共元件(比如:配置管理,服務發現,斷路器,智慧路由,微代理,

螞蟻金服服務註冊中心 SOFARegistry 解析 | 服務發現優化之路

SOFAStack Scalable Open Financial  Architecture Stack 是螞蟻金服自主研發的

spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊

spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊 本文主要內容: 1:管理頁面主機名及訪問ip資訊提示修改 2:獲取當前註冊中心的服務列表及每個服務對於的服務提供者列表 本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列》教程的總第八篇:《修改服務

Dubbo系列之 (二)Registry註冊中心-註冊(1)

# 引導 dubbo的服務的註冊與發現,需要通過第三方註冊中心來協助完成,目前dubbo支援的註冊中心包括 zookeeper,consul,etcd3,eureka,nacas,redis,sofa。這些註冊中心的不同支援在之後的篇章進行分享。 # 基礎鋪墊 在鋪墊一些基礎內容之前,根據如果下幾個問題來進行

Dubbo系列之 (二)Registry註冊中心-註冊(2)

# 引導 本章主要介紹下AbstractRegistry、FailbackRegistry的作用和原始碼。 # AbstractRegistry 首先,直接引出這個類的作用,該類主要把服務提供者資訊快取本地檔案上,檔案目錄是:當前使用者目錄下的/.dubbo/dubbo-registry-${applicat

SpringCloud的Config:ConfigServer註冊到EurekaServer中,變成一個Eureka服務

config 技術 .cn 驗證 服務 客戶 conf eureka ase 一、概念與定義 1、將SpringCloud ConfigServer註冊到 EurekaServer,以便ConfigClient以服務的方式引用ConfigServer 2、客戶端不再引用 C

服務架構 SpringCloud(三)Eureka(註冊中心集群篇)

ima static ice fff active hostname 需要 lee 分別是 一:集群環境搭建第一步:我們新建兩個註冊中心工程一個叫eureka_register_service_master、另外一個叫eureka_register_service_back

史上最簡單的SpringCloud教程 | 第十篇: 高可用的服務註冊中心

pad 配置 設置ip systems 高可用性 多個 could hostname 打開 最新Finchley版本請訪問:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f10-eureka/或者http://

服務分散式事務實戰(三)SpringCloud註冊中心編寫和測試

SpringCloud註冊中心編寫和測試 (1)建立註冊中心工程 (2)新增jar包 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

4--SpringCloud搭建高可用的服務註冊中心 1--SpringCloud服務註冊與發現Eureka 1--SpringCloud服務註冊與發現Eureka 1--SpringCloud服務註冊與發現Eureka

  我們已經介紹了1--SpringCloud的服務註冊與發現Eureka,其中,主要演示瞭如何構建和啟動服務註冊中心Eureka Server,以及如何將服務註冊到Eureka Server中,但是在之前的示例中,這個服務註冊中心是單點的,顯然這並不適合應用於線上生產環境,那麼下面在前文的基礎上,我們來看看

SpringCloud服務基礎1:Eureka註冊中心

1.Eureka基本概念     Spring Cloud Eureka是Spring Cloud Netflix專案下的服務治理模組。而Spring Cloud Netflix專案是Spring Cloud的子專案之一,主要內容是對Netflix公司一系列開源產品

SpringCloud-Eureka 服務註冊中心搭建--高可用以及負載均衡配置例項

前言:        由於公司使用的分散式框架太老,慢慢轉移使用SpringBoot微服務框架,後臺框架存在很多問題,為了優化底層服務,現採取如下措施: 0、Nexus搭建Maven私服   (集中

springcloud系列(一) eureka註冊中心集群搭建 服務消費方調用提供方

技術分享 lan serve home 使用 data com open title 說明 eureka server為集群方式,有三個節點。服務消費者調服務提供者現在是使用了InstanceInfo的 homePageUrl("http://192.168.10.1:80

SpringCloud----服務註冊中心Eureka

一 Eureka服務治理體系1.1 服務治理   服務治理是微服務架構中最為核心和基礎的模組,它主要用來實現各個微服務例項的自動化註冊和發現。    Spring Cloud Eureka是Spring Cloud Netflix微服務套件中的一部分,它基於Netfl

springcloud-Eureka搭建服務註冊中心

  目錄: 1、搭建服務註冊的服務端; 2、將Spring boot的一個專案做為服務註冊進去;   一、搭建服務註冊的服務端 1、首先通過IntelliJ IDEA或其它IDE建立一個spring boot 專案; 2、在pom.xml檔案中新增sp