随笔分类 - spring全家桶
摘要:一、系统可用性常见策略及实现 (一)服务不可用问题和基本对策 服务访问失败原因有很多,例如分布式环境的固有原因、服务自身失败、服务依赖失败等。 其中分布式环境的固有原因是指在分布式环境中存在的的网络连接等问题,服务自身失败是自己代码编写的问题,这里着重解决服务依赖失败的问题。 如下图所示
阅读全文
摘要:## 一、分布式事务的实现策略和模式 ### (一)分布式事务理论模型 1、分布式事务理论模型 (1)强XA和弱XA 强XA就是要求任何一次读都能读到某个数据的最近一次写的数据。系统中的所有进程,看到的操作顺序,都和全局时钟下的顺序一致。简言之,在任意时刻,所有节点中的数据是一样的。
阅读全文
摘要:## 一、Spring Security认证和授权 ### (一)安全性和Spring Security框架 1、从一个安全性应用场景说起 如下图所示,工单的生成需要使用用户的订单记录等数据,而这些数据保存在外部平台中;那么就需要用户将自己在订单管理平台上用户名和密码告诉工单系统,工单系统登
阅读全文
摘要:## 一、使用Nacos实现集中式配置管理 ### (一)配置中心模型 在微服务架构中,存在着多环境、多服务、多实例(集群化)的情况,那么就需要将一些配置信息集中的放在一个地方做统一管理,这就是配置中心的原型。 对于配置中心来说,要保证其隔离性、一致性、安全性和易管理性,隔离性是指如果有多个
阅读全文
摘要:## 一、微服务架构体系 ### (一)微服务架构基本概念 1、微服务三大要素 微服务不是一个纯技术概念,微服务架构三大要素:业务建模、技术体系、研发过程 (1)业务建模:业务架构 + 功能边界 对于一个复杂的业务而言,要想把它构建成微服务系统,就需要将系统进行拆分,拆分的前提就是要
阅读全文
摘要:一、使用Mybatis-Plus对数据访问进行扩展 1、MyBatis-Plus开发模式 (1)为什么用Mybatis-Plus Mybatis的问题: 通过原生SQL语句操作业务数据,自动化程度不高;通过繁杂的XML配置来映射字段和属性,影响开发效率;对字段名称的识别和校验不友好,易出错且
阅读全文
摘要:一、使用Springboot开发 WebAPI 1、Maven使用 (1)packaging的使用 通常的做法是先指定一个pom文件,做一个整体的框架,然后在pom中添加不同的子项目。 那么在父工程的pom文件中就需要指定packaging为pom <groupId>com.lcl.gala
阅读全文
摘要:一、多套数据源 1、独立数据库连接信息 Spring Boot 的默认配置文件是 application.properties ,由于有两个数据库配置,独立配置数据库是好的实践,因此添加配置文件 jbdc.properties ,添加以下自定义的主从数据库配置: # db01 spring.data
阅读全文
摘要:一、Spring模块划分 Spring六大模块:Core、Testing、DataAccess、web、Integration、Languages。 Core:最核心的模块,包含Bean、Context、AOP,Bean是SpringBean,为了管理Bean又引入了Context和AOP Test
阅读全文
摘要:一、Sentinel Dashboard 安装运行 1、下载地址:https://github.com/alibaba/Sentinel/releases/download/1.8.2/sentinel-dashboard-1.8.2.jar 启动 java -Dserver.port=8888 -
阅读全文
摘要:一、网关简介 提到网关就不得不提Zuul,其实Spring Cloud Gateway 是 Zuul 网关的替代者。只所以弃用 Zuul 并不是因为 Zuul 在功能有什么大的问题。而是因为最开始的 Zuul 是开源的,所以 Spring Cloud 就集成了 Zuul 做网关。但后来 Zuul 又
阅读全文
摘要:一、Ribbon与OpenFeign关系 说到 OpenFeign就不得不提 Ribbon,OpenFeign默认将Ribbon作为负载均衡器,直接内置了 Ribbon。在导入OpenFeign 依赖后无需专门导入Ribbon 依赖。 Ribbon 是 Netflix 公司的一个开源的负载均衡项目,
阅读全文
摘要:一、Nacos Config与Spring Cloud Config原理对比 说到Nacos Config配置中心的原理,就不得不提一下Spring Cloud Config配置中心的原理,二者是如此的相似,但却也有着很多不同的特点。 1、Spring Cloud Config原理 (1)提交配置触
阅读全文
摘要:一、创建原始直连项目 这个没什么可说的,直接创建两个项目(服务提供者和服务消费者),用来模拟原始的使用http的调用。 对于项目内部的实现不再赘述,都是简单的增删改查,这里主要演示一下服务提供者提供的服务以及服务消费者对服务的调用。 1、服务提供者提供的服务 @RequestMapping("/pr
阅读全文
摘要:一、准备阶段 先搭建两个项目,provider-01-8081和consumer-01-8080,其中provider-01-8081用于提供服务,并操作数据库,consumer-01-8080用于消费服务,使用 http + ip + 端口的方式进行调用,代码比较简单,并且和Spring Clou
阅读全文
摘要:出现的问题 在模拟Hystrix仪表盘时,仪表盘一直处于loading状态,没有监控数据 探明原因及解决步骤 我的SpringCloud版本是Hoxton.SR6 1、确保hystrix.stream可以正常访问 首先判断是否可以正常访问http://localhost:9000/actuator/
阅读全文
摘要:一、传统Servlet请求 Java之间的网络通信是使用的Socket,而B/S结构的项目,是浏览器和服务器之间交互的项目,由于浏览器不是我们写的,且浏览器只发送http请求,因此才会有了web容器(Tomcat、Weblogic等)帮我接收http请求,然后再将请求交给Servlet处理。 关于S
阅读全文