为了上微服务学习了一下springcloud。本机环境springboot版本2.0.9.RELEASE,springcloud版本Finchley.SR2
springcloud众所周知是微服务框架,和dubbo的原理及其一样。所以先从注册中心看起。
eureka:springcloud注册中心的一种,相当于dubbo的zookeeper。将服务发布上去,其他服务进行调用。
在我们的项目中创建一个子模块用来当作注册中心。
1、maven导入:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2、在启动类上增加注解:@EnableEurekaServer开启eureka服务
3、配置文件先简单配置一个
server:
port: 9999
spring:
application:
name: eureka-service
eureka:
client:
registerWithEureka: false
fetchRegistry: false
registerWithEureka与fetchRegistry是用来防止eureka启动时将自己注册到自己身上的时候报错的。
4、然后直接在浏览器中访问该项目地址,即可看到eureka的监控页面了。所以服务发布后都会在该页面中展示。
还有一些其他配置
server:
port: 9999
spring:
application:
name: eureka-service
eureka:
client:
# registerWithEureka: false
# fetchRegistry: false
service-url:
defaultZone: http://127.0.0.1:9999/eureka
# server:
# enable-self-preservation: false
# eviction-interval-timer-in-ms: 60000
# instance:
## 服务失效时间
# lease-expiration-duration-in-seconds: 30
## 服务续约间隔
# lease-renewal-interval-in-seconds: 30
application.name是用来在eureka中展示当前服务名称的,不然会显示unknow。
enable-self-preservation:关闭保护模式。一般来说注册的服务我们手动关闭后,eureka会有一个保护模式,认为该服务暂时网络不通但还会保留。关闭这个模式的话,服务关闭后,在eureka中等待eviction-interval-timer-in-ms(清理无效节点)时间就会剔除了。
5、配置eureka高可用
defaultZone: http://127.0.0.1:9999/eureka,http://127.0.0.1:9998/eureka即可。
6、配置eureka的客户端
我们需要发布一些服务到eurekas上,需要在服务中进行如下操作:
1)引相关依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2)在启动类上增加注解@EnableDiscoveryClient(支持多种注册中心的client)或者@EnableEurekaClient
3)在yum中配置如下即可
server:
port: 8000
spring:
application:
name: search-service
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:9999/eureka
注:defaultZone指定相应的eureka服务地址就可以了。
4)启动该服务即可完成服务发布了。
整个eureka发布管理的流程就是这些了,或许还有更高深的,暂时还没时间学习了。