自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 资源 (15)
  • 问答 (3)
  • 收藏
  • 关注

原创 软考(系统架构师)-案例分析题总结

本文摘要了架构评估、Redis集群和微服务架构的关键知识点。架构评估部分介绍了ATAM方法的效用树结构和CBAM分析法;Redis集群部分图示了三种模式及其优缺点;微服务章节详细阐述了DevOps/CI/CD的作用、API网关功能(含优缺点)以及微服务架构的优势(解耦、独立性等)与挑战(分布式复杂性、数据一致性等),并提供了相应的应对策略。全文系统性地总结了现代系统架构设计的核心要素和实践方法。

2026-04-12 15:09:42 265

原创 软考(系统架构师)-企业应用集成

企业应用集成(EAI)通过标准化接口整合异构系统,消除信息孤岛,实现数据共享和业务流程自动化。主要集成方式包括:表示集成(界面统一)、数据集成(数据互通)、控制集成(系统互操作)和业务流程集成(流程自动化)。控制集成分为四个层次:通讯服务(底层通信)、信息传递与转化服务(数据传输转换)、应用连接服务(接口封装)和流程控制服务(顶层编排)。EAI可提高运营效率、保证数据一致性并支持企业数字化转型。典型题目考查控制集成的层次顺序,正确答案为D选项:通讯服务→信息传递与转化服务→应用连接服务→流程控制服务。

2026-04-07 23:52:00 292

原创 软考(系统架构师)-新技术

该部分主要在基础知识部分出现,熟记一下。

2026-04-05 15:02:46 175

原创 软考(系统架构师)-案例分析之Redis与缓存

Redis作为主流缓存系统,考题主要聚焦缓存一致性、数据同步等案例场景。文章对比了NoSQL与关系型数据库特性,详细解析Redis核心功能:数据类型(Zset适合排行榜)、淘汰策略、RDB/AOF持久化机制及主从同步流程。针对缓存与数据库同步问题,介绍了Cache-Aside模式、消息队列和Binlog解析三种方案。最后分析了缓存三大问题:雪崩(随机过期时间+多级缓存)、穿透(布隆过滤器+空值缓存)、击穿(热点key永不过期+互斥锁)的解决方案。全文系统梳理了Redis应用中的关键知识点和技术方案。

2026-04-03 23:24:25 545

原创 软考(系统架构师)-大数据篇

本文分析大数据系统的核心特点和架构设计。大数据具有5V特性:大规模、高速度、多样化、价值性和真实性。系统需具备鲁棒性、低延迟、横向扩展等属性。重点对比Lambda和Kappa两种架构:Lambda采用批处理+实时处理双路径,容错性好但维护复杂;Kappa统一实时流处理,简化维护但存在性能瓶颈。选择架构需综合业务需求、系统复杂度等因素。文章还通过具体案例展示了两种架构的技术选型,强调在考试中需掌握架构图细节。大数据作为新兴考点,其基础知识和案例分析重要性将不断提升。

2026-03-28 20:37:26 325

原创 软考(系统架构师)-系统架构设计与质量属性错题总结

本文总结了系统架构设计中常用的评估方法及其应用场景。SAAM是最早形成文档的架构分析方法,主要用于验证可修改性,后扩展至可移植性等;ATAM关注质量属性间的权衡,涉及性能、实用性等;CBAM通过场景优先级和效用分析选择投资回报最优的架构策略。文章还列举了可用性、可修改性、性能等质量属性的关键指标,并分析了相关错题,如可测试性场景中系统管理员不属于典型刺激源,SAAM评估步骤中场景开发最能体现系统支持的活动。这些内容为系统架构设计提供了实用的评估框架和质量属性参考。

2026-03-21 15:52:00 89

原创 软考(系统架构师)-软件架构设计之软件产品线

摘要:软件产品线是一组共享核心资源的软件产品集合,能显著提高开发效率和质量。其特点包括过程驱动、领域特定、技术支持和架构中心。演化方式涵盖现有产品改造、产品集整合及全新开发等。采用双生命周期等过程模型,通过领域工程和应用工程协同运作。成功实施需具备领域经验、优质核心资源库、稳定架构及有效管理支持。组织可采用独立小组或动态结构等形式。(149字)

2026-03-20 23:12:23 65

原创 软考(系统架构师)-计算机网络之OSI七层模型

osi七层模型主要集中在基础知识部分,可能会考某一层的作用,或者某一物理设备工作在哪一层,又或者某一物理设备具有什么作用,背到了就是送分题。

2026-03-14 10:21:16 227

原创 软考(系统架构师)-软件工程之开发模型

