Eureka,作为spring cloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置。单一的eureka服务,显然不能满足高可用的实际生产环境,这就要求我们配置一个能够应对各种突发情况,具有较强容灾能力的eureka服务。下面我将以一个较为简单的例子,来描述这种高可用服务的实现原理。

一、服务搭建

New->Project-> 选择spring initialir 如下图:

下一步->选择cloud discovery->eureka server,然后一直下一步就行了

创建完后的工程的pom.xml文件如下:

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>eureka</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.RELEASE</spring-cloud.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

创建服务注册中心,在Application类中添加注解,只需要一个注解@EnableEurekaServer

 package com.example.demo;

 import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer
@SpringBootApplication
public class EurekaApplication { public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}

修改application.properties配置文件

 server.port=8761
spring.application.name=eureka-server
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka/

二、打包部署

通过maven进行打包,生成jar包

将jar包分别部署到两台服务器上,服务器1(192.168.12.52),服务器2(192.168.12.36),修改jar包的配置文件application.properties

服务器1:

 server.port=8761
spring.application.name=eureka-server
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.serviceUrl.defaultZone=http://192.168.12.36:8762/eureka/

服务器2:

 server.port=8762
spring.application.name=eureka-server
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false
eureka.client.serviceUrl.defaultZone=http://192.168.12.52:8761/eureka/

进入dos下,执行以下命令

java -jar eureka-0.0.1-SNAPSHOT.jar

打开网址192.168.12.52:8761,192.168.12.26:8762(注意两台服务器之间要能够ping通)可以写一个简单的服务,向搭建好的eureka服务中心注册,进行测试,这里就不再进行赘述。

最新文章

  1. .Net语言 APP开发平台——Smobiler学习日志:如何快速实现快递信息流的效果
  2. squid介绍及其简单配置
  3. 【spring bean】 spring中bean之间的引用以及内部bean
  4. hdu 5821 (贪心排序) Ball
  5. python_way ,day9 socket 和soctet多线程的使用
  6. JAVA大数运算
  7. input checkbox问题和li里面包含checkbox
  8. PAT 1076. Forwards on Weibo (30)
  9. (转帖) 有限狀態機FSM coding style整理 (SOC) (Verilog)
  10. python小记列表排序
  11. boost在自己主动确定数据类型(BOOST_TYPEOF和BOOST_AUTO)使用
  12. Zepto.js-Ajax 请求
  13. Oracle的用户,权限以及角色
  14. How to Make a Computer Operating System
  15. Spring跟mybatis结合
  16. IdentityServer开题篇
  17. python进程池
  18. hash 和pushState,replaceState
  19. 基于Ping和Telnet/NC的监控脚本案例分析
  20. HDU 3506 Monkey Party(区间DP)题解

热门文章

  1. myeclipse 出现换行符和空格符 解决方案 换行出现乱码
  2. 恺撒密码 B
  3. wangeditor富编辑器在node和vue前后台分离的使用
  4. mysql常用的存储引擎,MyISAM和InnoDB的对比
  5. swoole httpserver学习
  6. 10 Windows编程——鼠标消息
  7. Free lunch is over
  8. Kinect for Windows SDK开发入门(三):基础知识 下
  9. n诺挑战赛5题解
  10. 使用IDEA快速搭建基于Maven的SpringBoot项目(集成使用Redis)