真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud學(xué)習(xí)(2)-創(chuàng)新互聯(lián)

先知

在這里插入圖片描述

桃江網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

什么叫服務(wù)與注冊(cè)中心?
服務(wù)注冊(cè)中心是服務(wù)實(shí)現(xiàn)服務(wù)化管理的核心組件,類似于目錄服務(wù)的作用,主要用來(lái)存儲(chǔ)服務(wù)信息,譬如提供者 url 串、路由信息等。服務(wù)注冊(cè)中心是微服務(wù)架構(gòu)中最基礎(chǔ)的設(shè)施之一。注冊(cè)中心可以說(shuō)是微服務(wù)架構(gòu)中的“通訊錄”,它記錄了服務(wù)和服務(wù)地址的映射關(guān)系。在分布式架構(gòu)中,服務(wù)會(huì)注冊(cè)到這里,當(dāng)服務(wù)需要調(diào)用其它服務(wù)時(shí),就到這里找到服務(wù)的地址,進(jìn)行調(diào)用。

使用Eureka
概念:

? Eureka 是 Netflix 公司開(kāi)源的一個(gè)服務(wù)注冊(cè)與發(fā)現(xiàn)的組件 。

? Eureka 和其他 Netflix 公司的服務(wù)組件(例如負(fù)載均衡、熔斷器、網(wǎng)關(guān)等) 一起,被 Spring Cloud 社區(qū)整合為Spring-Cloud-Netflix 模塊。

? Eureka 包含兩個(gè)組件:Eureka Server (注冊(cè)中心) 和 Eureka Client (服務(wù)提供者、服務(wù)消費(fèi)者)。

操作:

架構(gòu)圖一覽

在這里插入圖片描述

創(chuàng)建Serve端 新建項(xiàng)目

在這里插入圖片描述
在這里插入圖片描述

配置文件

在這里插入圖片描述

application.yaml

server:
  port: 8080

# Eureka配置
eureka:
  instance:
    ## Eureka實(shí)例的名稱
    hostname: localhostA
  client:
    # false表示自己端就是注冊(cè)中心,職責(zé)就是維護(hù)服務(wù)實(shí)例,并不需要去檢查服務(wù)
    fetch-registry: false
    # false表示不向注冊(cè)中心注冊(cè)自己
    register-with-eureka: false
    # 設(shè)置與Eureka Server交互的地址查詢服務(wù)和注冊(cè)服務(wù)都需要依賴這個(gè)地址
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

啟動(dòng)類配置
// 表示當(dāng)前類為服務(wù)端Eureka服務(wù)端
@EnableEurekaServer
@SpringBootApplication
public class CloudA1Application {public static void main(String[] args) {SpringApplication.run(CloudA1Application.class, args);
    }

}
啟動(dòng)測(cè)試一下

訪問(wèn)自己的
localhost:端口號(hào)
在這里插入圖片描述
一切正常再繼續(xù)

Eureka Client包括兩個(gè)服務(wù)模塊:Service Provider(服務(wù)提供方)和Service Consumer(服務(wù)消費(fèi)方)。

創(chuàng)建Client端的服務(wù)提供端 新建項(xiàng)目

新增依賴
org.projectlomboklomboktruecom.alibabadruid1.1.16com.baomidoumybatis-plus-boot-starter3.4.2mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-web
配置文件

在這里插入圖片描述

application.yaml

server:
  port: 8081
# Eureka配置
eureka:
   client:
       # 表示將自己注冊(cè)進(jìn)Eureka Server默認(rèn)為true
     register-with-eureka: true
       # 是否從Eureka Server抓去已有的注冊(cè)信息,默認(rèn)是true
     fetch-registry: true
       # 設(shè)置與Eureka Server交互的地址查詢服務(wù)和注冊(cè)服務(wù)都需要依賴這個(gè)地址
     service-url:
       defaultZone: http://localhost:8080/eureka
#數(shù)據(jù)庫(kù)配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/blog?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: xxx
    type: com.alibaba.druid.pool.DruidDataSource
#  當(dāng)前服務(wù)注冊(cè)在Eureka Server的名稱
  application:
    name: server-provider1