本文摘要:软件工程开发模型是考试重点,主要包括瀑布模型(适合需求明确项目)、喷泉模型(面向对象开发)、原型模型(适合需求不明确)、V/W模型(强调测试)、螺旋模型(考虑风险)等。统一过程(RUP)是迭代增量开发,包含4个阶段和4+1视图模型。敏捷方法强调适应性和以人为本,包括XP、Scrum等多种方法。文章最后通过考题示例展示了RUP细化阶段的特点。

2026-03-08 16:24:06 394

原创 软考(系统架构师)-软件架构设计之构件

摘要:构件是自包容、可复用的程序集,具有规范接口和语境依赖。构件与对象的区别在于其独立部署性和无外部可见状态。构件系统架构包含构件、原子构件、模块和资源等概念。构件可分为独立成熟、有限制、适应性、装配和可修改等类型。构件复用涉及检索、理解、修改和组装步骤,检索方法包括关键字、刻面和超文本检索。构件组装分为定制、集成和扩展三个层次,方式包括顺序、层次和叠加组装。构件标准主要有CORBA、J2EE和DNA 2000。CORBA核心包括IDL、ORB等,J2EE包含会话Bean、实体Bean和消息驱动Bean。

2026-03-08 14:38:46 378

原创 软考(系统架构师)-软件架构设计之设计模式

摘要:本文系统介绍了软件设计模式的三大类型(创建型、结构型、行为型)及其代表模式,包括23种经典设计模式的定义和应用场景。同时阐述了七大设计原则:开闭原则、里氏替换原则等,这些原则是设计模式的理论基础。文章最后通过两道真题示例展示了设计模式在考试中的常见考察方式。全文内容精炼,可作为软件设计师考试中设计模式部分的快速复习资料。(150字)

2026-03-07 00:01:07 500

原创 软考(系统架构师)-软件工程之软件测试

本文摘要: 软件测试是软件工程的重要环节,主要分为静态测试(不运行程序)和动态测试(运行程序)。测试方法包括黑盒测试(关注输入输出)、白盒测试(关注内部逻辑)和灰盒测试(二者结合)。测试阶段分为单元测试(模块功能)、集成测试(模块协作)和系统测试(整体验证)。性能测试包含负载测试、压力测试等不同类型。回归测试确保修改后原有功能正常。新型测试如AB测试和Web链接测试也日益重要。不同测试阶段对应不同开发文档作为依据,测试策略需根据具体需求选择。

2026-03-01 16:40:45 958

原创 软考(系统架构师)-韦恩图在基础知识题的运用

本文介绍了韦恩图在软考系统架构师考试中的应用。韦恩图通过圆圈表示集合及其交集,能直观展示不同集合间的包含关系。文章以2025年5月真题为例,演示了如何利用韦恩图解决集合计算问题:通过划分各语言使用者交集区域,最终计算出三种语言都不会的人数为22人。同时提到2025年11月真题也可采用相同方法求解,正确答案为10人。韦恩图是解决软考中集合计算问题的有效工具。

2026-03-01 03:13:26 167

原创 软考(系统架构师)-软件架构设计之质量属性与架构评估易混淆点(质量属性、质量属性场景、质量属性效用树)

摘要:本文梳理了软件架构设计中易混淆的质量属性相关概念,包括质量属性(开发期和运行期属性)、质量属性场景(六部分描述手段)和质量属性效用树(ATAM评估工具)。重点分析了这些概念的区别和应用场景,并以2024年5月真题为例,说明质量属性场景是描述质量属性的精确手段(正确答案A)。这些知识点常以选择题形式考察,需要准确记忆概念定义。

2026-02-25 23:13:45 276

原创 软考(系统架构师)-软件架构设计之软件架构风格

本文系统介绍了软件架构的多种风格及其特点。数据流风格包括批处理和管道-过滤器两种,前者适合整体数据处理,后者适合流式处理。调用/返回风格包含主程序/子程序、面向对象、层次型和客户端/服务器等类型。独立构件风格通过进程通信和事件系统降低耦合度。虚拟机风格通过解释器和规则系统实现灵活控制。以数据为中心的风格包含仓库和黑板两种体系结构。此外还介绍了闭环控制架构和C2风格。每种架构风格都有其适用场景和优缺点,需要根据具体需求选择。这些知识在软件系统设计和案例分析中都具有重要价值。

2026-02-23 11:43:38 796

原创 软考(系统架构师)-软件架构设计之软件系统质量属性

系统质量属性是系统架构师考试的重点章节,案例第一题几乎是必考的,而且难度也偏低,一般都是必须要拿到的分。

