标签:false Spring eureka Cloud 注册 Eureka com cloud
Eureka服务注册中心搭建
新建module
修改pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!-- 引入自定义的api通用包,可以使用Payment支付Entity -->
<dependency>
<groupId>com.yu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- boot web actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
创建application.yml
server:
port: 7001
eureka:
instance:
#eureka服务端的实例名称
hostname: localhost
client:
#false表示不向注册中心注册自己
register-with-eureka: true
#false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
fetch-registry: false
service-url:
#设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
创建主启动类
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
public static void main(String[] args) {
SpringApplication.run(EurekaMain7001.class, args);
}
}
启动测试
将上一篇搭建好的服务提供者和消费者注册到eureka中
修改cloud-provider-payment8001的pom.xml
<!-- 引入eureka客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
修改yml
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka
修改主启动类
cloud-consumer-order80与cloud-provider-payment8001同理,不多写了
测试页面
Eureka集群搭建
新建cloud-eureka-server7002
-
改pom(从cloud-eureka-server7001的pom复制)
-
C:\Windows\System32\drivers\etc路径下的hosts文件添加
127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com
修改yml(7001)
server:
port: 7001
eureka:
instance:
#eureka服务端的实例名称
hostname: eureka7001.com
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
fetch-registry: false
service-url:
#设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7002.com:7002/eureka/
修改yml(7002)
server:
port: 7001
eureka:
instance:
#eureka服务端的实例名称
hostname: eureka7002.com
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
fetch-registry: false
service-url:
#设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://eureka7001.com:7001/eureka/
将7001的主启动类复制到7002
将提供者微服务和消费者微服务注册到两台eureka中(yml)
测试
- 启动两台eureka
- 启动提供者
- 启动消费者
提供者8001集群环境搭建(8001,8002)
参考cloud-provider-payment8001来新建cloud-provider-payment8002,修改cloud-provider-payment8002的yml的端口为8002
修改8001和8002的controller
现在已经有两个提供者了,需要修改消费者的访问地址
已经有两个提供者(payment)了,现在需要使用@LoadBalanced注解赋予RestTemplate负载均衡
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
测试
- 启动eureka集群
- 启动提供者集群
- 启动消费者
最终会8001和8002接口交替调用,实现了负载均衡,搭建成功
关于eureka自我保护
**概述:**默认情况下,如果EurekaServer在- 定时间内没有接收到某 个微服务实例的心跳,EurekaServer将 会注销该实例(默认90秒)。但是当网络分区故障发生(延时、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了一因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过 “自我保护模式”来解决这个问题一-当EurekaServer节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。如果在Eureka Server首页看到下面这段提示,则说明Eureka进入了保护模式。
如何配置禁止自我保护:
eureka:
server:
enable-self-preservation: false
标签:false,Spring,eureka,Cloud,注册,Eureka,com,cloud 来源: https://blog.csdn.net/curry_mq/article/details/121975058
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。