前言:学习挺折磨人的,不过撑过去学完看看学完的“战利品”也挺爽的。(手动狗头)

springcloud

废话不多说先上官网

Spring Cloud简介

Spring Cloud将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。

Note:

1.springCloud和Springboot上版本是有要求的。见博客

2.微服务中需要一个父项目同时有多个子项目

Eureka注册中心

问题提出:

user-service对外提供服务,需要对外暴露自己的地址。而consumer(调用者)需要记录服务提供者的地址。此时如果还人为管理地址,不仅开发困难,将来测试、发布上线都会非常麻烦。
简单点说就是需要有工具帮忙自动管理地址!

解决:Eureka做什么?

Eureka负责管理、记录服务提供者的信息。
服务调用者无需自己寻找服务,而是把自己的需求告诉 Eureka,然后Eureka会把符合你需求的服务告诉你。
同时,服务提供方与Eureka之间通过 “心跳”机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服 务列表中剔除。 这就实现了服务的自动注册、发现、状态监控。

原理

编写Eureka所需的依赖

<!--作用: 能进入Eureka界面 -->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies><!--作用: 服务注册(提供服务端写) -->
<!-- Eureka客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency><!--作用: 服务发现(客户端) -->
<!-- Eureka客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

启动类需要添加@EnableDiscoveryClient

//提供服务端
@SpringBootApplication
@MapperScan("com.lxs.user.mapper")
@EnableDiscoveryClient //开启Eureka客户端发现功能
public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);
}
}//客户端(即comsumer)
@SpringBootApplication
@EnableDiscoveryClient // 开启Eureka客户端
public class UserConsumerDemoApplication {@Bean
public RestTemplate restTemplate() {return new RestTemplate(new OkHTTP3ClientHTTPRequestFactory());
}
public static void main(String[] args) {SpringApplication.run(UserConsumerDemoApplication.class, args);
}
}

Eureka详解:

Eureka架构中的三个核心角色:

  • 服务注册中心 Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-server
  • 服务提供者 提供服务的应用,可以是Spring Boot应用,也可以是其它任意技术实现,只要对外提供的是REST风格服务即可。本例中就是我们实现的user-service
  • 服务消费者 消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方。本例中就是我们实现的consumer

高可用的Eureka Server

如果有三个Eureka,则每一个EurekaServer都需要注册到其它几个Eureka服务中。
例如:有三个分别为10086、10087、10088,则:
10086要注册到10087和10088上
10087要注册到10086和10088上
10088要注册到10086和10087上

Eureka客户端工程

user-service 服务提供

  • 服务地址使用ip方式
    服务提供者在启动时,会检测配置属性中的 eureka.client.register-with-erueka=true 参数是否为true。默认注册时使用的是主机名或者localhost,如果想用ip进行注册,可以在 user-service 中添加配置如下:
eureka:
instance:
ip-address: 127.0.0.1 # ip地址
prefer-ip-address: true # 更倾向于使用ip,而不是host名
  • 续约
    在注册服务完成以后,服务提供者会维持一个心跳(定时向EurekaServer发起Rest请求),告诉EurekaServer:“我还活着”。这个我们称为服务的续约(renew);有两个重要参数可以修改服务续约的行为;可以在 user-service 中添加如下配置项:
eureka:
instance:
lease-expiration-duration-in-seconds: 90
lease-renewal-interval-in-seconds: 30

consumer-demo 服务消费

  • 获取服务地址的频率
    -当服务消费者启动时,会检测 eureka.client.fetch-registry=true 参数的值,如果为true,则会从Eureka Server服
    务的列表拉取只读备份,然后缓存在本地。

Eureka服务端工程 eureka-server

  • 失效剔除
  • 自我保护
    当一个服务未按时进行心跳续约时,Eureka会统计最近15分钟心跳失败的服务实例的比例是否超过了85%,Eureka就会把当前实例的注册信息保护起来,不予剔除。一 般开发阶段关闭自我保护
eureka:
server:
enable-self-preservation: false # 关闭自我保护模式(缺省为打开)
eviction-interval-timer-in-ms: 1000 # 扫描失效服务的间隔时间(缺省为60*1000ms)

