我们已经创建好了一个集群版的Eureka的项目,我们将实例部署到集群环境当中,我们先说一下我们的部署环境,我为大家安装了两台虚拟机,准备了两个Linux环境,我们会把节点部署到两个不同的虚拟机当中,Linux系统当中,然后这里我们需要注意,部署环境,Linux系统,需要安装JDK1.8,并且正确配置环境变量,然后你不需要安装什么Tomcat,因为我们是基于SpringBoot项目去开发的,在SpringBoot当中,它是内嵌了一个TOMCAT,而且SpringBoot最终导包的时候呢,会生成一个jar文件,只要运行这个jar文件,他启动时就会启动内置的tomcat,所以我们也不需要去安装什么tomcat了,接下来我们看一下,我们是两个环境,一个是IP为134的,一个是IP为135的,那么我们需要做的第一件事,就是将项目打包,那么打包怎么打呢,其实也非常简单的,我们这个项目不是基于maven来开发的吗,所以我们可以直接用maven来打包,Maven install这是打包的命令,回到我们的eclipse当中,这个时候看到BUILD SUCCESS,说明打包成功了,然后我们来看一下项目的target目录,在这里我们可以看到,有一个springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar,其实这个就是我们项目被maven打完后的一个jar包,因为我们创建的就是jar项目,第二步我们需要把我们的项目上传到我们的虚拟机当中,我的虚拟机是带一个图形界面的,我通过这个图形界面上传,要比我们通过上传要快一些,我在root下建立了一个temp的目录,往上传一些资源的,那我们就把jar包传到虚拟机当中,134下已经有了,我们看一下135下,也传一份相同的,现在我就相当于我的两个节点下,环境当中已经有这个项目了,然后接下来我们来看还要做什么事,我们先进入到temp目录里,这里我们可以看到上传进来了,然后我们去usr/local下,我们新建一个目录,叫eureka,我以后跟服务启动相关的东西,我都会放到这个目录下,然后将我们的文件copy过去cp eureka.jar /usr/local/eureka/ -f我们把它整理到笔记当中,将项目的jar包拷贝到/usr/local/eureka,上面还少一步,在/usr/local下创建一个eureka的目录,然后将它拷过去,上传实例,上传进来以后,我们现在还需要一个启动脚本,我的项目在运行的时候,我还需要依赖一个shell脚本去启动项目,那么shell脚本也比较简单,我们来添加一个shell脚本,那么shell脚本怎么写呢,这里准备好了一个脚本,已经写好了,当然这些东西没有必要死记硬背,在这个启动脚本当中,我们所关注的是这两点,一个好似JAR_NAME的变量JAR_NAME="项目名称"还有一个是SPRING_PROFILES_ACTIVSPRING_PROFILES_ACTIV="-Dspring.profiles.active=配置文件变量名称"这个JAR_NAME表示什么意思呢,当前需要让启动脚本,去运行的项目的JAR包的全名,SPRING_PROFILES_ACTIV表示的什么呢,我们知道在SpringBoot当中,对于多环境配置的时候,你的项目在启动的时候,可以给他加载指定的配置文件,来去做启动,那么其实这一块呢,就是你的实例在启动,让他去加载哪个配置文件,这个大家还有印象吧,讲的时候说过,你在windos平台下,你在启动你的项目的时候,用java -jar,然后后面是你项目的名称,然后项目要启动的时候,加载指定的配置文件,去让他启动,我们可以加一个--spring.profile.active,然后等于你配置文件的后缀nohup java -jar springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar --spring.profile.active=dev &那么在linux系统下面,也是这样的,但是不同的这些都定义在脚本里面,启动的脚本文件当中了,那么也就是未来把这个改一下就可以了,其他的我们什么都不用动,然后我们把这个copy一下,拿过来,打开我们的XShell,我们把这个粘进来,粘进来之后呢,首先项目的名称,打开我们的项目,把我们项目的全名copy一下,然后把它粘进来JAR_NAME="springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar"这是第一步,第二步就是配置文件,那么这个配置文件大家注意,打算怎么去部署这个实例呢,这里有个134,有个135,我们打算把eureka1部署到134里,eureka2部署到135里,那么也就意味着,135在启动我们的eureka server的时候,需要让他去加载eureka2的配置文件,所以这块我们就给eureka2,这样启动就不会加载这个配置文件了SPRING_PROFILES_ACTIV="-Dspring.profiles.active=eureka2"保存并退出然后我们就创建了一个启动脚本,这个脚本是没有执行权限的,我们还要给他分配一个执行权限,那就是chmod -R 755 server.sh现在可以看到脚本有执行权限了,回来在134里我们也要这么去做,进入到eureka目录下,然后我们再去创建一个vim sever.sh然后把配置文件里的内容都copy过来,然后还是先改项目名称,配置文件,这是在134下,134下这个环境要启动的时候,chmod -R 755 server.sh有这个执行权限了,编写一个启动脚本文件,配置文件变量名称,设置启动脚本的运行权限,然后接下来我们还有一个非常重要的环节去做,大家注意,我们在配置文件当中,现在是通过域名hostname来访问的,那我们还要对我们的host文件做修改,现在你要用这个域名去访问,或者你访问这个hostname,他所对应的IP地址是多少,否则它是无法访问的,否则他怎么知道是哪个机器的地址,所以需要修改linux的host文件,我们先从134开始,vim /etc/host这个是host文件里,它里面的内容,然后我们要往里加,比如我家在eureka1的实例,在134环境当中,他要访问的是eureka2,我们要把eureka2的配置一下10.40.8.152 eureka1
10.40.8.152 eureka2把两个的hostname和IP做一个映射,我们去看修改后的内容,我们就可以去启动我们的注册中心了,怎么启动呢,./server.sh start启动时必须要给start,脚本当中他有两个参数,一个是start,一个是stopecho_help()
{echo -e "syntax: sh $CUR_SHELL_NAME start|stop"
}start表示你的服务启动,如果你想通过脚本关闭你当前的eureka注册中心,后面跟stop参数就可以了,这个文件位于 etc下的host,接下来启动eureka注册中心,启动的命令是./server.sh后面跟start,是启动,然后停止呢,是./server.sh stop,这个是停止,接下来我们就来启动一下,当然这两个你从哪个启动都可以,启动,他现在正在启动,./server.sh start启动,然后我们在启动的时候也不知道启动有什么东西,我们也不知道成功还是不成功,我们加了logback了,这个时候在你们项目的目录下,相对路径下会创建一个catalina的目录,我们进到里面,然后进入到logs里面,这里有一个日志文件,我们可以用tail的命令看一下,这是他启动时输出的信息nohup java -jar springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar  --spring.profiles.active=e1 &nohup java -jar springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar  --spring.profiles.active=e2 &nohup java -jar springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar  --spring.profiles.active=eureka1 &nohup java -jar springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar  --spring.profiles.active=eureka2 &application-eureka1.properties#spring.application.name=eureka-server
server.port=8761
#eureka.instance.hostname=eureka1
eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka/
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=falseapplication-eureka2.properties#spring.application.name=eureka-server
server.port=8762
#eureka.instance.hostname=eureka2
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=falsenohup java -jar springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar  --spring.profiles.active=eureka1 &nohup java -jar springcloud-eureka-server-ha-0.0.1-SNAPSHOT.jar  --spring.profiles.active=eureka2 &application-eureka1.properties#spring.application.name=eureka-server
server.port=8761
#eureka.instance.hostname=eureka1
eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka/
#eureka.client.registerWithEureka=false
#eureka.client.fetchRegistry=falseapplication-eureka2.properties#spring.application.name=eureka-server
server.port=8762
#eureka.instance.hostname=eureka2
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
#eureka.client.registerWithEureka=false
#eureka.client.fetchRegistry=false需要关闭linux的防火墙或者开放8761端口,我这里已经把防火墙关闭了,如果你不关闭防火墙,它是无法通信的,也是无法启动的,我们通过浏览器可以去访问注册中心的页面http://10.40.8.152:8762/http://10.40.8.152:8761/管理页面打开了,表示我们集群版的注册中心是成功的,我们把是否配置的去掉了,单机版你一定要去掉他,因为只有一个实例,而且这个实例还是注册中心自己,所以会默认注册自己,那样是肯定无法注册的,但是集群版就不存在这个问题,集群版不存在这个问题的原因是什么呢,因为它是两个节点,会想集群的其他节点去注册
<?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.learn.cloud</groupId><artifactId>springcloud-eureka-server-ha</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.12.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></properties>    <dependencyManagement><dependencies><dependency>    <groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency></dependencies><!-- 这个插件,可以将应用打包成一个可执行的jar包 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
#spring.application.name=eureka-server
server.port=8761
#eureka.instance.hostname=eureka1
eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka/
#eureka.client.registerWithEureka=false
#eureka.client.fetchRegistry=false
#spring.application.name=eureka-server
server.port=8762
#eureka.instance.hostname=eureka2
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
#eureka.client.registerWithEureka=false
#eureka.client.fetchRegistry=false
package com.learn;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer
@SpringBootApplication
public class EurekaHAApplication {public static void main(String[] args) {SpringApplication.run(EurekaHAApplication.class, args);}
}