#MP配置
mybatis-plus:
  #  配置外部xml映射
  configuration:
    #    開(kāi)啟SQL日志輸出
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #    開(kāi)啟駝峰映射
    map-underscore-to-camel-case: true
  mapper-locations: classpath:mapper/*.xml
啟動(dòng)類配置
// 表示當(dāng)前類客戶端Eureka
@EnableDiscoveryClient
@SpringBootApplication
public class CloudB1Application {public static void main(String[] args) {SpringApplication.run(CloudB1Application.class, args);
    }

}
編寫控制器類
package com.learn.cloudb1.controller;


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

@RestController
@RequestMapping("/hello")
public class HelloController {@GetMapping("/get1")
    public String hello(){return "hello world!";
    }
}
啟動(dòng)測(cè)試

訪問(wèn)自己的 localhost:端口號(hào)(就是服務(wù)注冊(cè)中心)
可以發(fā)現(xiàn)多了些東西,一個(gè)報(bào)錯(cuò)和剛剛注冊(cè)好的服務(wù)提供者

在這里插入圖片描述

創(chuàng)建Client端的服務(wù)消費(fèi)端

創(chuàng)建方法和創(chuàng)建Client端的服務(wù)服務(wù)端一樣

配置文件
server:
  port: 8083

spring:
  application:
    name: service-customer1

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8080/eureka
啟動(dòng)類
@EnableDiscoveryClient
@SpringBootApplication
public class CloudB1Customer1Application {public static void main(String[] args) {SpringApplication.run(CloudB1Customer1Application.class, args);
    }
}
控制器
package com.learn.cloudb1_customer1.controller;

import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/getMes")
public class GetMesController {//從Euraka Server中獲取服務(wù)提供方的服務(wù)地址信息
    @Autowired
    private DiscoveryClient ds;
    @GetMapping()
    public String getMes(){//服務(wù)提供者的名字
         //服務(wù)發(fā)現(xiàn)
        ListinstanceList = ds.getInstances("server-provider1");
        int port=0;
        String host="";
        //打印服務(wù)機(jī)器的信息
        for (ServiceInstance instance : instanceList) {//服務(wù)主機(jī)端口號(hào)
            port = instance.getPort();
            System.out.println("服務(wù)主機(jī)端口號(hào):"+ port);
            //服務(wù)主機(jī)名字
            host = instance.getHost();
            System.out.println("服務(wù)主機(jī)名字:"+host);
        }
        return host+"++++"+port;
    }
}
啟動(dòng)測(cè)試

發(fā)現(xiàn)又多了一個(gè)
在這里插入圖片描述

點(diǎn)擊這里再輸入自己定義的接口發(fā)現(xiàn)也可正常訪問(wèn)
在這里插入圖片描述

在這里插入圖片描述

高可用

準(zhǔn)備兩個(gè)Eureka Server

分別進(jìn)行配置,相互注冊(cè)

Eureka Client 分別注冊(cè)到這兩個(gè) Eureka Server中

創(chuàng)建eureka-server1

server:
  port: 8761


eureka:
  instance:
    hostname: eureka-server1 # 主機(jī)名
  client:
    service-url:
      defaultZone: http://eureka-server2:8762/eureka
    register-with-eureka: true # 是否將自己的路徑 注冊(cè)到eureka上。eureka server 不需要的,eureka provider client 需要
    fetch-registry: true # 是否需要從eureka中抓取路徑。eureka server 不需要的,eureka consumer client 需要


spring:
  application:
    name: eureka-server-ha

創(chuàng)建eureka-server2

server:
  port: 8762


eureka:
  instance:
    hostname: eureka-server2 # 主機(jī)名
  client:
    service-url:
      defaultZone: http://eureka-server1:8761/eureka

    register-with-eureka: true # 是否將自己的路徑 注冊(cè)到eureka上。eureka server 不需要的,eureka provider client 需要
    fetch-registry: true # 是否需要從eureka中抓取路徑。eureka server 不需要的,eureka consumer client 需要
spring:
  application:
    name: eureka-server-ha

修改provider

server:
  port: 8001


eureka:
  instance:
    hostname: localhost # 主機(jī)名
    prefer-ip-address: true # 將當(dāng)前實(shí)例的ip注冊(cè)到eureka server 中。默認(rèn)是false 注冊(cè)主機(jī)名
    ip-address: 127.0.0.1 # 設(shè)置當(dāng)前實(shí)例的ip
    instance-id: ${eureka.instance.ip-address}:${spring.application.name}:${server.port} # 設(shè)置web控制臺(tái)顯示的 實(shí)例id
    lease-renewal-interval-in-seconds: 3 # 每隔3 秒發(fā)一次心跳包
    lease-expiration-duration-in-seconds: 9 # 如果9秒沒(méi)有發(fā)心跳包,服務(wù)器呀,你把我干掉吧~
  client:
    service-url:
      defaultZone: http://eureka-server1:8761/eureka,http://eureka-server2:8762/eureka # eureka服務(wù)端地址,將來(lái)客戶端使用該地址和eureka進(jìn)行通信
spring:
  application:
    name: eureka-provider # 設(shè)置當(dāng)前應(yīng)用的名稱。將來(lái)會(huì)在eureka中Application顯示。將來(lái)需要使用該名稱來(lái)獲取路徑

修改consumer

server:
  port: 9000


eureka:
  instance:
    hostname: localhost # 主機(jī)名
  client:
    service-url:
      defaultZone:  http://eureka-server1:8761/eureka,http://eureka-server2:8762/eureka  # eureka服務(wù)端地址,將來(lái)客戶端使用該地址和eureka進(jìn)行通信
spring:
  application:
    name: eureka-consumer # 設(shè)置當(dāng)前應(yīng)用的名稱。將來(lái)會(huì)在eureka中Application顯示。將來(lái)需要使用該名稱來(lái)獲取路徑

高可用測(cè)試:停掉一個(gè)eureka,依然可以訪問(wèn)consumer。

Eureka配置詳情

實(shí)例信息配置
eureka:
instance:
hostname: localhost # 主機(jī)名
prefer-ip-address: # 是否將自己的ip注冊(cè)到eureka中,默認(rèn)false 注冊(cè) 主機(jī)名
ip-address: # 設(shè)置當(dāng)前實(shí)例ip
instance-id: # 修改instance-id顯示
lease-renewal-interval-in-seconds: 30 # 每一次eureka client 向 eureka server發(fā)送心跳的時(shí)間間隔
lease-expiration-duration-in-seconds: 90 # 如果90秒內(nèi)eureka server沒(méi)有收到eureka client的心跳包,則剔除該服務(wù)
客戶端特性配置
eureka:
client:
service-url:
# eureka服務(wù)端地址,將來(lái)客戶端使用該地址和eureka進(jìn)行通信
defaultZone:
register-with-eureka: # 是否將自己的路徑 注冊(cè)到eureka上。
fetch-registry: # 是否需要從eureka中抓取數(shù)據(jù)。
注冊(cè)中心端配置
eureka:
server: #是否開(kāi)啟自我保護(hù)機(jī)制,默認(rèn)true
enable-self-preservation:
eviction-interval-timer-in-ms: 120 2月#清理間隔(單位毫秒,默認(rèn)是60*1000)
instance:
lease-renewal-interval-in-seconds: 30 # 每一次eureka client 向 eureka server發(fā)送心跳的時(shí)間間隔
lease-expiration-duration-in-seconds: 90 # 如果90秒內(nèi)eureka server沒(méi)有收到eureka clien
儀表盤配置
eureka:
dashboard:
enabled: true # 是否啟用eureka web控制臺(tái)
path: / # 設(shè)置eureka web控制臺(tái)默認(rèn)訪問(wèn)路徑

OK!入門結(jié)束

當(dāng)然常用的做法是將多個(gè)模塊/項(xiàng)目建立在一個(gè)maven父工程中,這樣更容易管理與使用

其他更詳細(xì)的適合入門的文章
https://www.cnblogs.com/h–d/p/12635204.html
https://blog.csdn.net/jc_hook/article/details/122413858

報(bào)錯(cuò)解決方法
https://blog.csdn.net/hadues/article/details/105023709

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前名稱:SpringCloud學(xué)習(xí)(2)-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/decpho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部