微服务架构eureka集群高可用配置
工具:idea
环境:java8、maven3
版本:spring boot 1.5.15.RELEASE
1.搭建spring boot eureka项目
2. 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>webapp</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.15.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.SR4</spring-cloud.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</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>
3.修改配置文件后缀为yml,application.yml内容如下:
spring:
application:
name: eureka-server
security:
user:
name: admin
password: 123456
eureka:
p1:
hostname: server1
port: 1111
p2:
hostname: server2
port: 1112
p3:
hostname: server3
port: 1113
4. 新建application-peer1.yml、application-peer2.yml、application-peer3.yml
application-peer1.yml:
server:
port: 1111
eureka:
instance:
hostname: ${eureka.p1.hostname}
client:
service-url:
defaultZone: http://${security.user.name}:${security.user.password}@${eureka.p2.hostname}:${eureka.p2.port}/eureka/,http://${security.user.name}:${security.user.password}@${eureka.p3.hostname}:${eureka.p3.port}/eureka/
application-peer2.yml:
server:
port: 1112
eureka:
instance:
hostname: ${eureka.p2.hostname}
client:
service-url:
defaultZone: http://${security.user.name}:${security.user.password}@${eureka.p1.hostname}:${eureka.p1.port}/eureka/,http://${security.user.name}:${security.user.password}@${eureka.p3.hostname}:${eureka.p3.port}/eureka/
application-peer3.yml:
server:
port: 1113
eureka:
instance:
hostname: ${eureka.p3.hostname}
client:
service-url:
defaultZone: http://${security.user.name}:${security.user.password}@${eureka.p1.hostname}:${eureka.p1.port}/eureka/,http://${security.user.name}:${security.user.password}@${eureka.p2.hostname}:${eureka.p2.port}/eureka/
service-url这里是重点,我将server1的service-url设置为server2、server3,将server2的设置为server1、server3,将server3的设置为server1、server2。以此完成3个server服务间的相互注册 。
4. 本地模拟域名配置:
由于我们使用了http://server1这种写法,需要配一下host:
5. 启动类配置@EnableEurekaServer:
package webapp; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication
@EnableEurekaServer
public class EurekaApplication { public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
6. 分别配置和启动3个eureka服务
peer2和peer3类似以上设置,最后如下:
7.分别启动3个服务
8.分别访问各自的端口
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
微服务架构eureka集群高可用配置的更多相关文章
- Eureka 集群高可用配置.
SERVER:1 server: port: 1111 eureka: instance: hostname: ${spring.cloud.client.ip-address} instance-i ...
- eureka集群高可用配置
譬如eureka.client.register-with-eureka和fetch-registry是否要配置,配不配区别在哪里:eureka的客户端添加service-url时,是不是需要把所有的 ...
- eureka集群高可用配置,亲测成功配置(转)
转自大神的文章:https://blog.csdn.net/tianyaleixiaowu/article/details/78184793 网上讲这个东西的很多,抄来抄去的,大部分类似,多数没讲明白 ...
- 庐山真面目之六微服务架构Consul集群、Ocelot网关集群和Nginx版本实现
庐山真面目之六微服务架构Consul集群.Ocelot网关集群和Nginx版本实现 一.简介 在上一篇文章<庐山真面目之五微服务架构Consul集群.Ocelot网关和Nginx版本实 ...
- 庐山真面目之七微服务架构Consul集群、Ocelot网关集群和IdentityServer4版本实现
庐山真面目之七微服务架构Consul集群.Ocelot网关集群和IdentityServer4版本实现 一.简介 在上一篇文章<庐山真面目之六微服务架构Consul集群.Ocelot网 ...
- Spring Cloud构建微服务架构(六)高可用服务注册中心
http://blog.didispace.com/springcloud6/ https://www.jianshu.com/p/df9393755a05 http://www.ityouknow. ...
- 交付Dubbo微服务到kubernetes集群
1.基础架构 1.1.架构图 Zookeeper是Dubbo微服务集群的注册中心 它的高可用机制和k8s的etcd集群一致 java编写,需要jdk环境 1.2.节点规划 主机名 角色 ip hdss ...
- 庐山真面目之四微服务架构Consul集群和Nginx版本实现
庐山真面目之四微服务架构Consul集群和Nginx版本实现 一.简介 在上一篇文章<庐山真面目之三微服务架构Consul版本实现>中,我们已经探讨了如何搭建基于单节点Consu ...
- 浅谈MySQL集群高可用架构
前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能 ...
随机推荐
- 【机器学习】DBSCAN Algorithms基于密度的聚类算法
一.算法思想: DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法.与划分和层 ...
- Python中斐波那契数列的四种写法
在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,“你学过数据结构吗?”我略略点一点头 ...
- JAVA-JSP内置对象之page对象调用Servlet
相关资料:<21天学通Java Web开发> page对象1.page对象代表JSP转译后的Servlet.2.通过page对象可以非常方便地调用Servlet类中定义的方法. pageD ...
- Docker之宿主机ssh至docker容器
下载docker: https://www.docker.com/products/overview 下载镜像: docker pull centos 查看镜像:docker images 创建镜像对 ...
- [服务]Crontab和每隔10S执行一次
转自:https://www.cnblogs.com/juandx/archive/2015/11/24/4992465.html linux下定时执行任务的方法 在LINUX中你应该先输入cron ...
- Python 读取数据
将一个文件夹下面的图像和对应的pts读进来,然后把pts文件里面的数据读入一个数组,然后画到图像上: # -*- coding:utf- -*- """ 测试数据样例 & ...
- 【转】Graphics 关于呈现质量与合成模式
GDI+相关的作图,每种语言都有其自身的封装类,但本质上是一样的,下面这篇文章写的非常好,对于C#的Graphics类也是使用的,所以转载了,原文在这里: http://www.cnblogs.com ...
- mongo 记得开启验证 auth = true
dbpath=/mnt/mongodb/data/logpath=/usr/local/mongodb/log/mongodb.logauth = trueport=27017logappend=1f ...
- javascript 获取当前部署项目路径
javascript 获取当前部署项目路径 ========================================= javascript获取当前部署项目路径: 主要用到Location 对 ...
- maven工程如何引用css和js文件
工程目录结构如下图: 目的: 在index.jsp中引用hello.js和base.css文件 实现: 在web.xml中,新增<servlet-mapping> <serv ...