Eureka集群部署相关推荐

  1. eureka集群 ha_Eureka

    学习主题:Eureka 学习目标: 对应视频: http://www.itbaizhan.cn/course/id/85.html 对应文档: 无 对应作业 1. 编写Eureka入门案例 (1) @ ...

  2. EureKa服务注册与发现(集群部署Eureka与支付模块集群部署、订单模块访问负载均衡调用支付服务实现)

    上一遍文章完成了,聚合父工程.消费模块.支付模块.公共模块的搭建.RestTemplate调用支付模块 该篇项目创建gitv2.0的管理分子完成学习 1.Eureka基础知识 1.1. 什么是服务治理 ...

  3. k8s部署eureka集群

    在k8s集群中通过CICD进行部署Eureka集群 一.前言 普通后端如果想要同时起多个服务来进行负载均衡,可以通过部署Deployment并调整Pod的数量,然后交由Service来代理这些Pod, ...

  4. 疯狂Spring Cloud连载(5)Eureka集群搭建

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<疯狂Spring Cloud微服务架构实战> 京东购买地址:https://item.jd.com/1 ...

  5. apollo集群部署_ribbon+apollo实现灰度发布

    一.前言 在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本.但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一 ...

  6. eureka配置_F版本SpringCloud 5—Eureka集群和自我保护机制

    源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 上篇文章中,通过代码搭建了Eureka注册中心和客户端,是Eureka的简单应用 ...

  7. eureka 集群失败的原因_Eureka集群的那些坑

    今天遇到一个Eureka集群的一个坑. 问题现场类似是这样的:两台Eureka组成的服务注册中心集群,两台服务提供方server1.server2,两个服务调用方client1.client2. 正常 ...

  8. Linux搭建eureka集群,基于dns搭建eureka集群

    eureka集群方案: 1.通常我们部署的eureka节点多于两个,根据实际需求,只需要将相邻节点进行相互注册(eureka节点形成环状),就达到了高可用性集群,任何一个eureka节点挂掉不会受到影 ...

  9. k8s集群部署springcloud 单应用

    k8s集群部署springcloud 单应用 docker配置docker私库 docker build 镜像 k8s集群部署 镜像 验证部署结果 1. docker配置docker私库 1.1 编辑 ...

