赞
踩
Eureka在2022年已经确定的是,2.x版本开源计划已经停止了,1.x版本陆陆续续还是有人在维护的。还有很多最早使用微服务的公司还在继续用着eureka作为注册中心,也是很多同学学习微服务的敲门砖。
创建一个平平无奇的maven工程,取名为eureka-server
创建好maven工程之后,导入spring-boot与spring-cloud依赖版本管理依赖,注意两者的版本对应关系,或者你直接用我的版本。
<properties> <spring-boot.version>2.3.7.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR9</spring-cloud.version> </properties> <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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- eureka-server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
server:
port: 7001
eureka:
instance:
# eureka服务端的实例名称
hostname: localhost
client:
# false表示不向注册中心注册自己
register-with-eureka: false
# 表示自己是注册中心,职责是维护服务实例,不去检索服务
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
很正常的一个启动类,只是添加了@EnableEurekaServer
标签
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
public static void main(String[] args) {
SpringApplication.run(EurekaMain7001.class, args);
}
}
访问 http://localhost:7001,出现下面类似的界面就是搭建成功了
一个简单的Eureka客户端搭建就完成了,整体上就这些步骤,其它的配置可以在遇到问题后再去学习解决,常见的问题有eureka的自我保护机制。
实际生产中,eureka决定着所有服务的调用,如果eureka只有单机的话,eureka所在的服务器挂了,所有的服务都会无法工作,所以搭建为集群模式,非常有必要的。eureka集群模式的思想是互相注册,假设有A、B、C三个eureka服务端,A中要注册B、C两个服务端,B中要注册A、C两个服务端,C中要注册A、B两个服务端。
听起来很复杂,实际上要做的不难。在这里我所做的都是在自己本地电脑上搭建的eureka集群,和实际生产的多台服务器略有不同。
多台服务器的情况下,省略这部
用随便一个文本编辑器,右键选择用管理员权限打开,找到 C: -> windows -> system32 -> drivers -> etc -> hosts 文件,添加本机ip的多个域名。
hostname将localhost修改为你要设置的域名,defaultZone不再指向自己,而是指向了另外两个注册中心
方式1:
实际生产部署多台机时,你可以在同一个eureka项目下,配置多份application文件,比如application-7001.yml,application-7002.yml,application-7003.yml,然后启动时添加启动参数-Dspring.profiles.active=7001
这样去启动,分别启动3个服务。
比如这样的
启动参数选择7001
方式2:
在我这里,由于是有非常好用的idea,我可以直接修改一下vm options 就能启动了,我连多配置文件这步都不做了,原理是相同的。
在Services窗口,选择启动的应用,Ctrl + D
在弹出来的窗口中,修改应用名称,修改vm options参数
点击 apply ,点击ok,即可在Not Started分栏看到刚复制的配置,点击启动即可。
可以看到3个集群中彼此互相依赖
这样客户端就会同时被注册到集群中的每一个服务中
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。