2026-02-22 10:02:20 348

原创 软考(系统架构师)-软件架构设计之软件架构评估

本文系统介绍了三种软件架构评估方法:SAAM、ATAM和CBAM。SAAM是最早形成的基于场景的评估方法,通过场景开发、评估等步骤分析架构。ATAM在SAAM基础上发展,采用效用树工具对质量属性分类排序,通过演示、调查分析等阶段评估架构权衡。CBAM则在ATAM基础上构建,基于投资回报选择架构策略。文中还阐述了架构评估中的关键概念,包括敏感点(影响构件特性)、权衡点(影响多个质量属性)和场景(描述系统交互)。这些方法为软件架构的评估和优化提供了系统化工具。

2026-02-21 17:47:36 420

原创 软考(系统架构师)-软件架构设计之特定领域软件体系结构

DSSA(特定领域软件架构)是针对特定问题领域形成的软件架构体系,包含领域参考模型、参考需求和参考架构。其特征包括严格的问题域与解域、普遍性、领域抽象和可重用元素。领域分为垂直域(特定系统族)和水平域(跨系统功能)。DSSA的基本活动包括领域分析、设计和实现,参与角色有领域专家、分析人员、设计人员和实现人员。建立过程采用螺旋模型,包含定义领域范围、元素、约束、模型架构及生成可重用构件。DSSA提供三层次系统模型,支持领域内应用开发。

2026-02-19 16:01:01 315

原创 软考(系统架构师)-软件架构设计之基于架构的开发方法

摘要:架构驱动的软件开发方法ABSD通过业务、质量和功能需求驱动设计,采用自顶向下递归细化方式分解功能、选择架构风格和使用软件模板。其开发过程涵盖架构需求、设计、文档化、复审、实现和演化六个阶段,强调用例和质量场景描述需求,通过视角视图描述架构。关键环节包括标识构件、模型映射、文档规范化和独立复审,最终形成可演化的构件库系统。该方法注重文档的针对性编写和稳定性维护,通过循环设计-文档化-复审过程确保架构质量。

2026-02-17 16:24:28 433

原创 Flink DataStream API 消费binlog kafka实践

摘要:本文探讨了Flink消费Kafka消息时的三个关键问题:1)通过保持分区与并行度一致、使用业务键keyBy等方式保证消息顺序性;2)针对单分区场景,通过业务键分组提高并行处理能力优化性能;3)采用时间窗口聚合函数(如5秒窗口保留最大ums_id记录)避免重复消费。特别强调process函数内才能保证keyBy分组效果,且后续处理需重新keyBy才能维持分组。这些方法在单分区多并行度的场景下尤其有效。

2026-02-17 10:30:53 468

原创 Flink DataStream 写入Starrocks实践

摘要: StarRocks是一款高性能OLAP数据库,具备极佳的聚合查询性能、数据更新能力、高并发支持和MySQL协议兼容性。文章详细介绍了通过Flink DataStream API将数据写入StarRocks的方法,推荐使用官方Flink connector实现高效批量导入。重点说明了主键表配置注意事项,包括低版本(≤1.2.7)的特殊处理方式,如显式定义主键、非空约束及添加__op字段。同时强调了主键表的设计限制,如主键列顺序、不可更新性等约束条件。

2026-02-17 10:25:10 577

原创 xxl-job java.sql.SQLException: interrupt问题排查(二)

摘要:线上环境再次出现xxl-job的SQLException中断问题,分析发现是由于定时任务执行时间过长(约4分钟)且采用轮询策略,导致后续任务覆盖前次任务时触发线程中断。报错集中在特定时间点,表现为Druid连接池响应中断异常。解决方案建议:1)将业务代码改为异步执行(推荐);2)调整任务执行频率以避免覆盖冲突。该问题与之前类似,但出现在未设置超时的轮询任务场景中。

2026-01-09 15:49:19 265

原创 spring-boot接入websocket教程以及常见问题解决

本文介绍了在Spring Boot中使用@ServerEndpoint接入WebSocket的方法。主要内容包括:1) 添加spring-boot-starter-websocket依赖;2) 定义@ServerEndpoint类实现生命周期方法;3) 通过ServerEndpointExporter注册WebSocket端点。文章重点讲解了如何在WebSocket类中引用Spring Bean(使用静态set注入)和获取前端cookie(通过自定义Configurator)。最后总结了常见的Unexpec

2025-06-02 12:46:44 2140

原创 xxl-job java.sql.SQLException: interrupt问题排查

xxl-job定时任务执行出现 java.sql.SQLException: interrupt异常问题

