- 博客(237)
- 资源 (36)
- 收藏
- 关注

原创 金融机构操作风险与内控合规的介绍
定期式评估是指按照既定评估频率,定期开展的风险控制评估。在商业银行的经营管理和流程管控实践中,流程梳理是一项事关银行业务发展的基础性工作,也是一项需要各部门协作、各分行参与的周期性、长期性工作,被视为操作风险三大工具应用的基础,对商业银行的内部控制和风险管理都起着积极的作用。自我评估的工作以流程为实施对象,通过定期对业务范围内潜在的操作风险以及目前具备的控制措施的识别与评估,了解业务范围内所面对的操作风险事件的风险暴露分布、控制失效的原因,据此采取有效的应对措施,将操作风险暴露控制在能够忍受的范围之内。
2023-10-03 20:30:21
9157
原创 系统日志与用户信息绑定实现日志跟踪
在用户登录时,生成一个唯一ID,用户ID+时间戳,假设唯一ID的键为userTraceId,并将其存储到MDC(Mapped Diagnostic Context)中,MDC 是Logback`支持的线程上下文存储机制,适合在日志中动态传递变量。通过在拦截器中设置MDC的userTraceId,并在logback-spring.xml的日志模式中添加%X{userTraceId},即可实现基于登录用户的日志跟踪功能。%X{userTraceId}会从MDC中获取userTraceId值,若不存在则为空。
2025-07-25 21:10:35
167
原创 接口慢查询优化方案
本文针对系统接口查询性能优化提出解决方案。随着数据量增长,慢SQL导致数据库连接数增加、事务堆积等问题,影响用户体验。优化方案包括:程序层面合并循环查询、减少数据库访问次数、按需查询、优化索引使用和缓存数据;数据库层面分析连接状态、锁和事务情况,通过EXPLAIN优化查询计划,并考虑数据分区。以订单查询为例,通过多维度优化提升接口响应速度。
2025-07-17 17:32:59
735
原创 使用分布式锁批次限流调用接口并显示进度
本文提出了一种分布式环境下的订单同步解决方案,主要解决三个核心问题:1) 定时任务重复执行;2) 手动任务冲突;3) 接口限流控制。系统采用Redis分布式锁确保任务单一执行,通过共享状态存储实现集群状态同步,并利用BlockingQueue队列分批处理和RateLimiter限速机制控制接口调用频率。Java后端实现了动态锁超时、订单分片处理、异常捕获和状态更新等功能,Vue前端提供日期选择、进度展示和失败订单查看等交互界面。该方案以商城订单同步ERP为例,实现了每分钟100次调用的限流要求,支持手动重试
2025-06-28 23:46:00
451
原创 电商中面单、快递单与发货单区别
用于向快递/快运公司下单并获取快递单号,支持预约取件、保价、代收货款、子母件、短信等增值服务,电子面单接口(如快递鸟提供的接口)是连接电商平台、ERP系统与快递公司系统的桥梁。:通过接口,商家系统可直接调用快递鸟的API,传入订单信息(如收件人地址、寄件人信息、包裹详情等),自动生成电子面单,减少手动录入工作量。:快递鸟支持多家快递公司(如顺丰、圆通、申通等),通过统一接口,商家无需对接每家快递的系统,即可生成不同快递公司的电子面单。电子面单是物流运输的“身份证”,而发货单是商家的“出库明细单”。
2025-05-30 14:08:48
1783
原创 网络编程的几个技术点总结
它基于 Java NIO(Non-blocking I/O)技术,简化了 TCP/UDP 套接字编程,并提供了高度抽象的 API,广泛应用于分布式系统、游戏服务器、RPC 框架(如 Dubbo)、实时通信(如 WebSocket)等领域。长轮询(Long Polling)和短轮询(Short Polling)都是客户端与服务器交互的技术,用于模拟实时数据更新,但两者的工作机制、性能和应用场景有显著差异。这种方式实现起来非常简单可靠,但是频繁的调用后端接口,会对后端性能会有影响(主要是 CPU)。
2025-05-30 13:58:49
890
原创 Mysql数据库高可用解决方案-Mysql Router
MySQL Router 的配置是其核心功能实现的关键,通过配置文件(通常为 mysqlrouter.conf)定义路由策略、端口、目标服务器以及与 MySQL 集群的交互方式。MySQL Router 的配置通过 INI 格式的配置文件实现,核心包括全局设置([DEFAULT])、日志([logger])、元数据缓存([metadata_cache])和路由策略([routing])。MySQL Router 是 MySQL 官方提供的一个工具,旨在简化应用程序与 MySQL 数据库集群之间的连接管理。
2025-04-30 20:17:16
1992
1
原创 Nginx 重写与重定向的指令配置
例如,请求 http://example.com/admin/test,$uri 是 /admin/test。例如,如果 $uri 是 /admin/test,则 $uri/ 是 /admin/test/。/admin/index.html:回退路径,如果前面的文件或目录都不存在,Nginx 会尝试提供这个路径(相对于 alias 或 root 定义的目录)。如果文件不存在,检查 $uri/ 是否对应一个目录(例如 /usr/nginx/demo/im-admin/test/)。
2025-04-30 19:54:45
2063
原创 对象存储MinIO安装教程
如需进一步优化或配置(如 HTTPS 或多节点部署),可参考 MinIO 官方文档:https://min.io/docs/minio/linux/index.html。http://your-server-ip:9000:MinIO API 地址(或用 http://127.0.0.1:9000)。set download:设置桶为公共可读,允许匿名用户执行 s3:GetObject(下载对象)。访问 MinIO 控制台:打开浏览器,访问 http://your-server-ip:9001。
2025-04-27 21:28:23
1121
原创 电商多包裹与子母单发货区别
指一个订单分成多个包裹,但这些包裹共享同一个主物流单号(母单),每个包裹又有自己的子单号。指一个订单中的商品因库存、尺寸或重量等原因,无法装入一个包裹,需分成多个包裹发出。两种方式都能有效处理复杂订单,具体选择取决于物流需求。
2025-03-19 19:15:48
537
原创 多数据源下Spring事务与数据库会话的研究
在 READ-COMMITTED 隔离级别下,未提交的数据(即 insert 插入的数据)在事务提交之前不可见。但这会导致脏读问题(读取未提交的数据,如果事务回滚,读取的数据可能是错误的),不推荐在生产环境中使用。由于事务尚未提交,且隔离级别是 READ-COMMITTED,插入的数据对当前查询不可见,因此返回 null。直接通过 ID 查询记录,可以绕过隔离级别的影响(因为同一事务中的插入操作对后续查询可见)在一个事务中,未提交的数据对当前事务的后续查询不可见,即使是同一个事务中的操作。
2025-03-13 21:35:31
554
原创 mybatis中使用IN函数时参数解析的几种方式
bind> 将 idString通过 split(',') 转换为数组,并绑定到变量 idListArray。确保 MyBatis 版本 >= 3.4.0,因为较老版本可能不支持 split() 的 OGNL 表达式。MyBatis 的 <bind> 标签可以动态处理字符串,将其绑定为一个新变量,然后再操作。假如一个多ID查询的需求,需要SQL中用IN函数进行包含查询。还有就是使用$获取值,因为有SQL注入风险,就不再叙述。
2025-03-13 13:56:59
539
原创 Feign中@RequestBody 与 @RequestParam 的区别
Feign 会将 queryMap 序列化为 JSON 并放入请求体。适用于需要通过请求体(request body)传递复杂数据的场景,例如 JSON,Map,List,Java对象,如果你尝试在 GET 方法上使用 @RequestBody,Feign 或 Spring 会报错。因为GET 不支持请求体。从请求体解析成 {"idList": [1, 2], "category": "electronics"}。
2025-03-13 13:11:36
390
原创 Java23种设计模式案例
在Java开发中,设计模式是解决常见问题的最佳实践,通常被归纳为23种经典设计模式,这些模式源自《设计模式:可复用面向对象软件的基础》一书(由GoF四人组提出)。这些模式分为三大类:创建型模式、结构型模式和行为型模式。提升代码的可维护性、可复用性、可扩展性。下面讲解这23种设计模式,包括定义、使用场景和简要示例。
2025-02-25 13:28:35
1294
原创 几个资源查看的linux命令
计算指定文件夹下磁盘空间占用前十的文件或子目录,单位使用 GBdu-a-hsort -rh-r-hhead -n 10要列出内存占用前十的程序,并查看占用内存的大小(单位 GB)、程序名称、所在文件夹、程序用户等信息,你可以使用ps命令结合sort和head来实现。ps aux:列出所有正在运行的进程,包括程序名、占用内存、用户等信息。aux:按照内存占用(%mem)降序排序。表示降序排序。head -n 11:取前十个占用内存最多的进程,head默认显示前 10 行,但我们加上n 11是因为ps。
2025-02-21 11:20:43
818
原创 Swagger+OpenApi接口文档工具及规范的研究
比如 Java、Python、Go 等各种语言都有基于 OpenAPI 的工具链,如 Swagger Codegen、OpenAPI Generator 等,能够根据 OpenAPI 规范生成代码、文档和客户端 SDK,Swagger 作为品牌和工具名称的局限性,在某种程度上阻碍了这一跨语言、跨平台的支持,而 OpenAPI 的出现则消除了这种障碍,促使了生态系统的多样性和开放性。Swagger 2 和 OpenAPI 2 是同一个规范,Swagger 2 是 OpenAPI 2 的实现。
2025-02-13 19:01:54
2466
1
原创 SpringCloud升级手册-服务发现延迟问题记录(Load balancer does not contain an instance for the service)
问题排查过程中,排除了架构版本依赖关系不兼容、版本冲突等问题,且测试环境单机部署测试已经运行近两周,问题可能在系统启动调用微服务获取码表的过程中,存在一定的服务发现延迟问题,即对码表初始化方法调用的时机进行了调整和相关配置调整。系统无法正常启动,失败的服务经过手动重启一次或多次,可以成功启动,因存在问题,进行了版本回退,最终导致整个升级过程未能完成。定期检查项目中的依赖版本,并与官方文档保持同步,确保项目使用的版本始终是经过充分验证的兼容版本。2021.0.1.0内嵌1.4.2。
2025-01-13 12:29:29
698
原创 IDEA设置JAVA类和方法自定义注释模板方法
IDEA生成注释的方式是:模板名+快捷键(比如设置模板名为a,快捷键用Tab,则生成方式为a+Enter),可以根据这个来选择使用不同的模版注释。日期格式:${YEAR}年${MONTH}月${DAY}日 ${HOUR}:${MINUTE}:${SECOND}相关的,我们可以用IDEA内置的表达式,然后传入自己的格式化规则字符串即可。,因为会造成方法参数无法获取,我们在方法上面生成注释时,需要先写斜杠,然后再输入。Name: 是Template text中的变量名,就是双$符中间的变量。
2024-12-30 16:21:19
6285
原创 SpringCloudAlibaba升级手册-nacos问题记录(Client not connected, current status:STARTING)
剩下的还有一个Alibaba自己组件版本不同的地方,Spring Cloud 2021.0.5要求Naocs版本是2.2.0,而我们系统的是2.2.3,难道让我卸载高版本Nacos服务端换成低版本的,生产环境集群也是2.2.3,测试环境换成了nacos2.2.0。如图所示,如果Springboot是2.7.x,选择SpringCloudAlibaba的版本为2021.0.5.0较为合适,实际到了测试环境,项目启动不成功的,难道对SpringCloud的小版本有敏感要求?
2024-12-27 14:45:20
1176
原创 加密算法讲解
SM4是一种对称分组加密算法,由中国国家密码管理局(OSCCA)制定,属于国家商用密码标准(GM/T 0002-2012)。它是中国自主设计的加密算法,主要用于无线局域网的安全保护,并被广泛应用于国密标准的加密通信场景。提供不同安全级别:SHA-1(已弃用),SHA-2(如SHA-256、SHA-512),SHA-3是最新标准。SHA-1已被淘汰,SHA-2(SHA-256、SHA-512等)是目前主流,安全性高。结合非对称加密(RSA/ECC)和对称加密(AES),确保网络通信的机密性和完整性。
2024-12-04 14:35:13
864
原创 开源ERP系统对比与电商履约异构系统协同
ERP 是 企业资源计划系统(Enterprise Resource Planning)的缩写,是一种集成的管理软件系统,旨在帮助企业将各个部门的核心业务功能(如财务、人力资源、采购、库存、销售、生产等)整合在一个统一的平台上,提供实时的业务数据和资源管理。各大电商平台商家订单、运单协同处理SaaS平台,集成了订单管理、运单打印、一键发货、单号分享、物流匹配、查询路由、运费对账、商品管理、库存管理、开放平台等功能,对接主流电商平台超过40家,可打印70+主流快递公司的电子面单,为商家提供方便快捷的服务。
2024-11-19 13:57:15
1828
2
转载 华为云OBS对象存储介绍
Endpoint是用户访问OBS服务的网络地址,不同区域有不同的Endpoint,用户需要使用正确的Endpoint来访问相应区域的OBS服务。开发者可以使用OBS作为应用的后端存储,存储用户生成的内容(UGC),如图片、视频、文档等,支持多种编程语言的SDK,方便集成和使用。配置包括OBS服务的各种设置和管理选项,如存储类别(标准存储、低频访问存储、归档存储)、访问控制策略(ACL)、生命周期管理等。桶是OBS中存储对象的容器,每个桶都有自己的存储类别、访问权限和所属区域等属性。
2024-10-31 10:18:40
153
原创 SpringCloudAlibaba升级手册
Spring Boot 和 Elasticsearch 的版本兼容关系需要根据 Spring Data Elasticsearch 模块的版本来确定,因为 Spring Boot 通过 Spring Data Elasticsearch 来集成 Elasticsearch。https://developer.aliyun.com/article/861163 springboot升级到2.6.1的坑。升级为当前 Spring Cloud 一样的版本。Spring Boot 版本。
2024-10-16 18:01:14
1540
原创 容器技术介绍
与传统的虚拟机(VM)不同,容器不需要包含完整的操作系统,而是共享主机操作系统的内核资源,这使得它们更加高效、快速启动并占用更少的系统资源。换句话说,Node 是一个运行环境,Docker 是容器的运行时工具。节点(Node)、Pod、容器(Container)和应用程序在 Kubernetes 的架构中扮演不同的角色,它们之间有明确的区别,但又密切相关。如果使用其他容器运行时(如 containerd 或 CRI-O),同样的原则适用:通常每个 Node 只会有一个该运行时的实例,管理多个容器。
2024-09-27 14:04:02
1094
原创 信创改造组件技术选型
目录服务发现和注册Sentinel 核心功能典型应用场景gateway网关的主要功能Spring Cloud GatewayKongKong 的主要功能Kong 的架构:Kong 的使用场景:Kong 的部署模式:优势Gateway与Sentinel区别GatewaySentinel核心区别Sentinel与Hystrix区别HystrixSentinel核心区别Spring Cloud Gateway与nginx区别GatewayNginx核心区别Spring Cloud Gateway与kong区别Ga
2024-09-27 14:00:02
1575
原创 省市县相关校验sql随笔
则可以这么写1.自联结:通过 parent_id 字段与同一表中的其他记录联结,以找到区、市、和省的正确层级关系。2.联结条件:d.parent_id = c.id:区的 parent_id 应该等于市的 id。c.parent_id = p.id:市的 parent_id 应该等于省的 id。WHERE 子句:指定区、市、和省的名字和层级。可能不走ELSE,可以把JOIN换成LEFT JOIN,通过将和的条件放在LEFT JOIN中,可以避免WHERE子句排除掉非匹配的行,从而确保。
2024-09-08 20:18:57
585
原创 Spring Boot Admin集成与自定义监控告警
spring.boot.admin.monitor.triggers 是 Spring Boot Admin 的配置项,用于定义在监控应用程序实例时的触发器。通过这些触发器,你可以设定特定的条件,当这些条件满足时,Spring Boot Admin 会执行相应的动作,比如发送通知、触发告警等。该接口返回当前在 Spring Boot Admin 中注册的所有应用程序的信息,包括每个应用的详细实例数据,例如 health、status、managementUrl、endpoints 等。
2024-09-08 19:17:45
2300
1
原创 Java项目服务器CPU飙升问题排查
近期商城订单数量激增,定时任务在处理大数据量时出现性能问题,后续将对此类场景下可能存在的问题进行全面优化,排查线上问题,多使用相关工具,比如Java 命令行工具,可视化软件(HeapAnalyzer等),第三方插件(通过分析,推断可能服务因为CPU资源占用问题向注册中心nacos心跳请求失败,注册中心把服务下线,排除掉代码中可能存在的死循环,线程阻塞的大方向后,随即对异常进程进行分析。功能:MAT是一个强大的内存分析工具,用于分析堆转储文件,帮助开发人员发现内存泄漏和分析内存使用情况。
2024-09-01 10:53:04
1890
原创 vue使用命令随笔
npm config set sass_binary_site http://south.repo.devops.piccnet/generic/picc/binary/node_sass/ 指定node_sass下载地址。npm config set node_gyp /data/devops/apps/nodejs//node-gyp 使用全局安装的 node-gyp 进行项目的编译。Node.js 14.x LTS 版本搭配的 npm 版本通常是 6.x.x 或 7.x.x。
2024-06-30 00:58:29
507
原创 记录一次mysql长事务的经历
项目是springboot+nacos的微服务架构,商城购物类系统,分多个服务,问题出现在多个服务中的会员服务。
2024-06-15 22:30:45
1320
1
原创 IPV6的相关网络问题
在网络架构中,DMZ作为一个独立的网络区段,其目的是提供一个额外的安全层,用于托管对外提供服务的服务器和设备,如Web服务器、邮件服务器和DNS服务器等。当一个仅支持IPv6的设备尝试访问一个只有IPv4地址的服务器时,NAT64设备会将源自IPv6设备的数据包的源地址转换为一个IPv4地址(NAT64设备上的一个IPv4地址)。随着IPv4地址的耗尽和IPv6的逐步部署,NAT64成为了一种重要的过渡技术,它允许IPv6设备访问仅有IPv4地址的服务。随着IPv6的普及,对NAT64的依赖将逐渐减少。
2024-04-11 14:33:31
6402
原创 常见代码漏洞介绍
ESAPI 提供了一系列的安全功能,包括输入验证、输出编码、会话管理、加密和访问控制等,帮助开发人员防御常见的 Web 安全威胁,如 XSS(跨站脚本攻击)、CSRF(跨站请求伪造)、SQL 注入等。这种行为可能是恶意的,旨在隐藏攻击者的活动,模糊攻击的痕迹,或者误导系统管理员、安全团队等人员的调查方向。这可能包括添加不存在的事件,或者伪造与真实事件相关的日志信息。总的来说,ESAPI 是一个强大的工具,旨在帮助开发人员构建更安全的 Web 应用程序,减少安全漏洞的风险,并保护用户数据的安全。
2024-03-29 15:59:26
1758
原创 Nginx的预定义变量
proxy_add_x_forwarded_for 表示NGINX在转发请求时会将客户端的原始IP地址添加到已有的 X-Forwarded-For 字段中。$host 表示客户端请求中的主机名,$server_port 表示NGINX服务器的端口号。总的来说,这些配置是为了确保NGINX作为代理服务器时能正确地传递客户端的请求信息给后端服务器,并且保留了客户端的真实IP地址和请求路径。main: 这是日志格式的名称。在NGINX的配置文件中,可以定义不同的日志格式,main 是其中一个预定义的日志格式。
2024-03-29 15:27:40
871
原创 什么是IssS,PaaS和SaaS及其区别
Infrastructure-as-a-Service(基础设施即服务)提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。公平的说,SaaS和ASP的差异一直就比较模糊,它们的区别有各种各样的说法,但提出ASP概念的厂商已经不多了。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器、,防火墙,、负载均衡器等)的控制。
2024-03-21 13:19:37
2310
原创 压力测试工具-Jmeter使用总结
压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面使用一款压力测试工具JMeter。Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
2024-02-02 19:37:31
1557
原创 程序拓展与自定义的方法总结
比如代码中的 T ,我们可以换成 A-Z 之间的任何一个 字母都可以,将T换成了A,在执行效果上是没有任何区别的,只不过我们约定好了T代表type,所以还是按照约定规范来比较好,增加了代码的可读性。构造方法在实例化的时候调用的,而子类既然继承了父类,那就具备了父类所有的属性以及方法,当子类实例化的时候就先调用父类的构造了,如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其它构造方法,则会默认先调用父类的无参构造方法。在接口中,所有方法都是抽象的。
2023-12-22 17:00:03
1517
1
一个Java初学者代码练习集合(适合Java初学者查看).zip
2023-01-30
人机猜拳游戏(适合Java初学者查看).zip
2023-01-30
图表大屏展示-layui.zip
2023-01-30
Java多线程(适合Java初学者查看).zip
2023-01-30
动物园管理系统(适合Java初学者查看).zip
2023-01-30
电影院售票系统(适合Java初学者查看).zip
2023-01-30
Socket编程(适合Java初学者查看).zip
2023-01-30
Java基础-IO流(作业,适合Java初学者查看).zip
2023-01-30
rabbitmq简单示例
2019-11-08
可拖拽布局组件easyui-portal
2018-12-24
XML帮助文档
2015-01-27
JAVA Web应用常见漏洞与修复建议
2023-12-09
Javascript之BOM与DOM讲解
2023-02-09
英语语法学习总结.doc
2023-01-31
HTML登陆页面案例收藏.zip
2023-02-02
canvas动画学习案例.zip
2023-02-02
最强大脑-高效记忆方法.docx
2023-02-02
Java相关思维导图.zip
2023-01-31
音标音节与词根词缀整合版.doc
2023-01-31
通过feemarker导出Word示例.zip
2023-01-31
Java开发WeChat公众号、企业号通用模块.zip
2023-01-31
基于JBPM工作流的OA办公系统.zip
2023-01-31
Java图形界面实现进度条练习(适合Java初学者查看).zip
2023-01-30
Html5网页小游戏源码.zip
2023-01-31
Java图形界面编程练习(适合Java初学者查看).zip
2023-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人