詳解spring-cloud與netflixEureka整合(注冊中心)
基礎(chǔ)依賴
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.cloud:spring-cloud-starter')
eureka(單機)
服務(wù)端:
依賴
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
application.yml 配置
spring: application: name: dev eureka: client: service-url: defaultZone: http://本機ip地址:8761/eureka/ #注冊中心地址 register-with-eureka: false #表明該實例是否應(yīng)該與尤里卡服務(wù)器登記其信息被別人發(fā)現(xiàn)。在某些情況下,您不希望您的實例被發(fā)現(xiàn)而你想發(fā)現(xiàn)其他實例。默認(rèn)為true fetch-registry: false #表明這個客戶是否應(yīng)該從尤里卡服務(wù)器獲取尤里卡注冊表信息。默認(rèn)為true server: port: 8761
啟動類添加 @EnableEurekaServer
客戶端:
主要依賴
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
application.yml 配置
eureka: client: service-url: defaultZone: http://eureka服務(wù)地址:8761/eureka/
啟動類添加 @EnableDiscoveryClient (注冊中心通用客戶端注解)或 @EnableEurekaClient (只有eureka客戶端可用)
eureka(集群)
服務(wù)端
主要依賴
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
application.yml 配置
server: port: 8761 eureka: client: register-with-eureka: false fetch-registry: false server: enable-self-preservation: false #使用自我保護(hù),默認(rèn)true peer-node-read-timeout-ms: 5000 #節(jié)點讀取超時時間,默認(rèn)200毫秒 --- spring: application: name: eureka1 profiles: eureka1 eureka: client: service-url: defaultZone: http://eureka2:8761/eureka/,http://eureka3:8761/eureka/ instance: hostname: eureka1 --- spring: application: name: eureka2 profiles: eureka2 eureka: client: service-url: defaultZone: http://eureka1:8761/eureka/,http://eureka3:8761/eureka/ instance: hostname: eureka2 --- spring: application: name: eureka3 profiles: eureka3 eureka: client: service-url: defaultZone: http://eureka1:8761/eureka/,http://eureka2:8761/eureka/ instance: hostname: eureka3
eureka.client.service-url.defaultZone 與 eureka.instance.hostsname eureka1、eureka2、eureka3 都再本機的 hosts 文件里事先寫好,
例如 eureka1 服務(wù)器上的hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 eureka1
xxx.xxx.x.xx eureka2
xx.xxx.xxx.xx eureka3
啟動類同樣是添加 @EnableEurekaServer 注意:如果運行 jar 包時需要程序接收命令行參數(shù),一定要再main方法的 SpringApplication.run() 方法 中傳入 args 參數(shù)
例如:
public static void main(String[] args) {
SpringApplication.run(QnbbsConsumer.class,args);
}
如果不傳入的話在命令行輸入 java -jar xxx.jar --參數(shù)名=參數(shù)值 參數(shù)將不起作用從而影響你無法選擇寫好的環(huán)境配置
客戶端:
依賴跟單機的一樣
application.yml 配置
eureka: instance: prefer-ip-address: true #是否顯示ip ip-address: 本機ip #填寫本機ip地址 client: service-url: defaultZone: http://eureka1:8761/eureka/,http://eureka2:8761/eureka/,http://eureka3:8761/eureka/
啟動類注解與單機版一樣
客戶端注冊一臺注冊中心,同時注冊到其他集群中說明成功!
eureka添加 spring-security 權(quán)限認(rèn)證
依賴
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
application.yml 配置
server:
port: 8761
spring:
application:
name: eureka-server
security:
user:
name: zyn
password: zyn123...
#用戶名與密碼若是不配置,系統(tǒng)會自動生成并打印在控制臺日志上
eureka:
client:
register-with-eureka: false
fetch-registry: false
server:
enable-self-preservation: false
peer-node-read-timeout-ms: 5000
management:
endpoints:
web:
base-path: /
exposure:
include: '*'
endpoint:
health:
show-details: always
restart:
enabled: true
server:
port: 8761
---
spring:
profiles: eureka-jy
eureka:
client:
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-B:8761/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-C:8761/eureka/
instance:
hostname: eureka-A
---
spring:
profiles: eureka-lhn
eureka:
client:
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-A:8761/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-C:8761/eureka/
instance:
hostname: eureka-B
---
spring:
profiles: eureka-zsm
eureka:
client:
service-url:
defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-A:8761/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-B:8761/eureka/
instance:
hostname: eureka-C
創(chuàng)建一個類并繼承 WebSecurityConfigurerAdapter 類,并在此類上添加 @EnableWebSecurity和@Configuration 注解,重寫 configure 方法
package com.iteng.eureka.security;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable(); // 關(guān)閉csrf
http.authorizeRequests().anyRequest().authenticated().and().httpBasic(); // 開啟認(rèn)證
}
}
啟動類添加注解
@EnableEurekaServer @EnableWebSecurity
下線服務(wù)
http://eureka地址:端口/eureka/apps/服務(wù)名/服務(wù)地址:服務(wù)端口號
實例如下:
erueka注冊中心ip: 10.100.1.100
端口: 12000
服務(wù)名: CPS-RISK-SERVER
實例id: 192.168.10.54:18883
則向下面的url通過http發(fā)送delete命令,可將指定的服務(wù)實例刪除:
http://10.100.1.100:12000/eureka/apps/CPS-RISK-SERVER/192.168.10.54:18883
變更服務(wù)狀態(tài)
http://eureka地址:端口/eureka/apps/服務(wù)名/服務(wù)地址/status?value=${value}
其中${value}的取值為:OUT_OF_SERVICE , DOWN , UP
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot配置Spring?Security的實現(xiàn)示例
本文主要介紹了SpringBoot配置Spring?Security的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
詳解spring mvc4使用及json 日期轉(zhuǎn)換解決方案
本篇文章主要介紹了spring mvc4使用及json 日期轉(zhuǎn)換解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
Spring?Data?JPA命名約定查詢實現(xiàn)方法
這篇文章主要為大家介紹了Spring?Data?JPA命名約定查詢實現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12