2024-10-27 10:06:28 957 1

原创 Maven编译提示“Malformed \uxxxx encoding”

Maven编译提示“Malformed \uxxxx encoding”

2022-09-19 14:52:00 3151 3

原创 MacOS Maven compile提示“No compiler is provided in this environment. Perhaps you are running on a JRE”

使用maven编译项目时提示“No compiler is provided in this environment. Perhaps you are running on a JRE”

2022-07-26 10:24:15 771

原创 聊一聊分布式锁

分布式锁想必已经很常见了,我主要从整体上讲一讲以及一些具体的思路细节和常见的问题总结特点互斥:锁必须是互斥的,即不能两个线程同时拿到锁。redis中我们可以lua脚本保证原子性,因为redis本身就是单线程的防止死锁:即不能出现某个锁迟迟不能释放可重入:即一个线程对资源加锁后可以对同一个资源再次加锁实现方式数据库Zookeeperredis

2022-04-01 18:37:46 1080

原创 Pinpoint本地调试

如何本地调试这里的本地调试实际上是本地远程debug,除了需要pinpoint源码,还需要一个使用我们编译后的pinpoint agent的应用执行命令./mvnw install -DskipTests=true编译好agent jar包放到特定目录在应用中配置需要agent参数,同时配置debug参数,如下-Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -javaagent:"/Users/

2020-07-04 08:37:34 1362

原创 Pinpoint Agent加载流程分析

pinpoint 版本:2.0.3-SNAPSHOTpinpoint利用java agent 特性,提供了一个agent jar包,此jar包会在应用运行之前先运行,agent和应用在同一个进程。pinpoint通过对各个第三方包编写特定的插件,这些插件在agent运行时被加载,通过ASM对第三方包的类进行修改(Intercetor),应用在运行时使用的第三方包的类即是pinpoint修改后的,从而实现全链路追踪的目的。Agent加载流程agent的入口在 com.navercorp.pinpoint

2020-06-29 19:56:14 1526

原创 Gradle: MetaDataParseException: inconsistent module metadata found

在使用gradle编译的时候报错:inconsistent module metadata found,期望的是 1.8.8-SNAPSHOT 但是发现 1.9.0-SNAPSHOT版本Caused by: org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.MetaDataParseException: inconsistent module metadata found. Descriptor: ..., Errors: bad

2020-05-21 15:18:30 2936

原创 Mybatis xml orderby 排序字段不生效问题

今天想实现一个功能,根据给定的字段,以及是否升降序来对数据动态排序,xml实现如下 order by #{orderBy} #{orderType} <if test="pageSearch!=null and 'true'.toString() == pageSearch.toString()"> limit #{limit} offset #{offse...

2020-02-19 17:42:58 3470

原创 Redis整数集合为什么不支持降级?

在讨论redis的整数集合的时候,我们一直知道的是整数集合支持升级,但是不支持降级,其中的原因有仔细想过吗?先说一下升级:当我们要将一个新元素添加到整数集合里面,并且新元素的类型比整数集合现有所有元素的类型都要长时,整数集合需要先进行升级,然后才能将新元素添加到整数集合里面。再来谈谈为什么不支持降级?假设支持降级,这里要问两个问题:什么时候降级?降级到何种级别的数据类型?什么时候降级...

2020-02-18 21:42:51 642 1

原创 Java8 HashMap扩容时为什么不需要重新hash

