- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 Spring Cloud GateWay(4.1.4)
该项目提供了一个建立在 Spring 生态系统之上的 API 网关,包括:Spring 6、Spring Boot 3 和 Project Reactor。Spring Cloud Gateway 旨在提供一种简单而有效的方法来路由到 API,并为其提供跨领域关注点,例如:安全性、监控/指标和弹性。Spring Cloud Gateway 有两种不同的版本:服务器和代理交换。每种风格都提供 WebFlux 和 MVC 兼容性。引入 Spring Cloud Gateway。
2024-07-22 17:26:43
955
原创 微服务模块通信方式
异步消息通信模式下,各子系统之间无需强耦合直接连接,调用方只需要将请求转化成异步事件(消息)发送给中间代理,发送成功即可认为该异步链路调用完成,剩下的工作中间代理会负责将事件可靠通知到下游的调用系统,确保任务执行完成。此处的同步并不代表RPC的编程接口方式,RPC也可以有异步非阻塞调用的编程方式,但本质上仍然是需要在指定时间内得到目标端的直接响应。同步RPC调用模型下,不同系统之间直接进行调用通信,每个请求直接从调用方发送到被调用方,然后要求被调用方立即返回响应结果给调用方,以确定本次调用结果是否成功。
2024-07-10 14:18:32
187
原创 @WebService & @WebMethod
WebService 是 Java API for XML Web Services(JAX-WS)中的注解,用于标识一个类或接口作为一个可通过网络访问的 Web 服务。用途:标记一个方法作为 Web 服务的一部分。只有被 @WebMethod 标记的方法才会被暴露为 Web 服务的操作。operationName:可以指定暴露给 Web 服务消费者的操作名。如果不指定,默认使用 Java 方法的名称。@WebMethod 注解用于方法级别,用于将一个方法标识为 Web 服务的一个操作。
2024-07-08 09:56:59
168
原创 Linux相关
Linux ⽹络协议栈是根据 TCP/IP 模型来实现的, TCP/IP 模型由应⽤层、传输层、⽹络层和⽹络接⼝层,共四层组成,每⼀层都有各⾃的职责。基本指标:带宽延时吞吐率PPS。
2024-06-19 09:33:32
542
原创 调度算法-内存页面置换算法
缺⻚异常(缺⻚中断)与⼀般中断的主要区别在于:页面中断流程:⻚表项通常有如下图的字段:常⻅的⻚⾯置换算法有如下⼏种:最佳⻚⾯置换算法基本思路是, 置换在「未来」最⻓时间不访问的⻚⾯。 可以选择在内存驻留时间很⻓的⻚⾯进⾏中置换,这个就是「先进先出置换」算法的思想。 最近最久未使⽤(LRU)的置换算法的基本思路是,发⽣缺⻚时, 选择最⻓时间没有被访问的⻚⾯进⾏置换,也就是说,该算法假设已经很久没有使⽤的⻚⾯很有可能在未来较⻓的⼀段时间内仍然不会被使⽤。 在每次访问内存时都必须要更新「整个链表」。在链表
2024-06-18 11:32:30
502
原创 调度算法-进程调度算法
希望调度程序能从就绪队列中选择最⾼优先级的进程进⾏运⾏,这称为最⾼优先级(Highest Priority First, HPF)调度算法。最短作业优先(Shortest Job First, SJF)调度算法它会优先选择运⾏时间最短的进程来运⾏,这有助于提⾼系统的吞吐量。多级反馈队列(Multilevel Feedback Queue)调度算法是「时间⽚轮转算法」和「最⾼优先级算法」的综合和发展。每次从就绪队列选择最先进⼊队列的进程,然后⼀直运⾏,直到进程退出或被阻。缺点:不利于长作业的执行。
2024-06-18 10:51:57
756
原创 进程间的通信
匿名管道的⽣命周期,是随进程的创建⽽建⽴,随进程的结束⽽销毁匿名管道的创建,需要通过下⾯这个系统调⽤:这⾥表示创建⼀个匿名管道,并返回了两个描述符,⼀个是管道的读取端描述符 fd[0] ,另⼀个是管道的写⼊端描述符 fd[1]。注意,这个匿名管道是特殊的⽂件,只存在于内存,不存于⽂件系统中。所谓的管道,就是内核⾥⾯的⼀串缓存。从管道的⼀段写⼊的数据,实际上是缓存在内核中的,另⼀端读取,也就是从内核中读取这段数据。另外,管道传输的数据是⽆格式的流且⼤⼩受限。
2024-06-17 11:22:34
751
原创 Sleuth(Micrometer)+ZipKin分布式链路追踪(下)
一个Micrometer模块,用于与分布式跟踪工具 Brave 集成,以收集应用程序的分布式跟踪数据。Brave是一个开源的分布式跟踪工具,它可以帮助用户在分布式系统中跟踪请求的流转,它使用一种称为"跟踪上下文"的机制,将请求的跟踪信息存储在请求的头部,然后将请求传递给下一个服务。在整个请求链中,Brave会将每个服务处理请求的时间和其他信息存储到跟踪数据中,以便用户可以了解整个请求的路径和性能。一个Feign HTTP客户端的Micrometer模块,用于收集客户端请求的度量数据。
2024-06-04 08:00:00
291
原创 Sleuth(Micrometer)+ZipKin分布式链路追踪(上)
问题:在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。在分布式与微服务场景下,我们需要解决如下问题:在大规模分布式与微服务集群下,如何实时观测系统的整体调用链路情况。在大规模分布式与微服务集群下,如何快速发现并定位到问题。在大规模分布式与微服务集群下,如何尽可能精确的判断故障对系统的影响范围与影响程度。
2024-06-03 14:50:44
1116
原创 Spring-Cloud-CircuitBreaker-Resilience4j (3.1.1)
断路器通过有限状态机实现,该状态机具有三种正常状态:CLOSED、OPEN 和 HALF_OPEN 以及两种特殊状态 DISABLED 和 FORCED_OPEN。CircuitBreaker 使用滑动窗口来存储和聚合调用结果。您可以在基于计数的滑动窗口和基于时间的滑动窗口之间进行选择。基于计数的滑动窗口聚合了最后 N 次调用的结果。基于时间的滑动窗口聚合了最后 N 秒的调用结果。a使用信号量a使用有界队列和固定线程池。它应该在各种线程和 I/O 模型中都能很好地工作。
2024-05-31 10:02:56
906
原创 Spring Cloud Alibaba Nacos Discovery
Nacos 是一个简单易用的动态服务发现、配置和服务管理平台,用于构建云原生应用。通过Spring Cloud Alibaba Nacos Discovery,您可以基于Spring Cloud的编程模型快速访问Nacos服务注册功能。服务注册/发现服务发现是微服务架构中的关键组件之一。在这样的体系结构中,手动为每个客户端配置服务列表可能是一项艰巨的任务,并且使动态扩展变得极其困难。
2024-05-30 08:00:00
853
原创 Nacos 下载及启动
在2.2.0.1和2.2.1版本时,必须执行此变更,否则无法启动;其他版本为建议设置。如果您是从代码开始构建并运行Nacos,还需要为此配置。注:Nacos的运行建议至少在2C4G 60G的机器配置下运行。可以通过源码和发行包两种方式来获取 Nacos。为公开默认值,可用于临时测试,实际使用时请。更换为自定义的其他有效值。注意,文档中的默认值。
2024-05-29 10:01:12
282
原创 Spring Cloud OpenFeign 4.1.1
Feign 请求/响应压缩声明式 REST 客户端:FeignFeign 是一个声明式 Web 服务客户端。它使编写 Web 服务客户端变得更加容易。要使用 Feign 创建一个接口并对其进行注释。它具有可插入的注释支持,包括 Feign 注释和 JAX-RS 注释。Feign 还支持可插入的编码器和解码器。Spring Cloud 添加了对 Spring MVC 注释以及使用 Spring Web 中默认使用的相同的支持。
2024-05-17 10:41:03
938
原创 Spring Cloud LoadBalancer 4.1.2
LoadBalancer位于Spring Cloud Commons 模块Spring Cloud 提供了自己的客户端负载均衡器抽象和实现。对于负载均衡机制,添加了接口,并为其提供了基于Round-Robin和Random的实现。为了让实例从反应式中进行选择,使用了。目前,我们支持基于服务发现的实现,它使用类路径中提供的发现客户端从服务发现中检索可用实例。可以通过将的值设置为false来禁用 Spring Cloud LoadBalancer。
2024-05-10 14:59:02
932
原创 Spring Cloud Consul 4.1.1
该项目通过自动配置和绑定到 Spring 环境和其他 Spring 编程模型习惯用法,为 Spring Boot 应用程序提供 Consul 集成。通过一些简单的注释,您可以快速启用和配置应用程序内的常见模式,并使用基于 Consul 的组件构建大型分布式系统。提供的模式包括服务发现、控制总线和配置。智能路由和客户端负载均衡、断路器是通过与其他 Spring Cloud 项目集成来提供的。快速开始本快速入门逐步介绍如何使用 Spring Cloud Consul 进行服务发现和分布式配置。
2024-05-09 16:46:51
630
原创 面试:CopyOnWriteArrayList
问题:ArrayList 是线程不安全的,同一时间写和读会造成线程不安全,怎么解决呢?答:可以使用CopyOnWriteList。
2024-05-08 20:26:33
534
原创 SpringCloud 集成consul,消费者报I/O error on GET request for...
框架时,自动整合了SpringCloud中的Ribbon框架中的负载均衡,因为微服务提供者有两个,在消费者发送请求给生产者的两个微服务的过程中,服务器并不知道到底给哪一个生产者去处理,所以报这个异常。只需要在消费者config中的RestTemplate上添加一个@LoadBalanced注解,让服务器知道采用轮询的负载均衡方式进行请求即可。因为在使用SpringCloudAlibaba中的。
2024-05-05 15:30:00
612
1
原创 规范化编程:统一返回值
通用的返回标准格式:code状态值:由后端统一定义各种返回结果的状态码message描述:本次接口调用的结果描述data数据:本次返回的数据timestamp:接口调用时间。
2024-05-05 09:00:00
189
原创 Elasticsearch 自动缩放
Elasticsearch 将监控和预测热层中的可用磁盘空间,如果预测集群很快将因磁盘空间而无法分配现有和未来的分片副本,则自动缩放 API 将报告集群需要由于磁盘空间而缩放。自动缩放功能使操作员能够配置节点层,这些节点可以自我监控是否需要根据操作员定义的策略进行缩放。Autoscaling还支持基于存储的数据节点的扩展。可用于管理冻结数据节点的策略。根据部分安装的分片数量估计所需的内存容量。可用于管理冻结数据节点的策略。根据当前热节点的摄取来估计所需的存储容量。可用于管理数据节点的策略。
2024-05-02 09:30:00
47
原创 【翻译】REST API -常用选项
如果一个数量很大,我们输出它,类似 10m 代表 10,000,000,7k 代表 7,000。默认情况下,当请求返回错误时 Elasticsearch 不会包含错误的堆栈跟踪。REST 参数(当使用 HTTP,映射到 HTTP URL 参数)遵循下划线大小写的约定。当需要指定数据字符大小时,例如当设置一个缓存大小参数,值必须指定单位,如。参数,如果没有指定,默认单位为米。当统计结果被监控工具使用,而不是供人使用时,这是有意义的。代表 10 千字节。,这可以导致结果以(有时)更可读的 yaml 格式返回。
2024-05-02 08:30:00
1715
原创 【翻译】REST API
人类的眼睛,尤其是在看终端时,需要紧凑和对齐的文本。响应包含特定于决策者的信息,你可以使用这些信息诊断自动缩放如何以及为什么确定需要某个容量。默认情况下,这些类型是人工格式化的,例如,(对象)包含受策略控制的节点的当前容量,即 Elasticsearch 计算所基于的节点。人的价值观是不可数字排序的,所以为了在顺序重要的地方对这些价值观进行操作,你可以更改它。是否与操作员对集群的了解相匹配,以避免根据陈旧或不完整的信息做出自动伸缩决策。假设您要查找集群中最大的索引(所有分片使用的存储,而不是文档数量)。
2024-05-01 11:17:49
847
1
原创 Elasticsearch之元数据(meta-fields)介绍
ttl:对于一些会话数据或者验证码失效时间,一般来说是有生命周期的,在es中可以很方便的通过这个ttl来设置存活时间,比如1小时,或者10分钟,在超时过后,这个doc会被自动删除,这种方式并不适合按周或按天删除历史数据,如果是这种需求,可考虑使用索引级别的管理方式。_source : 一个doc的原生的json数据,不会被索引,用于获取提取字段值 ,启动此字段,索引体积会变大,如果既想使用此字段又想兼顾索引体积,可以开启索引压缩。身份元数据、索引元数据、文档元数据、路由元数据以及其他类型。
2024-05-01 08:30:00
225
原创 【翻译】Elasticsearch-索引模块
索引块限制对指定的索引的可用的操作类型(就是指对该索引能进行什么操作)。这些块有不同的风格,可以阻止写、读或元数据操作。块可以通过动态索引设置来设置/移除,也可以通过专用API添加,这也可以确保写入块一旦成功返回用户,所有索引分片都能正确地计算该块,例如,在添加写块后,所有对索引进行中的写入会完成。
2024-04-30 16:20:46
1195
3
原创 Elasticsearch 8.13 的新增功能
这意味着对于每个时间序列,我们都存储相同序数的长时间连续运行。通过这一更改,我们引入了一种编码,可以检测并有效存储相同值的运行(例如。在我们的测试中,我们发现存储大小减少了约 13%。这种编码的有效性取决于使用了多少非度量字段,例如维度。虽然多个文档中使用的术语(例如主机名)在术语字典中仅存储一次,但对存储在。我们添加了对通过删除没有值的字段来过滤字段功能 API 输出的支持。中的术语字典的引用存在大量重复(序数词)。为 TSDB 中的非度量字段添加新的。中的标记仅返回索引中包含值的字段。
2024-04-28 09:00:00
380
原创 【翻译】Elasticsearch Java API Client 8.13.2 (第四章-使用 Java API 客户端)
Java API 客户端提供了多种索引数据的方法:您可以提供将自动映射到 JSON 的应用程序对象,也可以提供原始 JSON 数据。在下面的示例中,我们运行一个聚合,为名称与用户提供的文本匹配的产品从产品索引创建价格直方图。要创建此请求,可以方便地为主请求使用构建器对象,并为每个操作使用流畅的 DSL。如果您是 Elasticsearch 的新手,请务必阅读 Elasticsearch 的快速入门,其中提供了很好的介绍。在下面的示例中,我们使用产品的 SKU 作为索引中的文档标识符,在。
2024-04-27 18:15:40
1274
原创 【翻译】Elasticsearch Java API Client 8.13.2 (第三章-API约定)
Java API 客户端使用非常一致的代码结构,使用现代代码模式,使复杂的请求更容易编写,复杂的响应更容易处理。以下部分详细解释了这些内容。包结构和命名空间客户端Elasticsearch API 很大,并且被组织成 功能组,如 Elasticsearch API 文档中所示。Java API 客户端遵循以下结构:功能组称为“命名空间”,每个命名空间位于的子包中。每个命名空间客户端都可以从顶级 Elasticsearch 客户端访问。唯一的例外是“搜索”和“文档”API,它们位于core。
2024-04-27 08:30:00
1194
3
原创 【翻译】Elasticsearch Java API Client 8.13.2 (第二章-设置)
Requirements: 要求:Java 8 或更高版本。一个 JSON 对象映射库,允许您的应用程序类与 Elasticsearch API 无缝集成。Java 客户端支持 Jackson 或 Eclipse Yasson 等 JSON-B 库。版本托管在 Maven Central 上。如果您正在寻找 SNAPSHOT 版本,可以在 https://snapshots.elastic.co/maven/ 上找到 Elastic Maven Snapshot 存储库。
2024-04-26 14:53:13
912
3
原创 【翻译】Elasticsearch Java API Client 8.13.2 (第一章介绍与入门)
这是 Elasticsearch 的官方 Java API 客户端的文档。客户端为所有 Elasticsearch API 提供强类型请求和响应。
2024-04-26 10:42:22
529
4
原创 MySQL Caused by: java.sql.SQLException: Incorrect string value: ‘\xE6\xB5\x8B\xE8\xAF\x95...‘
数据库的表的字符集不正确。
2024-04-15 15:13:55
147
1
原创 MySQL索引:一条SQL走了索引,但还是很慢
现象:执行SQL:结果:虽然走了索引,但还是进行了全表扫描1.与B+树的结构有关,即叶子节点形成有序链表2.本条SQL是范围查询对于范围查询,会从索引的最左边叶子节点,向右扫描B+树的最后一层叶子节点。
2024-04-12 09:53:59
343
原创 GlobalHandleExceptionResolver: Could not set parameters for mapping
nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping
2024-04-06 11:37:51
217
1
原创 富文本编辑器
下载链接:https://www.yuque.com/tyj_garden/wbrtxl/vto4zdw4ryqlpzkg?singleDoc# 《富文本编辑器》wangEditor的3.1.1版本的js文件。
2024-04-03 11:32:55
92
1
原创 SpringBoot 自定义异常@ContollerAdvice ExceptionHandler不起作用
然后把ExceptionHandle.java单放一个文件夹就Ok,放在Contoller Service等等其他文件夹都可以识别,特点就是原有文件夹已有可以识别的bean。为了统一异常,我们通常定义一个统一管理所有Exception,包括自定义Exception的ExceptionHandle。各种检查发现,这个Controller根本不起作用,发生异常也跳不进来,代码没问题。发现没有Bean成功注入的图标,就是Bean注入失败,原因是。@ControllerAdvice拦截控制器。
2024-04-03 11:19:17
596
1
过程控制课程大作业仿真
2022-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人