- 博客(192)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注
原创 2024年11月系统架构设计师考试真题回顾
我选的 SOAP封装,定义了一个描述消息中的内容是什么,是谁发送的,谁应当接收并处理它以及如何处理它们的框架质量属性。
2024-11-13 00:40:39 500
原创 一个基于Spring实现的热更新插件开发框架
对于其他解释性语言来说,热更新根本不是什么事,但对于Java来说是多么的不容易,现在使用Java开发的热更新系统,基本使用JS编写脚本,然后用Java的JavaScript引擎来跑脚本。
2024-09-08 21:32:10 1026 1
原创 用TCC来解决多个第三方系统数据一致性问题
如果是通过api集成,单次请求只调用一个三方系统没问题,同步调用就行,但如果同时要调用多个三方系统,并且需要三方系统都成功的时候才算该次请求成功调用,这种情况只要后面调用的系统发生报错,前面系统如果不删除产生的数据,就会遗留在三方系统中,产生脏数据。这是使用TCC来解决的多个三方数据一致性问题,这种方案数据查询,参数封装都需要手动写代码处理,比较繁琐,我之前还提供过另外一种方案,通过注解进行声明,由框架解析注解来自动处理,代码量少很多,不过我的代码还有很多要优化完善的地方,但我想这种思想是好的,可以看看。
2024-09-01 18:39:21 916
原创 《Java面试题集中营》- Redis
单线程能够避免线程切换和竞态产生的消耗,而且单线程可以简化数据结构和算法的实现至于单线程还快,是因为Redis是基于内存的数据库,内存响应速度是很快的,并且采用epoll作为I/O多路复用技术,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多时间。
2024-08-30 17:20:39 1689
原创 《Java面试题集中营》- 数据库
遵守最左匹配原则,中间断索引,使用范围查询在索引列上做计算索引字段使用!= 或者 索引字段使用 is null 或者 is not null使用通配符 %开头索引字段是字符串,查询条件没有使用字符串索引字段使用orMVCC即多版本并发控制,它能在很多情况下避免加锁操作,降低开销,不同的存储引擎实现方式不同,有乐观并发控制和悲观并发控制MySQL的InnoDB引擎,通过在每行记录后面保存两个隐藏的列来实现,一个列保存了行的创建时间,一个保存了行的过期时间(或删除时间)。
2024-07-17 18:26:18 1185
原创 《Java面试题集中营》- 设计模式
提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类是简单工厂模式的进一步抽象和推广,是GoF设计模式的一种,由于使用了面向对象的多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示是一种创建型设计模式,使你能够复制已有的对象,而无需使代码依赖它们所属的类是一种创建型设计模式,它能让你保证一个类只有一个实例,并提供一个访问该实例的全局节点「单例模式示例代码」是一种结构型设计模式,它能使接口不兼容的对象能够互相合
2024-07-17 18:20:36 1136
原创 《Java面试题集中营》- JVM 知识
一个类在加载的时候,首先会将加载请求委派给父加载器,只有当父加载器反馈无法加载完成这个请求时,子加载器才会尝试自己加载。
2024-06-25 15:43:27 692
原创 《Java面试题集中营》- Java 锁
互斥条件:指线程对已经获取到的资源进行排它性使用,即该资源同时只由一个线程占用。如果此时还有其他线程请求获取该资源,则请求者只能等待,直至占有资源的线程释放该资源请求并持有条件:指一个线程已经持有了至少一个资源,但又提出了新的资源请求,而新的资源已被其他线程占有,所以当前线程会被阻塞,但阻塞的同时并不释放自己已经获取的资源不可剥夺条件:指线程获取到的资源在自己使用完之前不能被其他线程抢占,只有在自己使用完毕后才由自己释放该资源。
2024-06-25 15:41:37 815
原创 《Java面试题集中营》- Java并发
可以使用CyclicBarrier,CountDownLatch,Callable,ForkJoinPool,CompletableFuture,并行流(LongStream)坚持专研Java,一条路走到黑。持续更新地址语雀:https://www.yuque.com/itsaysay/mzsmvg。
2024-06-24 20:00:24 1122
原创 《Java面试题集中营》- Java基础
序列化是一种用来处理对象流的机制,也就是将对象的内容转化成二进制流,可以将对象持久化或者网络传输反序列化是将二进制流还原为对象的过程实现Java序列化,通过实现Serializable即可声明注解的保留期限类型@Retention(RetentionPolicy.RUNTIME)表示该注解可以在运行期保留保留期限类型:java.lang.annotation.RetentionSOURCE: 注解信息仅保留在目标类源代码文件中,对应的字节码文件不会保留。
2024-06-24 18:08:26 774
原创 Spring 内置BeanFactoryPostProcessor的子孙们
同样的Spring 也 内置了 一些实现 BeanFactoryPostProcessor的类,各有各的用处。
2024-06-14 22:22:23 958
原创 Spring 内置BeanPostProcessor 的子子孙孙
Spring 框架已经实现了很多BeanPostProcessor的类,如下是关于BeanPostProcessor 的类图,图片过大,可以下载资源包看。要能说清楚这些类,挺难,我也不知道怎么写,这几个类都分布在不同的包中,我感觉按包来分类说更清楚一些,这篇文章只大概介绍各个类的作用,具体源码后面再说。
2024-06-13 20:03:07 1204 6
原创 社区版IDEA 最好用的Diagrams替代插件
Diagrams 是专业版IDEA功能,能很方便的生成类图。但在社区版中要比较方便的生成类图,就比较麻烦,虽然插件有一些但都不好用。经过各种尝试对比还是更好用,SimpleUML 不能通过IDEA的插件界面安装,只能离线安装,下载地址已经发到文章上方。由于SimpleUML 自第一版后,一直没更新,新版IDEA存在一些兼容性问题(作者使用的是2023.1.2),有时候会不能使用,重启IDEA多试试,右下角还会有一些报错,不过主体功能都能使用。
2024-06-13 09:49:19 1494 3
原创 认识Spring中的BeanFactoryPostProcessor
4、执行剩余实现了BeanDefinitionRegistryPostProcessor接口的类,以及后置处理中新增的BeanDefinitionRegistryPostProcessor类。1、执行实现了BeanDefinitionRegistryPostProcessor接口,通过addBeanFactoryPostProcessor 添加的类。通过扫描增加,实现了BeanDefinitionRegistryPostProcessor 、PriorityOrdered 的类,排序靠后。
2024-06-10 21:07:30 598 4
原创 认识Spring 中的BeanPostProcessor
内部进行调用,此处打个断点调式。由于几个内置BeanPostProcessor的存在,运行时会多次进入断点,所以我们都跳过,进入。
2024-06-07 23:25:25 319 4
原创 系统架构设计师重难点知识脑图
大家都知道现在的软考自从变成机考后,越来越难了,教程上的内容不仅全还细,几乎任何内容都有可能考,出题老师主打一个出其不意,比如2024年5月考试,连UML时序图的片段都考,这。软件工程、系统架构基础知识、系统质量属性与架构评估、软件架构的演化和维护、信息系统架构设计、层次式架构设计、云原生架构设计、面向服务架构设计、安全架构设计、大数据架构设计等。所以对于教程上的任何知识点,都需要去记忆。因此我在这里制作了一个脑图,将所有知识点集中在一个脑图中,通过首词组句法,记忆背诵,通过一个个的展开节点,加强记忆。
2024-06-05 01:16:58 421 2
原创 【新版系统架构】知识点背诵默写本
系统架构考试在即,想要考试的人肯定感受到了沉甸甸的压力和紧迫感,脑海中不断闪过知识点的画面,却让人有些头昏脑胀,发现很难完全记住,这个考试很难,知识点很多。这次我在准备考试的同时,将新版系统架构的知识点进行了遮盖,通过看遮盖后的内容,让自己回想知识点,以此来加深记忆。知识点太多,我也是边看边做,花了不少时间,希望对我及大家有一些帮助吧。你也可以在看的同时用这种方法自己做一个适合自己的《知识点背诵默写本》。
2024-05-09 18:53:03 621 1
原创 基于OpenCompass的大模型评测实践
本算法库的主要评测对象为语言大模型与多模态大模型。我们以语言大模型为例介绍评测的具体模型类型。基座模型:一般是经过海量的文本数据以自监督学习的方式进行训练获得的模型(如OpenAI的GPT-3,Meta的LLaMA),往往具有强大的文字续写能力。对话模型:一般是在的基座模型的基础上,经过指令微调或人类偏好对齐获得的模型(如OpenAI的ChatGPT、上海人工智能实验室的书生·浦语),能理解人类指令,具有较强的对话能力。
2024-03-04 18:15:30 889
原创 基于LMDeploy部署大模型和量化
LMDeploy 是LLM在英伟达设备上部署的全流程解决方案。包括模型轻量化、推理和服务。核心功能-量化核心功能-推理引擎TurboMind核心功能-推理服务。
2024-02-29 15:33:49 1069
原创 基于XTuner微调书生·浦语大模型
XTuner 是一个傻瓜式、轻量级的大语言模型微调工具箱,由MMRazor和MMDeploy联合开发。其以配置文件的形式封装了大部分微调场景,0基础的非专业人员也能一键开始微调;对于 7B 参数量的LLM,微调所需的最小显存仅为 8GB。XTuner 支持的开源大模型:InternLM、Llama/Llama2、ChatGLM2/ChatGLM3、Qwen、Baichuan/Baichuan2、Zephyr微调有全参、LoRA、QLoRA三种方式,QLoRA是LoRA微调的改进。以数据集为例场景需求。
2024-02-29 11:16:03 875
原创 基于InternLM和LangChain搭建自己的知识库
为了开发RAG应用,我们使用LangChain。LangChain是一个开源工具框架,通过为各种LLM提供通用接口来简化应用程序的开发流程,帮助开发者自由构建LLM应用。链(Chains):将组件组合实现端到端应用,通过一个对象封装实现一系列LLM操作Eg:检索问答链,覆盖实现RAG的全部流程下图是基于LangChain搭建RAG应用的流程图:后面我们将根据该流程来搭建自己的RAG应用。llm.predict("你是谁")
2024-02-28 22:04:39 726
原创 书生·浦语大模型全链路开源体系介绍
书生·浦语大模型开源历程:书生·浦语大模型系列:以20B开源大模型为例,其性能全面领先相近量级的开源模型(包括Llama-33B、Llama2-13B以及国内主流的7B、13B开源模型),以不足三分之一的参数量,达到Llama2-70B水平。总之书生浦语是一个大模型全链路开源体系,为开发者提供了从数据集准备到模型训练、部署和应用的全套解决方案。通过该体系,开发者可以自由定制和扩展模型,满足不同场景下的需求。Prometheus+Grafana 实践派。
2024-02-27 22:08:52 1114
原创 一个Spring Boot Admin 监控多个Nacos集群
最终你能发现admin监控会同时注册到多个集群中,admin服务列表能看到多个集群的服务。另外要注意的是,要适当调整admin监控服务的内存,毕竟监控的服务变多了。通过一个月的运行,目前admin监控运行稳定,相关功能一切正常。其他企业级监控:Prometheus 系列文章Prometheus 的介绍和安装直观感受PromQL及其数据类型PromQL之选择器和运算符PromQL之函数Prometheus 告警机制介绍及命令解读Prometheus 告警模块配置深度解析。
2024-02-12 13:48:49 2436 12
原创 我用selenium开发了一个自动创建任务,解放重复性工作
先来看看Selenium的介绍,没错它其实是一个自动化测试工具。Selenium是一个用于Web应用程序测试的工具,它直接运行在浏览器中,可以模拟真正的用户操作。这个工具的主要功能包括测试与浏览器的兼容性(即测试应用程序是否能够很好地工作在不同浏览器和操作系统之上)和测试系统功能(即创建回归测试检验软件功能和用户需求)。Selenium支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。
2024-01-31 22:32:04 1970
原创 搭建一个简单的Spring Demo
要学习Spring 源码,一个是从Spring GitHub 上去down源码,然后倒入IDEA编译,但这种方法费时费力,如果你不需要对Spring 源码进行修改后,再编译的话,直接搭建一个Spring Demo 的Maven项目,引入Spring 对应依赖,下载源码包,通过Demo来学习。本专栏就通过该Demo来学习Spring 源码,并将相关内容记录到该专栏中。
2024-01-22 21:37:11 1381
原创 Skywalking 的Docker部署测试-Tempo替代方案
如果监控系统用的是Prometheus+Grafana,那么链路监控可以使用Grafana家族产品Grafana Tempo,但部署比较麻烦,涉及组件较多,文章可以参考《》,如果只需要简单的监控+链路跟踪,我觉得使用Skywalking是一个好选择。
2024-01-12 10:57:46 1346
原创 Grafana Promtail 配置解析
由于目前项目一般都是部署在k8s上,因此这篇文章中的配置只摘录k8s相关的配置,仅供参考,其他的配置建议上官网查询。
2024-01-10 16:16:54 3160 3
原创 Grafana Loki 日志传输工具
Promtail也是裸机上的首选客户端,它可以配置为跟踪给定主机路径的所有文件中的日志。Promtail 和 Prometheus一起运行在K8s中,可以实现强大的调试功能:如果Promtail 和 Prometheus使用相同的标签,用户可以使用Grafana等工具根据标签集在度量和日志之间切换。Grafna 技术栈推荐客户端,支持收集度量、日志、跟踪和持续性能分析的遥测数据,跟Prometheus、OpenTelemetry、Grafana开源生态系统完全兼容。Prometheus 系列文章。
2024-01-10 09:44:30 1454
原创 Grafana Loki 组件介绍
当使用Consul作为哈希环的实现时,所有Ingester通过一组token注册到环中,每个token是一个随机的32-bit无符号整数,同时Ingester会上报其状态到哈希环中。查询时,Querier先访问所有Ingester用于获取其内存数据,只有当内存中没有符合条件的数据时,才会向存储后端发起同样的查询请求。此外,由于副本因子的存在,Querier可能会接收到重复的数据,所以其内置了去重的功能,对拥有同样时间戳、标签组和消息内容的日志进行去重处理。当前 chunk 达到配置的最大容量。
2023-12-28 15:03:32 1457
原创 Grafana Loki 配置解析
Grafana Loki 配置文件是一个YML文件,在的示例中是loki-config.yaml,该文件包含关于Loki 服务和各个组件的配置信息。由于配置数量实在太多,没法全部翻译,只能后期有需要了再补充。如下是配置文件占位符说明
2023-12-28 14:55:18 3820
原创 Grafana Loki 快速尝鲜
Grafana Loki 是一个支持水平扩展、高可用的聚合日志系统,跟其他的聚合日志系统不同,Loki只对日志的元数据-标签进行索引,日志数据会被压缩并存储在对象存储中,甚至可以存储在本地文件系统中,能够有效降低成本;多租户,Loki允许多个租户共享一个Loki实例,租户数据完全隔离;通过插件支持第三方agent;通过LogQL查询日志,类似与PromQL;告警,能跟Prometheus、Grafana的告警系统无缝集成;可以与Mimir、Tempo无缝集成,实现日志长期存储和链路跟踪。
2023-12-16 21:58:36 1486
原创 Spring Cloud Gateway中对admin端点进行认证
我们被扫了一个漏洞,`SpringBoot Actuator 未授权访问`,漏洞描述是这样的:`Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,从而导致信息泄露甚至服务器被接管的事件发生`
2023-12-08 09:51:22 1119
原创 SpringCloud 微服务集群升级记录(1.5.x-2.7.18)
前段时间,因项目被扫出大量漏洞,全是因为依赖版本过低,存在高中危漏洞需要升级。正好本来也有规划集群升级,因为工作量大迟迟落实不了,正好有这次修漏洞的机会,升级微服务集群。这篇文章主要记录了本人的升级记录,遇到的问题解决方法,仅供参考。
2023-12-01 19:19:31 2111
原创 【新版系统架构补充】-信息化战略体系
是一种集成的管理思想和方法,是在满足服务水平要求的同时,为了使系统成本达到最低而采用的将供应商、制造商、仓库和商店有效地结合成一体来生成商品,有效地控制和管理各种信息流、资金流和物流,并把正确数量的商品在正确的时间配送到正确的地点的一套管理方法。企业战略规划利用机会和威胁评价现在和未来的环境,用优势和劣势评价企业现状,进而选择和确定企业的总体和长远目标,制定和抉择实现目标的行动方案。供应链节点:供应商、制造商、分销商、零售商、仓库、配送中心、客户等。参与电子商务的实体有:顾客、商户、银行、认证中心。
2023-08-09 17:36:18 755
Spring Boot 2.6.11 中文版
2024-01-31
Java架构师之路系列教程
2023-07-01
GitHub 热门Java面试题
2023-06-05
Prometheus MySQL Exporter 监控多实例镜像
2023-03-04
最新Spring Boot Admin 官方参考指南-中文版-2.x
2022-08-16
最新Spring Cloud Gateway 官方参考指南-中文版-3.x
2022-08-16
该不该接这个烫手山芋,代码合并
2023-03-16
有没有什么好的开源工具可以加密spring boot 的jar包
2022-09-09
Class类中isInstance判断数组什么时候结果为true
2022-06-17
Java 11中不能使用动态代理?
2020-05-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人