- 博客(26)
- 收藏
- 关注
原创 05-认证中心
需要注意的是,虽然 JWT 可以存储一些敏感信息,但不推荐在 JWT 中包含敏感数据,因为 JWT 的载荷是可以进行 Base64 解码的。JWT 标准定义了一些常用的字段,如 iss(签发者)、sub(主题)、exp(过期时间)、nbf(生效时间)、iat(签发时间)等。签名(Signature):签名是用于验证 JWT 的完整性和真实性。JWT(JSON Web Token)是一种标准的身份认证和授权令牌,由头部(Header)、载荷(Payload)和签名(Signature)三部分组成。
2023-12-19 17:52:13 365
原创 04-服务网关
实现org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler,重写handle方法。实现springfox.documentation.swagger.web.SwaggerResourcesProvider,重写get方法聚合其他服务接口。实现org.springframework.cloud.gateway.filter.GlobalFilter接口,重写filter方法。
2023-12-19 17:51:30 833
原创 SpringCloudAlibaba组件版本关系
2.0.4.RELEASE(停止维护,建议升级)1.5.1.RELEASE(停止维护,建议升级)
2023-12-19 11:21:00 1289
原创 07-SkyWalking
SkyWalking 文档中文版(社区提供)SkyWalking是一个开源的分布式系统跟踪解决方案。它起源于Apache软件基金会的一个项目,旨在提供对分布式系统的全面可观测性和性能调优支持。通过SkyWalking,您可以了解到分布式系统中各个组件的运行情况,包括调用链追踪、性能指标监控、灵活的报警和告警功能等。SkyWalking的设计理念是开放、可扩展和易使用。它支持多种主流的后端技术栈,包括Java、.NET、PHP、Node.js等。
2023-12-19 11:20:01 354
原创 06-gateway
Gateway是一种常见的网络架构模式,它充当了传递请求和响应的中间层,位于客户端和服务器之间。Gateway的主要作用是提供高性能、低延迟的请求转发和路由功能,并提供一些额外的功能,如安全性、负载均衡、缓存、限流等。具体来说,Gateway的功能包括:请求转发和路由:Gateway接收来自客户端的请求,并将其转发到后端的多个服务实例中。可以根据不同的URL、端口、路径等条件进行路由选择,从而实现请求的分发和负载均衡。
2023-12-19 11:19:28 907
原创 05-Seata
快速启动 | SeataSeata(Simple Extensible Autonomous Transaction Architecture)是一个开源的分布式事务解决方案,旨在解决分布式系统中的数据一致性问题。它提供了一种高效、简单和可靠的方式来管理和协调分布式事务。Seata的设计目标是为分布式系统中的事务管理提供全面的解决方案。它提供了分布式事务的核心功能,包括全局事务管理、分支事务管理和一致性协调,在分布式环境下实现了多个资源的原子性操作。
2023-12-19 11:18:54 836
原创 04-Sentinel
Sentinel 是阿里巴巴开源的一款轻量级的流量控制和熔断降级框架。它主要用于保护分布式系统中的微服务、API 网关等,以保证系统的稳定性和可靠性。Sentinel 提供以下核心功能:流量控制:可以通过配置规则对进入系统的流量进行实时监控和控制。可以根据不同的流量指标(如 QPS、线程数等)进行限流。当流量超出设定的阈值时,可以执行流量控制策略,如拒绝请求、排队等。熔断降级:当某个微服务出现异常或响应时间过长时,可以通过配置熔断规则来快速进行降级,减少请求对下游服务的影响。
2023-12-19 11:17:42 773
原创 03-OpenFeign
OpenFeign 是一个声明式的、基于接口的 HTTP 客户端,它是 Spring Cloud 中的一个组件,用于简化服务间的 HTTP 调用。通过使用 OpenFeign,开发者可以使用注解方式定义接口,而不需要编写具体的 HTTP 请求代码,OpenFeign 会自动完成请求的封装和调用。OpenFeign 主要具有以下特点和功能:声明式接口:使用 OpenFeign,开发者只需要定义一个接口,然后通过注解来描述接口的 HTTP 请求方法、URL、参数等信息。
2023-12-19 11:13:13 847
原创 02-Ribbon
Ribbon 是 Netflix 开源的一个基于 HTTP 和 TCP 的客户端负载均衡器,被广泛用于微服务架构中的服务调用。它通过在客户端内部实现负载均衡算法,将请求按照一定的策略分发给多个服务提供者,以实现请求的高可用和均衡分配。Ribbon 的主要特点和功能包括:负载均衡:Ribbon 可以根据一定的负载均衡策略,将请求分发给多个服务提供者。它支持的负载均衡算法包括随机、轮询、权重等,可以根据应用场景和需求进行配置。
2023-12-19 11:12:32 976
原创 01-nacos部署&搭建&使用
Nacos(中文名为"注册中心和配置中心")是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。它提供了服务注册与发现、配置管理和服务管理等核心功能,是构建和管理微服务架构的基础设施之一。Nacos 主要提供以下功能:服务注册与发现:微服务架构中,各个服务实例需要注册到注册中心,并通过注册中心获取其他服务实例的地址信息,实现服务之间的发现和调用。配置管理:Nacos 可以作为统一的配置中心,管理应用程序的配置信息。
2023-12-19 11:11:55 1874
原创 02-点餐SaaS架构方案
近年来,随着科技的迅速发展和互联网的普及,线上点餐成为了一个蓬勃发展的行业。然而,在目前的美国市场上,线上点餐业务相对较少。为了在这个市场上打开局面,我们决定推出一款全新的点餐软件—diancan。Java语言是一种广泛使用的编程语言,以其跨平台性、安全性和稳定性而闻名。通过使用Java语言,我们将能够更好地处理用户的请求、提升系统的并发访问能力,并且能够更方便地与其他系统对接。不仅如此,Java语言还拥有丰富的开发工具和强大的社区支持,可以为我们带来更多的开发便利和技术支持。
2023-11-22 16:21:55 1211
原创 2.如何解决原子性问题
假设有两个线程分别是线程A和线程B,线程A执行在CPU-01上,线程B执行在CPU-02上,此时,禁用CPU中断,只能保证在每个CPU上执行的线程是连续的,并不能保证同一时刻只有一个线程执行,如果线程A和线程B同时写long型变量的高32位的话,那么,就有可能出现诡异的Bug问题,也就是说,明明已经将变量成功写入内存了,但是重新读取出来的数据却不是自己写入的!在这个线程中,对于long型变量的两次写操作,要么都被执行,要么都没有被执行,两次写操作具有原子性,不会出现写入的数据和读取的数据不一致的情况。
2023-10-10 16:31:34 91 1
原创 1.Java内存模型如何解决可见性和有序性问题
已经知道,导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性、有序性最直接的办法就是禁用缓存和编译优化,但是这么做程序对的性能就会受到很大的影响。Java内存模型规范了JVM如何提供按需禁用缓存和编译优化的方法,程序员可以通过volatile、synchronized和final关键字,以及六项Happens-Before规则来解决可见性和有序性问题。
2023-10-10 16:30:52 56 1
原创 JAVA并发编程
近些年,我们的CPU、内存、I/O设备都在不断迭代,计算机技术进步迅速,但是由于CPU的发展速度远快于内存和I/O设备,导致了CPU常常处于等待状态,不能充分利用计算机的性能。而并发编程正是一种解决这个问题的方法,它能够让计算机多个任务同时执行,充分利用CPU的计算资源,提高程序的执行效率和响应速度。并且在处理大量并发请求的业务方面也具有重要的作用,能够提高系统的吞吐量和性能。学习并发编程还可以帮助我们更好地理解多线程编程的本质和原理,提高我们的编程技能和代码质量。
2023-10-10 16:29:53 51 1
原创 JAVA虚拟机(JVM)
JVM是Java Virtual Machine的缩写,即Java虚拟机。Java虚拟机只要有两方面作用:1.Java语言是平台无关的语言,即一次编译就可以在不同的平台上运行。这主要是靠Java虚拟机的配合。在不同系统中需要安装对应系统的Java虚拟机,而编译后的Java代码是运行在Java虚拟机上的。所以,Java虚拟机帮助Java程序隔离了系统的差异。
2023-10-10 16:26:54 266 1
原创 Spring AOP
AOP是 Aspect Oriented Programming(面向切面编程) 的简称,和OOP(面向对象编程)一样是一种编程思想,是对OOP的一种补充。AOP旨在将横切关注点(crosscutting concern)从业务主体逻辑中进行剥离,实现关注点分离,以提高程序的模块化程度(及业务模块只需关注业务逻辑,无需关注日志、安全、事务等通用逻辑)
2023-08-17 20:38:03 50 1
原创 Spring
组件化开发:Spring鼓励使用组件化开发的方式,通过将应用程序划分为多个独立的模块(组件),来提高代码的可重用性和可维护性。BeanPostProcessor 后置处理阶段:在 Bean 的初始化之后,容器会再次查找所有实现了 BeanPostProcessor 接口的 Bean,并对当前 Bean 进行后置处理。BeanPostProcessor 前置处理阶段:在 Bean 的初始化前,容器会查找所有实现了 BeanPostProcessor 接口的 Bean,并对当前 Bean 进行前置处理。
2023-08-17 20:37:15 48 1
原创 java反射
Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取t对象的各种信息。
2023-08-17 20:32:29 57 1
原创 多线程&JAVA多线程
线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。
2023-08-17 20:30:29 55 1
原创 Java动态代理
动态代理就是在程序运行期间,创建目标对象的代理对象,在代理对象中生成目标对接方法的增强方法,在运行期间,对目标对象中的方法动态拦截去执行代理对象中的增强方法。
2023-08-17 20:09:04 138 1
原创 JAVA注解
注解是JDK5.0引入的一种注释机制,用于为 Java 代码提供元数据,同 classs 和 interface 一样,注解也属于一种类型注解通过 @interface 关键字进行定义,由元注解和成员变量构成例:生成使用了@Generated注解的类,生成GeneratedClass文件,打个招呼Hello!声明自定义注解实现Processor接口处理注解注册注解处理器方式一:resources方式二:auto-service(原理还是编译时注解,自动生成方式一的文件)添加依赖添加注解。
2023-08-17 19:55:18 55 1
原创 JAVA异常
Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。
2023-08-17 19:47:35 45
原创 JAVA_IO流
Input/Output即输入&输出,指数据从一个地方传输另一个地方的过程,对于计算机来讲文件的拷贝、编写、保存都是IO的过程Java针对IO操作提供了相应的API,Java中几乎所有的IO操作都需要使用java.io包。
2023-08-17 19:44:27 43 1
原创 JAVA集合
集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。
2023-08-17 18:07:03 55 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人