溫馨提示×

溫馨提示×

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

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

微服務(wù)中eureka+zuul的基本部署教程

發(fā)布時間:2021-07-01 10:49:45 來源:億速云 閱讀:615 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“微服務(wù)中eureka+zuul的基本部署教程”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“微服務(wù)中eureka+zuul的基本部署教程”吧!

    由于前段時間遇到工作危機(jī)差點(diǎn)被開讓我意識到技術(shù)的重要性,所以在公司架構(gòu)師的建議下開始了解和學(xué)習(xí)微服務(wù),首先學(xué)習(xí)的就是zuul網(wǎng)關(guān)和eureka注冊中心,因?yàn)榘滋旃ぷ鏖_發(fā)量比較多,所以只能晚上抽空學(xué)習(xí),如今終于可以簡單的部署一套環(huán)境并成功運(yùn)行起來了,雖然這些對于老手來說可以算是皮毛了,但是對我來說還是值得高興的。

    關(guān)于zuul和eureka的相關(guān)介紹我就不多說了一搜一大把,直接上配置。

    1.首先創(chuàng)建Spring boot。

    微服務(wù)中eureka+zuul的基本部署教程

    下一步修改項(xiàng)目名

    微服務(wù)中eureka+zuul的基本部署教程

    然后一直下一步就可以了,中間選擇組件的時候我直接跳過,創(chuàng)建后在pom里加也可以。

    2.引入相關(guān)依賴

    eureka:

 <!-- 服務(wù)端 ->
 <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  </dependency>

    zuul:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <!-- 客戶端 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

    dome1、dome2:

        <!-- 客戶端 -->
        <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>

 3.啟動類注解

    eureka:

@EnableEurekaServer

    zuul:

@EnableZuulProxy

    dome1、dome2:

@EnableEurekaClient

4:配置文件

    eureka:application.properties

server.port=8080
eureka.instance.hostname=127.0.0.1
# 是否向服務(wù)中心注冊自己
eureka.client.register-with-eureka=false
# 是否檢索服務(wù)
eureka.client.fetch-registry=false
eureka.instance.prefer-ip-address=true
# 服務(wù)注冊中心的配置內(nèi)容,指定服務(wù)注冊中心的位置
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

    zuul:application.yml

server:
  port: 8084 #服務(wù)端口
spring:
  application:
    name: api-zuul #服務(wù)名
eureka:
  client:
    registry-fetch-interval-seconds: 5 # 獲取服務(wù)列表的周期:5s
    service-url:
      defaultZone: http://127.0.0.1:8080/eureka #eureka地址
zuul:
  prefix: /api # 添加路由前綴所有訪問路由加這個前綴
  retryable: true #是否開啟重試功能
  routes:
    api: # 隨便起
      path: /service/** #訪問地址以service請求的都會轉(zhuǎn)發(fā)到service-provider-A
      serviceId: service-provider-A # 如果兩個服務(wù)名都是以service-provider-A注冊到eureka,zuul會隨機(jī)轉(zhuǎn)發(fā)

dome1、dome2:application.properties(端口不同,服務(wù)名相同)

# 注冊中心的注冊地址
eureka.client.service-url.defaultZone=http://127.0.0.1:8080/eureka/
# 服務(wù)名稱--調(diào)用的時候根據(jù)名稱來調(diào)用該服務(wù)的方法
spring.application.name=service-provider-A
server.port=8081

以上配置為負(fù)載均衡的配置,反向代理可將zuul中routes下的配置新增一個名,path和serviceid為另一個服務(wù)名就可以。

dome1、dome2需要各自創(chuàng)建一個測試類

package com.example.eurekaclientdemo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RequestMapping("/users")
@RestController
public class UserController {

    @GetMapping("/{name}")
    public Map<String,Object> getUser(@PathVariable("name") String userName) {
        Map<String,Object> data = new HashMap<>();
        data.put("id",userName);
        data.put("from","provider-A-1");
        return data;
    }

}
package com.example.eurekaclient2demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RequestMapping("/users")
@RestController
public class UserController {

    @GetMapping("/{name}")
    public Map<String,Object> getUser(@PathVariable("name") String userName) {
        Map<String,Object> data = new HashMap<>();
        data.put("id",userName);
        data.put("from","provider-A-2");
        return data;
    }

}

以上配置完成后,依次啟動eureka、zuul、dome1、dome2。在瀏覽器輸入http://127.0.0.1:8080后查看注冊的服務(wù)

微服務(wù)中eureka+zuul的基本部署教程

然后在瀏覽器輸入http://127.0.0.1:8084/api/service/users/sdffsd,需要刷新來看效果。

微服務(wù)中eureka+zuul的基本部署教程

微服務(wù)中eureka+zuul的基本部署教程

感謝各位的閱讀,以上就是“微服務(wù)中eureka+zuul的基本部署教程”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對微服務(wù)中eureka+zuul的基本部署教程這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI