Recently, new projects have used springcloud and docker. I will not introduce these two technologies separately. Now I will share the solution of achieving high availability of eureka through docker and docker-compose. 1. Eureka server project directory structure: 2. eureka configuration file configuration: server: port: 8900 spring: application: name: eureka-server profiles: active: dev management: security: enabled: false health: rabbit: enabled: false --- spring: profiles: dev eureka: client: serviceUrl: defaultZone: http://localhost:${server.port}/eureka/ register-with-eureka: false fetch-registry: false instance: hostname: localhost prefer-ip-address: true --- spring: profiles: test_ha_1 eureka: client: serviceUrl: defaultZone: http://eurekaserver2:${server.port}/eureka/ instance: hostname: eurekaserver1 # prefer-ip-address: true If this configuration is true, it means that the IP is registered to eureka. If this is the case, the eureka server cannot discover Replicas through the server. # Therefore, if you want to achieve high availability of eureka through Docker, it is best to use the default value (false) for this configuration # It is not impossible to configure it to true and achieve high availability, but each eureka service needs to be mapped outside the Docker environment and know the IP. --- spring: profiles: test_ha_2 eureka: client: serviceUrl: defaultZone: http://eurekaserver1:${server.port}/eureka/ instance: hostname: eurekaserver2 # prefer-ip-address: true 3. Docker Maven plugin configuration: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}:${project.version}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <forceTags>true</forceTags> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> </resource> </resources> </configuration> <!--<groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>itmuch/${project.artifactId}:${project.version}</imageName> <forceTags>true</forceTags> <baseImage>java</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration>--> </plugin> </plugins> </build> 4. Docker file content: FROM java:8 ADD eureka-server-1.0.0.jar eurekaserver.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/eurekaserver.jar"] 5. Generate the eureka server image: Generate the eurekaserver image by executing the mvn clean package docker:build command as follows: 6. Orchestration via docker-compose: version: '2' services: eurekaserver1: image: raynspace/eureka-server:1.0.0 ports: - "7900:8900" environment: - spring.profiles.active=test_ha_1 eurekaserver2: image: raynspace/eureka-server:1.0.0 #hostname: eurekaserver2 ports: - "7800:8900" environment: - spring.profiles.active=test_ha_2 7. Jump to the project directory and execute the docker-compose up command to automatically generate two containers for the eureka server: 8. Since the eureka port has been mapped, access eureka locally through the port to check the eureka service status: As can be seen from the above figure, another eureka service can be seen in both registered-replicas and available-replicas. At this point, the eureka cluster is built. The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: MySQL 5.7.10 Installation Documentation Tutorial
>>: How to allow remote connection in MySql
Table of contents Arithmetic operators Abnormal s...
Before starting the main text of this article, yo...
An error message appears when MySQL is started in...
When the resolution of the login interface is par...
View Docker Network docker network ls [root@maste...
Preface: How to get the coordinates of the curren...
1. Download and install VirtualBox software First...
Table of contents Overview 1. Download via URL 2....
Detailed explanation of Java calling ffmpeg to co...
Using DOSBox, you can simulate DOS under Windows ...
ab command principle Apache's ab command simu...
1. Packaging Vue project Enter the following name...
Table of contents The relationship between the co...
In order to handle a large number of concurrent v...
People who often use MySQL may encounter the foll...