springCloud—Eureka知识点总结相关推荐

  1. SpringCloud Eureka自我保护机制

    转载自 SpringCloud Eureka自我保护机制 自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他 ...

  2. springcloud Eureka服务注册和发现

    一,Eureka基本介绍: Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper). Eureka 采用了 C-S 的设计架构 ...

  3. SpringCloud重要知识点总结,动力节点Spring Cloud入门到精通学习教程

    SpringCloud的教程很多小伙伴一定都看过,那么,在SpringCloud学习中需要掌握哪些知识点?今天来给大家梳理下. 什么是分布式? 不同模块部署在不同服务器上 作用:分布式解决网站高并发带 ...

  4. SpringCloud Eureka初体验

    文章目录 Eureka Server 创建Eureka Server项目 配置application.properties 增加@EnableEurekaServer注解 访问Eureka Serve ...

  5. SpringCloud eureka服务状态监听

    一.前言 近期由于公司不同平台项目之间的业务整合,需要做到相互访问! 每个平台均有自己的注册中心和服务,且注册中心相互之间并没有相互注册! 借助spring的事件监听,在eureka-server端监 ...

  6. spring-cloud eureka注册发现

    idea新建一个eureka server服务 application.yml 配置: spring:application:name: eureka-serverserver:port: 7000e ...

  7. 【Java从0到架构师】SpringCloud - Eureka、Ribbon、Feign

    SpringCloud 分布式.微服务相关概念 微服务框架构选型 SpringCloud 概述 服务注册与发现 - Eureka 案例项目 Eureka 自我保护机制 微服务调用方式 - Ribbon ...

  8. SpringCloud——Eureka服务注册和发现

    一.SpringCloud和Dubbo SpringCloud整合了一套较为完整的微服务解决方案框架,而Dubbo只是解决了微服务的几个方面的问题. content Dubbo SpringCloud ...

  9. SpringCloud/Eureka/Ribbon:No instances available for springcloud-provider-dept

    服务注册方: <!--eureka server--> <dependency><groupId>org.springframework.cloud</gro ...

  10. SpringCloud:Eureka Config项目搭建(Gradle项目)

    Eureka Config分为Config Server 和Config Client两部分. Config Server部分: gradle配置: // https://mvnrepository. ...

最新文章

  1. MySQL面试题 | 附答案解析(十七)
  2. 【SLAM】卡尔曼滤波:究竟滤了谁?
  3. python 实现结构树模式显示目录下文件
  4. 【easysnmp】python snmp IF-MIB::ifPhysAddress messy code,解析mac地址乱码
  5. 三行代码实现快速排序
  6. 花匠(NOIP2013)(神奇纯模拟)
  7. paip.提升用户体验---免维护列表字段
  8. python语句只能以程序方式打开_python如何处理程序无法打开
  9. data.unity3d 文件过大解决方法
  10. 内存颗粒位宽和容量_SDRAM内存模组的物理Bank与芯片位宽(高手进阶,终极内存技术指南——完整/进阶版)...
  11. Kubernetes权限管理与控制-RBAC
  12. 问题记录-笔记本HDMI外接2k显示器如何调2k分辨率
  13. ssm基于微信小程序的游泳馆管理系统 uinapp 计算机毕业设计
  14. python学习:向Firebird数据库表中插入数据
  15. 被误解最大的基础学科——统计学,到底是个啥?
  16. 代写工作总结如何写好
  17. 根据美光内存颗粒上的编码查询对应型号
  18. solidity第一课—了解Remix和Hellosolidity三行代码
  19. 网安等保-主机安全测评之Linux服务器Ubuntu-22.04-LTS操作系统安全加固制作基线系统脚本分享与实践...
  20. 地理坐标系与投影坐标系互转

热门文章

  1. java 象限分析_用四种象限分析你(未来的人生走向)
  2. 力扣-150 逆波兰表达式求值
  3. 性能优化篇 之 如何开展优化类的工作(1)
  4. 【Dart学习】--Dart之正则表达式相关方法总结
  5. L1-046 整除光棍 (20 分)—团体程序设计天梯赛
  6. FOUND MODULE 所在的表及刪除不啟作用的INCLUDE
  7. jxl freemark
  8. HCIE-Security Day25:DSPN+NHRP+Mgre:实验(四)配置shortcut方式DSPN(OSPF路由协议)
  9. web安全day44:进阶,使用Nmap+Wireshark理解端口扫描
  10. C++控制台输出中文时乱码的解决方案