springcloud~Eureka實例搭建


服務端

build.gradle配置

dependencies {
	compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
	testCompile('org.springframework.boot:spring-boot-starter-test')
}

dependencyManagement {
	imports {
		mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
	}
}

bootstrap.yml相關配置

server.port: 8761
management.port: 8762

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

啟動代碼

package lind.sprindemo.eurekaServer;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@EnableDiscoveryClient
@SpringBootApplication
public class EurekaServerApplication {

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

客戶端

向我們配置中心的客戶端同時也是eureka的一個客戶端,例如一個訂單服務,它的配置存儲在配置中心,它如果希望公開自己,就需要是eureka的一個客戶端。

例子

graph TD A[訂單服務]-->B(注冊) B-->C(eureka) A-->D(獲取配置) D-->E(clientserver)

高可用的eureka集群

主要是在eureka里注冊另一個eureka,兩個eureka實例相互注冊,實現一個最高用的集群。

同一時刻,只有一個eureka里有服務,而當這個eureka掛了之后,會把服務自動同步到另一個節點上,這就是高可用。

  1. 配置代碼
server:
  port: ${PORT:8761}
management:
  port: ${BG_PORT:8762}
application:
  name: ${NAME:eurekaserver}
spring:
  profiles:
    active: dev
---
eureka:
  profile: dev
  instance:
    hostname: ${application.name}
    perferIpAddress: true #基於IP地址注冊
  client:
    registerWithEureka: false #false表示不向注冊中心注冊自己。
    fetchRegistry: false #false表示自己端就是注冊中心,我的職責就是維護服務實例,並不需要去檢索服務
    serviceUrl:
      defaultZone: ${URL:http://${eureka.instance.hostname}:${server.port}/eureka/}

  1. Dockerfile內容

可以從遠程下載你的jar包,如果你的網速足夠好的話

FROM fabric8/java-jboss-openjdk8-jdk:1.4
ENV JAVA_APP_JAR="app.jar"
ENV JAVA_MAX_MEM_RATIO=40
ENV AB_OFF ""
ADD  --chown=jboss:jboss ./jar/eurekaServer-0.0.2.jar /deployments/app.jar
  1. docker-compose實現eureka集群
version: "3.3"
services:

  eurekaserver1:
    build: ./eureka-server
    restart: on-failure
    ports:
      - "6761:6761"
      - "6762:6762"
    networks:
      - dev
    environment:
      - PORT=6761
      - BG_PORT=6762
      - NAME=eureka1
      - URL=http://eureka2:6761/eureka #集群地址配置

  eurekaserver2:
    build: ./eureka-server
    restart: on-failure
    ports:
      - "5761:5761"
      - "5762:5762"
    networks:
      - dev
    environment:
      - PORT=5761
      - BG_PORT=5762
      - NAME=eureka2
      - URL=http://eureka1:6761/eureka #集群地址配置

運行docker-compose up -d 就會先構建eureka的鏡像,然后運行你的兩個eureka實例了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM