一 单例Eureka
1.1 基本思路
- 建立spring-cloud父级项目,再父级项目中引入spring-cloud的jar包
- 建立Eureka的子项目,并在父项目中注册。引入Eureka的jar包
- 子项目中配置Eureka,启动即可完成
1.2 具体实现
ps:只写出了部分重要代码,完成版等我那天有空了上传一下github。
敲黑板,有空了!有空了!有空了!有空了!有空了!有空了!有空了!
1.2.1 父项目pom引入spring-cloud
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
1.2.2 引入Eureka的jar包
<dependencies>
<!--Eureka server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-
server</artifactId>
</dependency>
</dependencies>
1.2.3 application.yml文件编写
server:
port: 8761
spring:
application:
#应用标识,再Eureka中作为服务的id标识(serviceId)
name: lagou-cloud-eureka-server
eureka:
instance:
hostname: localhost
client:
# 客户端与EurekaServer交互的地址,如果是集群,需要填写其他server的地址
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
register-with-eureka: false # 表示自己就是注册中心,不用注册自己
fetch-registry: false # 表示自己就是注册中心,不用去注册中心获取其他服务的地址
1.2.4 启动之后页面相关信息
太多了,那天陈则龙不气我了,我就补起来。如果可以的话,大家去网爆他!
二 高可用集群
2.1 基本思路
- 当有两个或许节点的时候,Eureka是通过复制节点来进行服务注册列表的同步
- 所以配置多个节点的时候通过defaultZone来指定复制节点的位置。
- Eureka Server集群中每一个Server其实相对于其它Server来说都是Client**
2.2 具体实现
2.2.1 hosts文件配置主机名
需要注意修改完hosts文件之后需要重启游览器。因为游览器是打开读取。读取之后不会实时更新。
127.0.0.1 LagouCloudEurekaServerA
127.0.0.1 LagouCloudEurekaServerB
2.2.2 复制工程并修改yml文件
#eureka server服务端口
server:
port: 8761
spring:
application:
name: lagou-cloud-eureka-server # 应用名称,应用名称会在Eureka中作为服务名称
# eureka 客户端配置(和Server交互),Eureka Server 其实也是一个Client
eureka:
instance:
hostname: LagouCloudEurekaServerA # 当前eureka实例的主机名
client:
service-url:
# 配置客户端所交互的Eureka Server的地址(Eureka Server集群中每一个Server其实相对于其它Server来说都是Client)
# 集群模式下,defaultZone应该指向其它Eureka Server,如果有更多其它Server实例,逗号拼接即可
defaultZone: http://LagouCloudEurekaServerB:8762/eureka
register-with-eureka: true # 集群模式下可以改成true
fetch-registry: true # 集群模式下可以改成true
dashboard:
enabled: true
#eureka server服务端口
server:
port: 8762
spring:
application:
name: lagou-cloud-eureka-server # 应用名称,应用名称会在Eureka中作为服务名称
# eureka 客户端配置(和Server交互),Eureka Server 其实也是一个Client
eureka:
instance:
hostname: LagouCloudEurekaServerB # 当前eureka实例的主机名
client:
service-url: # 配置客户端所交互的Eureka Server的地址
defaultZone: http://LagouCloudEurekaServerA:8761/eureka
register-with-eureka: true
fetch-registry: true
三 服务提供者集群
3.1 基本思路
- 引入client的相关坐标
- 添加application.yml文件Eureka Server高可用集群的地址及相关配置
3.2 具体实现
3.2.1 引入坐标
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
3.2.2 配置文件修改
#注册到Eureka服务中心
eureka:
client:
service-url:
# 注册到集群,就把多个Eurekaserver地址使用逗号连接起来即可;注册到单实例(非集群模式),那就写一个就ok
defaultZone: http://LagouCloudEurekaServerA:8761/eureka,http://LagouCloudEurekaServerB:8762/eureka
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ipaddress}:${spring.application.name}:${server.port}@project.version@
四 消费者集群
4.1基本思路
与服务提供者一样
4.2 具体实现
省略
五 消费者调用服务者
5.1 基本思路
- 通过Eureka
- 在启动类开启服务发现
- 通过DiscoveryClient从服务中心拿到相关实例,然后通过http请求进行消费。
5.2 具体实现
版本和我学习资料的版本不一致。所以截图一下,自己代码省略