eureka 集群的实现方式?
注意,本文还是对上一篇博客的延续,需要的配置,在前面的博客里面可以找到。
eureka集群版 (正宗的eureka!) 2.1.配置eureka的集群之前首先先配置HOSTNAME和IP的映射 具体的路径。 // C:\Windows\System32\drivers\etc 在windows系统中修改hosts文件 /* 127.0.0.1(localhost) eureka01 127.0.0.1(localhost) eureka02 127.0.0.1(localhost) eureka03 */ 2.2.在 springcloud-eureka-management 项目下 创建7082和7083项目。 2.3.修改7081、7082、7083的application.properties配置文件和创建各自的启动类。 /* eureka.instance.hostname=eureka03 eureka.client.service-url.defaultZone=http://eureka01:7081/eureka,http://eureka02:7082/eureka */ 2.2.4.修改provider-8081项目的application.properties配置文件 eureka.client.service-url.defaultZone=http://eureka01:7081/eureka,http://eureka02:7082/eureka,http://eureka03:7083/eureka
二、eureka集群的配置文件 和各自的启动类。
package com.aaa.zxf; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer // eureka 提供的服务 所有这里的注解是 server public class ApplicationRun7082 { public static void main(String[] args) { SpringApplication.run(ApplicationRun7082.class,args); } }
三、修改provider-8081项目的application.properties配置文件
server.port=8081 server.servlet.context-path=/ spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 我的数据库编码的问题 所以需要添加 characterEncoding=utf8 设置自字符集。 spring.datasource.url=jdbc:mysql://localhost:3306/qy100?characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=root spring.datasource.type=com.alibaba.druid.pool.DruidDataSource mybatis.type-aliases-package=com.aaa.zxf.model mybatis.mapper-locations=classpath:mapper/*Mapper.xml #三、 # 配置的是在eureka中显示的服务名(Application) # 如果不配置,则会显示UNKNOWN(这个是细节!!,以后有问题) spring.application.name=user-provider #一、 #配置eureka 的注册地址,将provider 注册进来。 # 单节点模式,eureka的命名空间是 defaultZone # 客户端的命名空间可以随意指定,就算不一致,也可以注册进eureka 。因为单节点只有 #一台eureka, 此时的命名空间是失效的。 #二、 注意! # GreenWich RS.3:无论是单点解还是集群模式,eureka的服务器端和客户端的命名空间必要保持一致,否则会报错(找不到服务实例) #eureka.client.service-url.defaultZone=http://localhost:7081/eureka # eureka 集群版的配置,需要将自己分别在三个 eureka上去注册。 eureka.client.service-url.defaultZone=http://eureka01:7081/eureka,http://eureka02:7082/eureka,http://eureka03:7083/eureka #四 #在eureka中配置实例, 就是eureka的status下显示的名字 # 不可以重复!!! 等同于mysql中表的id。 eureka.instance.instance-id=user-provider-8081 #五、 #在eureka中显示ip的地址 eureka.instance.prefer-ip-address=true #六 点击eureka的服务名显示出该服务的具体信息 # 根据服务的具体内容,作者,公司,以及对整个服务的描述来进行显示 # 相当于在HTML页面上有一个a标签<a href="/actuator/info"></a> --> 跳转到controller:@RequestMapping("/actuator/info") # !!开头用info!!其他的随便输入 info.autor.name=ZhouXu info.company.name=AAA info.project.desription=This is Demo #七 现在某些微服务就是不需要eureka的自我保护,就想办法把自我保护机制失效 # 规定自己向eureka发送心跳的时间 单位是秒 eureka.instance.lease-renewal-interval-in-seconds=5 #eureka.instance.lease-renewal-interval-in-seconds=5 # 当eureka最后一次检测到心跳的时间间隔(单位是秒) # eg:15:05:20是最后一次检测到心跳-->检测8秒之后还是无法检测心跳的时候直接剔除 eureka.instance.lease-expiration-duration-in-seconds=8
图解eureka集群的关系。