- 博客(136)
- 收藏
- 关注
原创 Java 服务限流方案
限流对于一个微服务架构系统来说具有非常重要的意义,否则其中的某个微服务将成为整个系统隐藏的雪崩因素,举例来讲,某个平台有多个微服务应用,但是作为底层的某个或某几个应用来说,将会被所有上层应用频繁调用,业务高峰期时,如果底层应用不做限流处理,该应用必将面临着巨大的压力,尤其是那些个别被高频调用的接口来说,最直接的表现就是导致后续新进来的请求阻塞、排队、响应超时...最后直到该服务所在JVM资源被耗尽。
2024-08-13 11:29:42
636
原创 人际交往沟通秘籍
在聊天中,是否常陷入这样的循环:精心准备的话题库,一到关键时刻却无从施展,随即而来的便是冷场与尴尬,进而或是匆忙准备更多话题,或是无奈放弃,如此往复,形成难以摆脱的“冷场循环”。无论是内向还是外向的人,都可以通过本文提供的方法,在日常生活中和特定社交活动中,逐步建立起与人交谈的自信。通过本文介绍的方法,读者可以逐步培养自己的幽默感,使生活更加丰富多彩,同时在社交中更加自如和受欢迎。无限话题聊天法不仅提供了一种有效的沟通工具,更是一种思维模式的转变,帮助人们在社交场合更加自如地表达自我,享受对话带来的乐趣。
2024-08-12 15:05:10
927
原创 Java SSE:实现服务器推送数据客户端
体验过大语言模型的人(chatgpt,文心一言,通义千问...)都知道,大模型的回答是一边思考一边返回数据的,属于流式响应。要达到这种效果就需要实现前后端的即时通讯。
2024-08-12 11:43:11
867
原创 Jenkins自动化构建运行Springboot项目
通过在Jenkins中创建流水线任务,编写流水线脚本以实现自动化构建和部署SpringBoot项目。
2024-07-31 11:36:32
727
原创 WebSocket解决方案(springboot 基于Redis发布订阅)
因为一般的请求都是HTTP请求(单向通信),HTTP是一个短连接(非持久化),且通信只能由客户端发起,HTTP协议做不到服务器主动向客户端推送消息。WebSocket确能很好的解决这个问题,服务端可以主动向客户端推送消息,客户端也可以主动向服务端发送消息,实现了服务端和客户端真正的平等。3.WebSocket 服务器负责监听客户端的连接请求,一旦有客户端连接,服务器会创建一个 WebSocket 会话(Session)来管理这个连接。socket服务订阅redis的消息,订阅成功后进行推送。
2024-07-02 16:08:30
1165
原创 Elasticsearch之集群化部署
一个集群就是由一个或多个服务器节点组织在一起,共同持有整个的数据,并一起提供索引和搜索功能。一个 Elasticsearch 集群有一个唯一的名字标识,这个名字默认就是”elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群
2024-05-30 17:10:26
1032
原创 Elasticsearch之JavaAPI-索引与文档
1.新建Maven工程。2.pom添加依赖-- elasticsearch 的客户端 -->-- elasticsearch 依赖 2.x 的 log4j -->-- junit 单元测试 -->3.连接Elasticsearch。
2024-05-30 16:10:57
982
原创 Elasticsearch之http-索引与文档
数据格式Elasticsearch是面向文档型数据库,一条数据在这就是一个文档。下图是Elasticsearch和mysql的概念类比:ES 里的 Index 可以看做一个库,而 Types 相当于表, Documents 则相当于表的行。这里 Types 的概念已经被逐渐弱化, Elasticsearch 6.X 中,一个 index 下已经只能包含一个type, Elasticsearch 7.X 中, Type 的概念已经被删除了。
2024-05-28 14:26:43
1138
原创 Elasticsearch之入门与安装
Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单
2024-05-27 15:54:27
1201
原创 MyCat2之分库分表
垂直分表: 将⼀个表按照字段分成多表,每个表存储其中⼀部分字段。垂直分库: 根据表的业务不同,分别存放在不同的库中,这些库分别部署在不同的服务器.水平分库: 把⼀张表的数据按照⼀定规则,分配到不同的数据库,每⼀个库只有这张表的部分数据.水平分表: 把⼀张表的数据按照⼀定规则,分配到同⼀个数据库的多张表中,每个表只有这个表的部分数据。
2024-05-27 10:38:40
972
原创 MyCat2之读写分离
将数据库的查询和其他需要使数据库数据发生变化的操作进行分开的操作。让主数据库处理事务性的插入、修改、删除操作;让从数据库处理查询操作。
2024-05-21 14:48:50
826
原创 MyCat2之安装与配置文件介绍
位置:/mycat/conf/users/{用户名}.user.json,用来配置登录用户,也就是8806连接的用户信息"ip":null,dialect:数据库类型ip:白名单password:密码transactionType:事务隔离级别username:用户名。
2024-05-20 17:18:21
908
原创 Netty教程之NIO基础
NIO 全称java non-blocking IO(非阻塞 I/O),后续提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的。阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候。阻塞(Block):往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。非阻塞(Non-Block):当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果数据已经准备好,也直接返回。
2024-03-27 16:51:16
839
原创 vue教程-介绍与使用
是一套用于构建用户界面的。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。
2024-02-07 11:33:12
384
原创 微习惯:简单到不可能失败的自我管理法则
微习惯就是你强迫自己每天做的微不足道的积极行为。微习惯策略只会帮你培养好习惯,给你的生活增添积极行为,持续丰富你的生活。消除坏习惯和建立好习惯有着共同的目标——用更好的行为方式取代原有的行为方式,按照微习惯策略行动,就是运用少量的意志力强迫自己做一件事情。微习惯体系的基础在于“微步骤”,那些“小得不可思议的一小步”。微习惯体系的威力体现在以下几个方面:应用、思维模式、固有正反馈循环机制、对自我效能感的自然提升。利用微习惯做事,你会收获巨大的惊喜。
2024-02-04 14:58:11
979
原创 人性的弱点:如何交友并影响他人
回首过往的岁月,我们时常为自己在沟通技巧上的欠缺惊讶不已,与人交往或许是你面对的最大难题。在工程界,个人事业的成功约有15%由技术知识决定,而另外85%则由人际交往、个人性格和管理能力决定;
2024-01-17 22:08:46
435
原创 前端学习系列之JQuery
JQuery 是⼀套兼容多浏览器的 JavaScript 脚本库.。核心理念是写得更少,做得更多,使⽤ JQuery 将极⼤的提高编写 JavaScript 代码的效率,帮助开发者节省了⼤量的⼯作,让写出来的代码更加优雅,更加健壮,“如⻁添翼”。
2023-12-12 12:33:02
986
原创 前端学习系列之JavaScript
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为 开发Web页面的脚本语言而出名,但是它也被 用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且 支持面向对象、命令式和声明式(如函数式编 程)风格。
2023-12-11 15:56:54
900
原创 前端学习系列之CSS
CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档的计算机语言,是为了解决内容与表现分离的问题 - 外部样式表可以极大提高工作效率 - 外部样式表通常存储在 CSS 文件中 - 多个样式定义可层叠为一个
2023-12-02 10:46:50
1310
原创 Spring Cloud之API网关(Zuul)
zuul是SpringCloud子项目的核心组件之一,可以作为微服务架构中的API网关使用,支持动态路由和过滤功能;
2023-10-30 16:54:58
174
原创 Spring Cloud之API网关(Gateway)
Spring Cloud 团队基于 Spring 5.0、Spring Boot 2.0 和 Project Reactor 等技术开发的高性能 API 网关组件;旨在提供一种简单而有效的途径来发送 API,并为它们提供横切关注点,例如:安全性,监控/指标和弹性。
2023-10-26 16:41:09
958
原创 Spring Cloud之服务熔断与降级(Hystrix)
服务出现故障时,给故障服务降级到事先准备好的故障处理结果,将此结果返回给服务消费者;如:客户端访问服务1,服务1调用服务2,服务2出现故障,Hystrix服务降级,返回一个可以处理的结果给服务1,服务1再以友好的错误界面返回给客户端// hystrix 熔断器示例 ok//hystrix 熔断器超时案例@Component熔断机制是应对服务雪崩的一种链路保护机制,当服务出现故障时,服务会进行降级,熔断该服务节点,迅速返回错误响应信息。当检测到服务访问正常时,恢复其链路节点。
2023-10-25 17:02:26
824
原创 Spring Cloud之声明式服务调用(Feign)
Feign是一个声明式的web service客户端,它使得编写web service客户端更为容易。创建接口,为接口添加注解,即可使用Feign。Feign可以使用Feign注解或者JAX-RS注解。Spring Cloud为Feign添加了Spring MVC的注解支持,并整合了Ribbon和Eureka来为使用Feign时提供负载均衡。feign让微服务之间的调用变得更简单了。包含4种不同的级别:NONE:不记录任何信息。BASIC:仅记录请求方法、URL 以及响应状态码和执行时间。
2023-10-25 14:43:04
154
原创 Spring Cloud之负载均衡与服务调用(Ribbon)
在任何一个系统中,负载均衡都是一个十分重要且不得不去实施的内容,它是系统处理高并发、缓解网络压力和服务端扩容的重要手段之一。负载均衡,简单点说就是将用户的请求平摊分配到多个服务器上运行,以达到扩展服务器带宽、增强数据处理能力、增加吞吐量、提高网络的可用性和灵活性的目的。
2023-10-25 09:34:50
786
原创 Spring Cloud之服务注册与发现(Eureka)
Eureka是spring cloud中的一个负责服务注册与发现的组件,本身是基于REST的服务,同时还提供了负载均衡、故障转移等能力。
2023-10-24 15:05:53
639
原创 Spring Cloud之微服务
微服务架构在解决应用程序扩展、维护和升级等方面具有明显的优势。但微服务架构同时也带来了部署、运维、网络通信、数据一致性和安全性等方面的挑战,需要在实际应用中根据需求灵活选择。
2023-10-24 11:30:36
783
原创 JVM上篇之类加载子系统
类加载器是一个负责加载类的对象,用于实现类加载过程中加载这一步;每个Java类都有一个引用指向加载它的ClassLoader;数组类不是ClassLoader创建的,而是jvm直接生成。
2023-10-10 10:55:14
264
原创 JVM上篇之虚拟机与java虚拟机介绍
Java虚拟机是一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回器,以及可靠的即时编译器Java技术的核心就是Java虚拟机,因为所有的Java程序都运行在Java虚拟机内部。
2023-10-07 11:09:29
578
原创 数据结构与算法:时间复杂度与空间复杂度
一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度,记为T(n)。一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f (n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
2023-09-26 14:36:37
282
原创 数据结构与算法:排序算法(2)
假设数组中有20个随机整数,取值范围为0~10,要求用最快的速度把这20个整数从小到大进行排序,可以根据这有限的范围,建立一个长度为11的数组。以最大堆为例,如果删除一个最大堆的堆顶(并不是完全删除,而是跟末尾的节点交换位置),经过自我调整,第2大的元素就会被交换上来,成为最大堆的新堆顶。直接遍历数组,输出数组元素的下标值,元素的值是几,就输出几次,输出的数列已经是有序的了。随机值:9,3,5,4,9,1,2,7,8,1,3,6,5,3,4,0,10,9 ,7,9。1. 最大堆的堆顶是整个堆中的最大元素。
2023-09-21 15:40:34
264
原创 数据结构与算法:排序算法(1)
快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。快速排序则在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列一边,比它小的元素移动到数列的另一边,从而把数列拆解成两个部分;这种思路叫做分治法;
2023-09-21 10:51:07
332
原创 设计模式之观察者模式、访问者模式与模板方法模式
在不改变聚合对象内元素的前提下,为聚合对象内每个元素提供多种访问方式,即聚合对象内的每个元素都有多个访问者对象定义一个模版结构即抽象,将具体内容延迟到子类去实现。
2023-09-07 10:30:16
802
原创 设计模式之桥接模式、组合模式与享元模式
运用了树形结构,该模式的核心思想是:将多个对象组合成树形结构,以此结构来表示“整体-部分”之间的层次关系用于减少创建对象的数量,以减少内存占用和提高性能。它提供了减少对象数量从而改善应用所需的对象结构的方式;尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。
2023-09-06 14:04:13
511
dubbo-admin安装包
2023-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人