最新文章

  1. python pattern_python-patterns:python风格的设计模式
  2. I/O模型之一:Unix的五种I/O模型
  3. 浅谈主动学习(Active Learning)
  4. java数据库视频教程下载,【No147】最新oracle11g DBA 开发和应用数据库视频教程下载...
  5. jsf集成spring_Spring和JSF集成:动态导航
  6. 《Python核心编程》第二版第18页第一章练习 -Python核心编程答案-自己做的-
  7. 学习前端需要掌握什么基础?
  8. 【GNN】图神经网络的解释性综述
  9. 用ASP.NET上传大文件 (转载自思归blogs)
  10. 表格闪退怎么解决_Excel中出现表格打开闪退的处理技巧
  11. 德国慕尼黑.NET俱乐部VS2019发布活动
  12. 【搬家】VB.NET开发全功能串口调试助手
  13. (PTA)数据结构(作业)2、顺序表
  14. [armv9]-PAC:Pointer authentication和BTI:Branch target instructions介绍
  15. 2019牛客暑期多校训练营(第九场)A——The power of Fibonacci(循环节+中国剩余定理(互质)||广义BM)
  16. 【吐血整理】java程序员推荐轻薄笔记本
  17. 这个【vue】项目,让我明白了…
  18. 远程视频专家系统,指导系统方案整理
  19. 从国土空间规划到智慧城市
  20. [技术讨论]基本共射共集共基放大电路怎么工作,可以来看看

热门文章

  1. H5 的getImageData造成的大量内存开销
  2. 导致散户亏损的三大根源
  3. 关于本Blog无法进行评论问题的说明
  4. 【深入理解JVM】JVM概述
  5. 飞利浦弃意已决 冠捷顺势接手
  6. 树莓派3_win10下使用远程桌面连接与树莓派通信(使用VNC实现连接后)
  7. php basic syntax
  8. linux 压缩以及归档
  9. $http中文乱码|param乱码|angular提交后台乱码|
  10. js判断是否是ie浏览器