项目里面常用组件

1:SpringCloud之Eureka的使用和常见的面试题
1.1:Eureka(cp)作为springCloud注册中心,用于微服务的注册和调用
1.1.1:项目中使用: 分为服务端和客户端
1.1.1.1:服务端
pom中引入jar包:spring-cloud-starter-eureka-server
启动类添加启动注解:@EnableEurekaServer //标注这是个eureka服务端
yml文件里面配置
1.1.2.1:客户端
pom中引入jar包:spring-cloud-starter-eureka
启动类添加启动注解:@EnableEurekaClient //本服务启动后会自动注册进eureka服务中
yml文件里面配置
1.1.1.1.1:
SpringCloud之Eureka的使用和常见的面试题
问题2:已停止的微服务不注销或注销有延迟
原因:这是由于Eureka Server注销无效节点周期、自我保护模式的因素造成的,因此会出现服务不注销或注销有延迟。解决办法如下:
Eureka Server
解决方案:关闭自我保护模式,并配置注销无效节点周期时间间隔。

# 默认值为true。设为false, 关闭自我保护, 从而保证会注销微服务
eureka.server.enable-self-preservation=false
# 清理间隔(单位毫秒,默认是60 * 1000)。根据需求将时间间隔设置短些,例如:设置1秒,一旦down掉,则会立即注销
eureka.server.eviction-interval-timer-in-ms=1000

在这里插入图片描述

CAP,AP,CP

2.spring cloud微服务之间的调用 的 ribbon和feign
2.1.springcloud 提供了两种方式,一种是 Ribbon,一种是 Feign。
Ribbon 是使用 restTemplate 进行调用,并进行客户端负载均衡。
什么是客户端负载均衡呢? 在前面 注册数据微服务 里,注册了8001和8002两个微服务,
Ribbon 会从注册中心获知这个信息,然后由 Ribbon 这个客户端自己决定是调用哪个,这个就叫做客户端负载均衡。
2.2.Feign 是什么呢? Feign 是对 Ribbon的封装,调用起来更简单。。。

ribbon与feign

核电项目里面微服务调用时,报404
自定义了一个feign的拦截器,每次调feign时,添加token信息。
在这里插入图片描述

3.spring cloud 服务链路 zipkin
3.1.什么是服务链路
在前面的例子里,我们有两个微服务,分别是数据服务和视图服务,随着业务的增加,就会有越来越多的微服务存在,他们之间也会有更加复杂的调用关系。
这个调用关系,仅仅通过观察代码,会越来越难以识别,所以就需要通过 zipkin 服务链路追踪服务器 这个东西来用图片进行识别了。

在这里插入图片描述
zipkin
4.spring cloud config 把配置单独弄成微服务管理。别的微服务配置的更少,更加关注业务代码的开发。 有服务端和客户端。
config
核电项目将 spring cloud config客户端 换成了nacos 配置中心客户端
优点:更方便配置管理
注册中心nacos完整部署及与eureka区别
nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较
在这里插入图片描述

在这里插入图片描述
5.Hystrix 断路器
项目里面最常用的是,在接口调用超时,或者服务挂了的时候,提供给页面一种提前编译好的结果。
Hystrix
6.网关 Zuul(第一代微服务网关),gateway (第二代微服务网关)
6.1.为何要用网关
我们现在有两种微服务,分别是数据微服务和视图微服务。
他们有可能放在不同的 ip 地址上,有可能是不同的端口。
为了访问他们,就需要记录这些地址和端口。 而地址和端口都可能会变化,这就增加了访问者的负担。
所以这个时候,我们就可以用网关来解决这个问题。
如图所示,我们只需要记住网关的地址和端口号就行了。
如果要访问数据服务,访问地址 http://ip:port/api-data/products 即可。
如果要访问视图服务,访问地址 http://ip:port/api-view/products 即可。

Zuul
gateway

7.核电项目后台开发接口是按照resultful风格接口
resultful风格接口
8.核电项目的调度中心 使用xxl-job组件.定时任务
XXL-JOB快速入门
项目里面执行器,定时任务配置
分布式任务调度平台XXL-JOB搭建教程
在这里插入图片描述

在这里插入图片描述
9.核电项目里面的spring cloud oauth 。feign之间调用token传递问题。
Spring Cloud OAuth 微服务内部Token传递的源码实现解析

10.项目里面配置自己的仓库
在这里插入图片描述
pom.xml里面配置的,每个项目都需要配置。为了简单起来,只配置一次 配置在了setting.xml里面。
在这里插入图片描述
核电的私服,使用Maven管理器Nexus 来管理jar包。
自己动手搭建Nexus
11:消息队列学习
核电:rabbitMQ
学习地址
12:分布式事务-核电是基于rabbitMQ 实现事务最终一致性。
学习视频
Java微服务下的分布式事务介绍及其解决方案
一:定义
本地事务:数据库控制的事务
分布式事务:分布式系统环境下由不同系统之间通过网络远程协作完成事务。用本地事务是解决不了的。
比如:
A系统执行成功,远程调用B系统,B系统数据库成功,但是远程调用超时,所以A系统回滚,B系统成功了。不符合最终事务一致性。
二:分布式事务产生的场景
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述分布式事务的基础理论
CAP理论:
在这里插入图片描述
数据库读写分类:降低数据库的压力
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

cap 组合
在这里插入图片描述
ap可用性,分区容忍性 ,cp一致性,分区容忍性
是分布式
ca不是分布式在这里插入图片描述

2:BASE理论

在这里插入图片描述
3.分布式系统的解决方案
第一种: 两阶段提交

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2pc解决方案
在这里插入图片描述

缺点在这里插入图片描述
缺点:在这里插入图片描述
seata在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二种:TCC
什么是tcc
在这里插入图片描述

tcc-解决方案

在这里插入图片描述

tcc与2pc的对比

在这里插入图片描述

第三种:消息最终一致性

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值