注意,本文還是對上一篇博客的延續,需要的配置,在前面的博客里面可以找到。
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集群的關系。