Spring Cloud

曾经终败给现在 2023-07-01 08:55 12阅读 0赞

SpringCloud
优点
解决高并发,解决服务器的压力
缺点
维护成本太大,因为分散开发

CAP原则
● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
● 分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

consulCP有利于实现可用性的一致性。
eurekaAP
nacos=cp(配置中心)+ap(注册中心)

hystrix:
熔断:请求直接返回,不走网络请求,保持服务器之间通信,不影响其他服务
降级:每次调用挂掉的服务,返回一个提示信息,服务恢复后,在手动添加,这就是降级
用法:
ribbon:
pom.xml加入依赖

org.springframework.cloud
spring-cloud-starter-netflix-hystrix

启动类加入@EnableHystrix注解开启Hystrix
方法上加上@HystrixCommand注解。该注解对该方法创建了熔断器的功能,并指定了fallbackMethod熔断方法,熔断方法直接返回
return ResultEntity.error(“服务器异常…”);
feign:
在配置文件加以下代码:feign.hystrix.enabled=true
在service层FeignClient的加入fallbackk的指定类
在创建一个类继承这个接口
package com.qpx.upmsnacosfeign.service;

import com.qpx.common.dto.UserDto;
import com.qpx.common.vo.ResultEntity;
import org.springframework.stereotype.Component;

@Component
public class UserServiceHystrix implements UserService{
@Override
public ResultEntity getUserList(UserDto userDto) {
return ResultEntity.error(“服务器哪去了…”);
}
}

Zuul网关
zuul是什么 zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。Zuul在云平台上提供动态路由,监控
Zuul的主要功能是路由转发和过滤器
zuul默认和Ribbon结合实现了负载均衡的功能
Zuul网关的核心是一系列的过滤器
在zuul中过滤器分为四种:
1.PRE Filters(前置过滤器):当请求会路由转发到具体后端服务器前执行的过滤器,比如鉴权过滤器,日志过滤器,还有路由选择过滤器
2.ROUTING Filters (路由过滤器):该过滤器作用是把请求具体转发到后端服务器上,一般是通过Apache HttpClient 或者 Netflix Ribbon把请求发送到具体的后端服务器上
3.POST Filters(后置过滤器):当把请求路由到具体后端服务器后执行的过滤器;场景有添加标准http 响应头,收集一些统计数据(比如请求耗时等),写入请求结果到请求方等。
4.ERROR Filters(错误过滤器):当上面任何一个类型过滤器执行出错时候执行该过滤器
zuul1.0的工作原理:
在这里插入图片描述
Zuul网关的作用
网关有以下几个作用:
统一入口:未全部为服务提供一个唯一的入口,网关起到外部和内部隔离的作用,保障了后台服务的安全性。
鉴权校验:识别每个请求的权限,拒绝不符合要求的请求。
动态路由:动态的将请求路由到不同的后端集群中。
减少客户端与服务端的耦合:服务可以独立发展,通过网关层来做映射。

Gateway是什么

Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
acos除了可以作为服务注册中心,它还有服务配置中心的功能
项目搭建
引入pom文件:

org.springframework.cloud
spring-cloud-starter-alibaba-nacos-config

在bootstrap.yml文件配置以下内容:
spring.cloud.nacos.config.prefix=city-producer-nacos
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.profiles.active=dev
在nacos配置中心新建一个配置在这里插入图片描述
@RefreshScope自动刷新

spring data jpa介绍
首先了解JPA是什么?
JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate,TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点。从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,其中就包括了Spring与EJB3.0的开发团队。
注意:JPA是一套规范,不是一套产品,那么像Hibernate,TopLink,JDO他们是一套产品,如果说这些产品实现了这个JPA规范,那么我们就可以叫他们为JPA的实现产品。

spring data jpa
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!

发表评论

表情:
评论列表 (有 0 条评论,12人围观)

还没有评论,来说两句吧...

相关阅读