java8在实现HashMap时做了一系列的优化,其中一个重要的优化即在扩容的时候,原有数组里的数据迁移到新数组里不需要重新hash,而是采用一种巧妙的方法,代码如下: table = newTab; if (oldTab != null) { for (int j = 0; j < oldCap; ++j) { ...

2020-02-18 16:09:49 9681 7

原创 Java中如何正确的关闭线程池ExecutorService

概念ExecutorService关于关闭主要有如下几个方法shutdown:在线程池队列中的提交的任务会执行,无法提交新的任务,注意调用这个方法,线程池不会等待(wait)在执行的任务执行完成,可以使用awaitTermination实现这个目的。这里需要注意的是:在执行的任务因为是异步线程执行的,任务还是会继续执行,只是说线程池不会阻塞等待任务执行完成List<Runnable&...

2020-02-06 17:12:10 8870 1

原创 cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'mongo:mongo' 的声明

今天在spring中整合mongodb,我参考官网的配置配置xml如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in...

2020-01-02 15:27:59 2032

原创 Could not find an appender,Did you define it below instead of above in the configuration file?

在使用logback配置日志的时候报错:ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.ERROR in ch.qos.logback.core.joran.action.Appen...

2019-12-04 19:52:02 31316

原创 缓存的一些基本概念

缓存雪崩概念缓存雪崩是指应用里有许多缓存key在某一时刻全部失效,这个时候请求这些数据时,由于缓存中已经没有了,导致全部查询db,严重情况下会打垮db,这里的关键是许多key在某一时刻全部失效解决方案为不同的key设置不同的过期时间,一般可以在需要的过期时间的基础上再加上随机值加锁排队:这种方式适用于并发量不是很多的情况。在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比...

2019-12-04 10:16:54 253

原创 Mybatis uncategorized SQLException for SQL []; SQL state [null]; error code [0]; sql injection viola

今天用mybatis写了个查询代码,发现怎么样都报错,提示: uncategorized SQLException for SQL []; SQL state [null]; error code [0]; sql injection violation, syntax error: EOF : select * from\n \n\t\tinbound_detail\n\t \n where i...

2019-11-18 10:39:32 16941

翻译 Pingpoint 技术详解

英文原文:https://naver.github.io/pinpoint/1.8.4/techdetail.html说明:【】中内容为方便解释自己加的在这篇文章中,我们描述了Pinpoint的技术细节比如请求追踪(transaction tracing)和字节码插装(bytecode instrumentation),同时说明了应用于Pinpoint agent中的优化方法,它可以修改字节码...

2019-07-17 11:12:09 10819

翻译 Pinpoint概要

英文原文:https://naver.github.io/pinpoint/overview.html概要如今,服务都是由许多不同的组件组成,这些组件之间通信同时也会调用外部服务。但是每条请求或者说事务(transaction)是怎样执行的是个黑盒。Pinpoint追踪这些组件之间的请求流(transaction flows)并且提供了清晰的视图查看从而确定系统问题所在以及潜在的瓶颈。Se...

2019-07-03 22:44:19 379

SIFT算法的一个小演示

SIFT算法的一个小演示,有C++版和matlab版,从这个算法的提出者的主页上下的,借来分享一下

2012-11-10

java代码在window获取linux文件

java代码利用Jsch实现在windows平台获取linux服务器文件,已包含 jsch jar包

2015-04-21

httpsqs安装包和依赖包

googlecode上的httpsqs linux安装包与依赖包,httpsqs官方介绍见:http://zyan.cc/httpsqs/,在Ubuntu下安装遇到的问题及解决可以看下我的博客

2015-03-03

fastdfs安装包以及客户端包

fastdfs轻量级分布式文件存储系统源代码,安装包,python客户端程序,java客户端程序

2015-05-15

提取Office以及Pdf文档文字

提取office(ppt、word、excel)文档的文字,提取pdf文档的文字,包含所需的jar包

2015-11-17

Emmagee与Trepn

Android应用内存、CPU和耗电量测试工具,直接安装在手机

2017-04-01

将MATLAB程序代码转换成C++程序代码

将MATLAB的源程序转换成C++代码,不过转换之后,程序代码会增加很多,作辅助作用

2012-09-06

FlowDroid源代码

FlowDroid源代码,包含了运行FlowDroid所需的其他源代码,jasmin、soot、heros,对于Android静态污点分析帮助很大,

2014-11-03

PCA算法源代码

这是基于我前面传的 Robin Hewitt 写的PCA的文档的对应源代码,利用了OpenCV,C++,代码详细,分享下

2012-12-17

android kernel goldfish3.4 part1

这是从Google官网下载的Android内核源码,版本为goldfish3.4,对于Android4.4及以上的版本无法编译goldfish2.6版本的,因此需要使用goldfish3.4,因为上传资源大小的限制,用winrar分成了两部分上传,下载这两个部分,使用winrar合并,得到.tar.gz文件,解压后即可编译,本人已编译通过,详见:http://blog.csdn.net/zlp1992/article/details/48574499

2015-09-30

busybox英文版

BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。

2015-04-29

PCA算法详解

PCA算法详解,是一个叫Robin Hewitt的人写的,写的很详细,也提供了源码,不过是全英文的,借来给大家分享下

2012-12-17

Android kernel goldfish3.4 part2

这是从Google官网下载的Android内核源码,版本为goldfish3.4,对于Android4.4及以上的版本无法编译goldfish2.6版本的,因此需要使用goldfish3.4,因为上传资源大小的限制,用winrar分成了两部分上传,下载这两个部分,使用winrar合并,得到.tar.gz文件,解压后即可编译,本人已在Android4.4编译通过,详见:http://blog.csdn.net/zlp1992/article/details/48574499

2015-09-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除