SpringCloud
文章平均质量分 72
未来的JAVA高级开发工程师
三年后的高级JAVA高发工程师!
展开
-
分布式事务(2)
组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的。可见,AT模式使用起来更加简单,无业务侵入,性能更好。Seata支持多种存储模式,但考虑到持久化的需要,我们一般选择基于数据库存储。为了方便各个微服务集成seata,我们需要把seata配置共享到nacos,因此。A是规范,目前主流数据库都实现了这种规范,实现的原理都是基于两阶段提交。之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。原创 2024-09-25 13:41:14 · 928 阅读 · 0 评论 -
分布式事务(1)
首先我们看看项目中的下单业务整体流程:由于订单、购物车、商品分别在三个不同的微服务,而每个微服务都有自己独立的数据库,因此下单过程中就会跨多个数据库完成业务。而每个微服务都会执行自己的本地事务:交易服务:下单事务购物车服务:清理购物车事务库存服务:扣减库存事务整个业务中,各个本地事务是有关联的。因此每个微服务的本地事务,也可以称为。多个有关联的分支事务一起就组成了。我们必须保证整个全局事务同时成功或失败。我们知道每一个分支事务就是传统的。原创 2024-09-25 13:33:43 · 262 阅读 · 0 评论 -
微服务保护
保证服务运行的健壮性,避免级联失败导致的雪崩问题,就属于微服务保护。这章我们就一起来学习一下微服务保护的常见方案以及对应的技术。原创 2024-09-22 19:54:26 · 1051 阅读 · 0 评论 -
@PostConstruct
是 Java EE 中的一个注解,用于标记一个非私有的 void 方法,该方法将在依赖注入完成后由容器调用。这个注解通常用于执行一些初始化工作,例如设置对象的状态或执行一些必要的计算。注解属于 Java 的生命周期回调机制的一部分。原创 2024-09-21 21:10:18 · 148 阅读 · 0 评论 -
Nacos配置管理(2)-----配置热更新
有很多的业务相关参数,将来可能会根据实际情况临时调整。例如购物车业务,购物车数量有一个上限,默认是10,对应代码如下:现在这里购物车是写死的固定值,我们应该将其配置在配置文件中,方便后期修改。但现在的问题是,即便写在配置文件中,修改了配置还是需要重新打包、重启服务才能生效。能不能不用重启,直接生效呢?这就要用到Nacos的配置热更新能力了,分为两步:在Nacos中添加配置在微服务读取配置。原创 2024-09-21 15:36:57 · 290 阅读 · 0 评论 -
Nacos配置管理(1)----配置共享
微服务共享的配置可以统一交给Nacos保存和管理,在Nacos控制台修改配置后,Nacos会将配置变更推送给相关的微服务,并且无需重启即可生效,实现配置热更新。我们可以把微服务共享的配置抽取到Nacos中统一管理,这样就不需要每个微服务都重复配置了。网关的路由同样是配置,因此同样可以基于这个功能实现动态路由功能,无需重启网关即可修改路由配置。)初始化时处理的,发生在项目的引导阶段。不过,需要注意的是,读取Nacos配置是SpringCloud上下文(中,那么在项目引导阶段就可以读取nacos中的配置了。原创 2024-09-21 15:32:24 · 1418 阅读 · 0 评论 -
网关登录校验(3)-----如何在微服务之间传递用户信息
微服务之间调用是基于OpenFeign来实现的,并不是我们自己发送的请求。下单的过程中,需要调用商品服务扣减库存,调用购物车服务清理用户购物车。这样以来,每次OpenFeign发起请求的时候都会调用该方法,传递用户信息。前端发起的请求都会经过网关再到微服务,由于我们之前编写的过滤器和拦截器功能,微服务可以轻松获取登录用户信息。但有些业务是比较复杂的,请求到达微服务后还需要调用其它多个微服务。由于微服务获取用户信息是通过拦截器在请求头中读取,因此要想实现微服务之间的用户信息传递,就。原创 2024-09-20 22:40:20 · 143 阅读 · 0 评论 -
网关登录校验(2)----网关如何将用户信息传递给微服务
考虑到微服务内部可能很多地方都需要用到登录用户信息,因此我们可以利用SpringMVC的拦截器来实现登录用户信息获取,并存入ThreadLocal,方便后续使用。之前我们无法获取登录用户,所以把购物车服务的登录用户写死了,现在需要恢复到原来的样子。不过,需要注意的是,这个配置类默认是不会生效的,因为它所在的包是。改造网关过滤器,在获取用户信息后保存到请求头,转发到下游微服务。,与其它微服务的扫描包不一致,无法被扫描到,因此无法生效。接下来,我们只需要编写拦截器,获取用户信息并保存到。中,并写好自动装配。原创 2024-09-20 22:36:40 · 823 阅读 · 0 评论 -
网关登录校验(1)
单体架构时我们只需要完成一次用户登录、身份校验,就可以在所有业务中获取到用户信息。而微服务拆分后,每个微服务都独立部署,不再共享数据。也就意味着每个微服务都需要做登录校验,这显然不可取。原创 2024-09-19 22:28:17 · 713 阅读 · 0 评论 -
网关路由
由于网关本身也是一个独立的微服务,因此也需要创建一个模块开发功能。SpringCloudGateway:基于Spring的WebFlux技术,完全支持响应式编程,吞吐能力更强。外面的人要想进入园区,必须经过大爷的认可,如果你是不怀好意的人,肯定被直接拦截。数据在网络间传输,从一个网络传输到另一网络时就需要经过网关来做数据的。通过认证后,网关再根据请求判断应该访问哪个微服务,将请求转发过去。网关可以做安全控制,也就是登录身份校验,校验通过才放行。更通俗的来讲,网关就像是以前园区传达室的大爷。原创 2024-09-18 22:58:11 · 477 阅读 · 0 评论 -
微服务拆分原则
为了达成这一目的,该阶段项目架构往往会比较简单,很多情况下会直接采用单体架构,这样开发成本比较低,可以快速产出结果,一旦发现项目不符合市场,损失较小。虽然出现了服务间调用,但此时无论你如何在商品服务做内部修改,都不会影响到订单微服务,服务间的耦合度就降低了。但是,这么做的问题就在于后期做服务拆分时,可能会遇到很多代码耦合带来的问题,拆分比较困难(如果这一阶段采用复杂的微服务架构,投入大量的人力和时间成本用于架构设计,最终发现产品不符合市场需求,等于全部做了无用功。,这其实是拆分的目标。原创 2024-09-09 20:58:16 · 438 阅读 · 0 评论 -
Nacos服务注册
【代码】Nacos服务注册。原创 2024-09-09 10:58:48 · 159 阅读 · 0 评论 -
部署黑马商城至云服务器
想要将项目部署到云服务器,首先我们需要有一个云服务器,本次我们用的是阿里云ECS云服务器我们登录进入主页,点击左上角的产品依次按照上图点击,我们可以利用学生认证,然后领取免费的服务器时长拥有了服务器后,我们点击管理控制台我们创建一个实例服务器,依次填写好相关信息,然后我们会获取到一个公网ip,这个公网ip就是以后别人访问的主机ip服务器,我们可以保存起来.原创 2024-09-07 13:46:04 · 733 阅读 · 0 评论 -
MybatisPlus
在刚刚的入门案例中,我们仅仅引入了依赖,继承了BaseMapper就能使用MybatisPlus,非常简单。当然,MybatisPlus不仅仅可以简化单表操作,而且还对Mybatis的功能有很多的增强。MybatisPlus会把PO实体的所有变量名驼峰转下划线作为表的字段名,并根据变量类型推断字段类型。但很多情况下,默认的实现与实际场景不符,因此MybatisPlus提供了一些注解便于我们声明表信息。MybatisPlus就是根据PO实体的信息来推断出表的信息,从而生成SQL的。修改mp-demo中的。原创 2024-08-26 20:41:37 · 1165 阅读 · 0 评论