学习IDEA springcloud 的简单搭建过程---eureka(二)
一 、 eureka 注册中心
1.在Spring boot 依赖的基础上加上如下依赖
2.配置地址和端口,因为默认情况下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们还需要配置禁用它的客户端注册行为
3.加上@EnableEurekaServer注解就可以开启eureka 注册中心了
4.启动之后访问我们配置的地址 http://localhost:1001
5.现在可以看到还没有服务注册进来,接下来我们开始搭建一个eureka-Client 注册服务到eureka注册中心
二、搭建一个服务提供者
1.还是在springboot的pom基础上导入依赖,但是依赖换成spring -cloud - starter - eureka
2.在引导类上加入@EnableEurekaClient或者@EnableDiscoveryClient,这两个注解都是用来实现服务发现的功能,但是@EnableEurekaClient 只用于eureka的服务发现。
3.配置应用名和eureka地址
4.启动之后可以看到eureka页面已经注册了一个服务
5.在client 中定义一个用于远程调用的接口
三、服务消费者
服务消费者可用于发现服务并消费服务(调用服务中开放的方法)
利用feign
依然添加依赖
添加引导类注解
@EnableEurekaClient 用于发现服务
@EnableFeignClients 用于开启feign功能
配置
定义远程调用接口
@FeignClient("eureka-client") 调用服务,填写需要调用的服务名
并定义与要调用的方法相同方法和参数和返回值的接口,@RequestMapping里的内容相同。
可以直接在另一个类里面直接注入DemoCustom 对象 ,就可以调用这个方法
启动之后访问 http://localhost:1003/cus
后续集群搭建继续学习。。。
附上常用配置含义
Spring Cloud eureka
分为三大块 :注册中心、服务提供者、服务消费者
服务提供者注册服务到注册中心,服务消费者通过在注册中心找到服务提供者的地址,从而调用提供者的服务。
常用配置
1.eureka.instance.lease-expiration-duration-in-seconds
----设置eureka server在从收到上一次client 的心跳之后等待下一次心跳的超时时间
服务提供者在启动后,会周期性的(默认30秒)向eureka server 发送心跳,以证明当前服务是可用状态,Eureka Server 在一定的时间(默认90秒),未收到客户端的心跳,则认为服务宕机,注销该实例
2.eureka.server.enable-self-preservation
---是否开启自我保护模式 默认为 true
默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,此时本不应该注销这个微服务。
Eureka通过“自我保护模式”来解决这个问题——当Eureka Server节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。一旦进入该模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。
3.eureka.client.registry-fetch-interval-seconds
--设置 eureka client 多久去拉一次服务注册信息,默认是30秒,如果要快速的获取服务可以缩小这个值,例如到5s
4.eureka.instance.lease-renewal-interval-in-seconds
-- eureka client 发送给 eureka server 的心跳频率
5.eureka.client.register-with-eureka
--启动服务注册,默认是true ,但是在注册中心配置时,因为本身为注册中心,不用去注册自身,一般设为false
6 .eureka.client.fetch-registery
--检索服务,默认为true,在注册中心配置时设为false