- 博客(401)
- 资源 (1)
- 收藏
- 关注
原创 汉码打印机 ZPL 指令集操作
一、 背景汉码打印机 ZPL 指令集操作,建议开发方式使用ZPL指令集写个文本模板,采用字符串替换方式使用模板,也可以引入一些脚本参数。二、 开发注意事项1、 总宽度最大打印宽度108mm每毫米8个点,可以8X标签宽度,得出宽度的点数,然后再根据位置来设置打印起点2、 计算标签偏移量标签宽度60 mm,长度70 mm偏移量 = (108-60)/2*8= 192由于激光头...
2024-08-09 15:14:57
1374
原创 NUXT简介
一、概述通常使用 VUE 开发的是单页应用,简称SPA。随着工程不断变大,打包文件不断增长,页面的整体刷新加载速度慢慢成为瓶颈,越来越无法满足业务对页面响应速度的要求。单页应用由于主体是一个大的js,对搜索引擎不友好。因而开发方式又讨论到SSR方案(服务端渲染),这是传统的开发方式,比如JSP,PHP,thyemeleaf 等。它是在服务端生成HTML,返回给浏览器使用。SSR的优点:1、对...
2024-03-05 23:00:40
491
原创 XSS跨站请求攻击
一、前言XSS 即 Cross Site Script,跨站脚本攻击;缩写应该是 CSS,但为了和 CSS(Cascading Style Sheet,层叠样式表) 有所区分,因而改叫 XSS也就通过利用网站漏洞,通过网址,输入框等方式构造恶意脚本( java script) ,用脚本进行攻击的一种方式。二、概述案例新浪微博 XSS 漏洞1) 攻击者发现漏洞:发现 http://...
2024-02-29 21:16:41
363
原创 冒充用户转账(CSRF跨域请求伪造攻击)
跨站请求伪造(Cross Site Request Forgery), CSRF是一种网络攻击,欺骗受害者在登录状态下访问一个恶意网址,自动发送一个伪装成受害者请求来欺骗执行非法操作,从而实现攻击目的。这个过程是怎么发生的呢?(1)先要发现漏洞,比如某银行的网址是 http://bank.com,在登录后转账时的请求是: https://bank.com/transfer?account=...
2024-02-28 21:08:46
409
原创 Linux下的free命令
一、简介free命令是最经常使用的命令之一,用于查看内存使用情况。free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。image.png二、free命令说明2.1 命令行说明命令格式 free [参数]常用方法 free -m 这里的m 表示 以 MB 为单位查看内存情况,你可以可以用 -g 以 GB ...
2024-02-28 17:44:57
239
原创 Java使用JCEF开发 windows桌面应用
一、写在前面以前写windows桌面应用首选用C#,当然是最好用的解决方案之一。这些年用java,才发现着实费劲,最近这些年随着硬件的能力提升,使用H5开发各种移动应用,桌面应用的方法也逐渐变得可行。本文记载了我用JCEF开发windows桌面应用的一种方法。先了解一些:CEF是什么? Chromium Embedded Framework (CEF)是个基于Google Chromiu...
2024-01-17 13:46:31
2235
原创 使用Onlyoffice 实现web版的Word,Excel 协同办公套件
一、写在前面像在线文档工具市场上很很多了,比如腾讯文档,石墨文档等。都已经提供了像word,exce,powerpoint 这样的功能,这些文档工具很优秀,使用起来非常的方便,但在中小规模的公司项目集成上使用就不是那么合适了,这时基于开源文档工具的定制化集成的方式可作为一个选择。OnlyOffice 就这样的一个优秀的文档服务平台。ONLYOFFICE Docs 是一个开源办公套件,包括文本...
2023-04-27 11:03:49
132
原创 使用 Luckysheet 可实现 Web 的 Excel
一、写在前面工作中会遇到excel的导入和导出,换个角度看,假如有个 web 版本的excel ,且能上传现有的,修改编辑后再下载也是个不错的方案。 Luckysheet 是实现 web版Excel的一个优秀的框架。Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。功能强大:包含大量常用电子表格功能,替代你的excel配置简单:最少的配置就能开...
2023-04-26 10:58:07
1840
1
原创 Spring Statemachine的应用
一、背景在开发中总会遇到这样的场景,比如工单状态,流程状态,通过状态判断该执行的操作,不断改动的需求导致永无止境的 IF、ELSE 和 BREAK 子句的层次结构,当事情开始看起来太复杂时,简直就像面满池子的海洋球。办公审批流程相关的可以使用工作流框架解决此类问题。轻量级的稍微复杂些的状态控制可考虑使用 状态机 来帮助梳理结构,把状态的控制和流转集中管理。状态机之所以强大,是因为它们的行为始...
2023-04-25 11:02:55
109
原创 在Minio以STS方式获得临时凭据上传文件
一、写在前面一个常见的场景是:需要让客户端来上传图片,面临的安全性问题。给与客户端永久凭据无疑是很大风险的,我们还可以选择“给予一个临时凭据,这个凭据关联到一个 授权的用户,我们可以随时停用和修改这个用户具有的权限”Minio提供了STS 的方式来实现这个方法。MinIO安全令牌服务(STS)API允许应用程序生成用于访问MinIO部署的临时凭据。参考https://min.io/docs...
2023-04-12 16:52:20
3560
原创 自建Docker私有仓库Harbor
一、写在前面提高软件团队效率的方式之一是实现CICD(持续构建部署),基于Gitlab,Jenkins搭建一套流水线作业过程,可以很方便的做到从提交代码到部署到目标机器上。现代部署的方式大多会采用Docker部署,而使用Docker Hub 比较慢,可以选择自建一个Docker仓库来使用。本文 是一个 Harbor 来搭建私有仓库。二、准备工作2.1 下载 Harbor 离线安装包前往 h...
2023-03-14 21:05:25
144
原创 feign打印日志的方法
一、场景开发过程中,有时候需要查看 feign 的日志,那么怎么打开呢二、步骤(1) 写一个 FeignConfig 类,设置 feign 的日志级别public class FeignConfig { @Bean public Logger.Level level() { return Logger.Level.FULL; }}(2) 应用 F...
2023-02-16 11:00:14
54
原创 Maven插件方式执行CheckStyle并自定义风格文件
一、写在前面代码风格包含了变量的命名,缩进,注释等内容,在团队开发中,多人协同开发要避免各种风格混合带来的混乱,统一的代码风格是必须的。在开发过程中,我们可以使用一些工具来改进这一状况,比如 checkStyle 工具。二、开始Checkstyle 是一种用于检查 Java 源代码是否遵守代码标准或验证规则集(最佳实践)的工具。它由这些组成:执行程序:即 checkStyle 的执...
2023-01-03 22:25:36
145
原创 使用geoserver-manager库操作geoserver发布图层
一、写在前面geoserver 提供了地图服务,可以通过它提供的 web 管理页面,创建存储库和发布图层。在实际使用中总不能每次都人工操作,太不方便了,往往还要和你的业务系统交互,在你的业务系统管理tiff 文件并发布。这个时候 geoserver-manager库就派上用场了,它封装了 geoserver 的一些 REST 接口,可以在你的Java项目中调用这些接口来实现你的需要。二、主要内...
2022-12-30 13:25:59
1486
原创 使用天地图加载Geoserver的图层
一、写在前面在项目中往往使用地图作为底图(比如 天地图卫星图等),再其上覆盖你的通过geoserver发布自定义图层。本文记录了我的实现方法。二、过程2.1 我遇到的难题遇到难题1:使用无人机拍摄制作的正射影像图有几百MB甚至1个G,直接展示图片方式会很卡顿。我的解决方法是,使用geoserver作为 GIS 地图服务,发布 GEO TIFF 图层,再在Openlayers 中展示。遇...
2022-12-29 13:33:35
2100
原创 Spring Cloud Gateway微服务网关
写在前面网关为微服务架构的系统提供简单、有效且统一的API路由管理,作为系统的统一入口,提供内部服务的路由中转,给客户端提供统一的服务,可以实现一些和业务没有耦合的公用逻辑,主要功能包含认证、鉴权、路由转发、安全策略、防刷、流量控制、监控日志等。GateWay : 是Spring Cloud的一个全新的API网关项目,基于性能的Reactor模式响应式通信框架Netty,异步阻塞模型 等技术开...
2022-10-17 17:19:55
240
原创 sentinel和本地配置规则文件
写在前面随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。概念资源,可以是任何东西,服务,服务里的方法,甚至是一段代码。使用 Sentinel 来进行资源保护,主要分为几个步骤:定义资源定义规则检验规则是否生效先把可能需要保护的资源定义好,针对资源配置各种流量控制规则,就可...
2022-10-16 21:31:29
468
原创 springboot 日志跟踪(skywalking)
1、背景上了 springboot 微服务框架后会有很多微服务,每次都到单个微服务自己的日志海洋里去找需要很大经理,日志跟踪就会成为一个麻烦。我们尝试来寻找一个简化方案skywalking 可以在不修改任何代码的情况下,帮你生成调用跟踪链路,而且描述了各个链路的调用时长,相关日志。非常的强大。2、skywalking 介绍skywalking,分布式系统的应用程序性能监控工具,专为微服...
2022-09-28 11:18:47
501
原创 springboot 日志跟踪(zipkin)
1、背景上了 springboot 微服务框架后会有很多微服务,每次都到单个微服务自己的日志海洋里去找需要很大经理,日志跟踪就会成为一个麻烦。我们尝试来寻找一个简化方案2、了解 SleuthSpringCloud Sleuth主要功能就是在分布式系统中提供追踪解决方案。它大量借用了Google Dapper的设计, 先来了解一下Sleuth中的术语和相关概念。官网:https://s...
2022-09-28 03:18:54
449
原创 zookeeper分布式锁
场景“分布式锁”是用来解决分布式应用中“并发冲突”的一种常用手段,实现方式一般有基于zookeeper及基于redis二种使用基于zookeeper的分布式锁所需组件:zookeeper服务Curator 客户端启动zookeeper一般是集群部署,启动zookeeper服务端。java 代码Curator 是一个 基于 zookeeper服务 的客户端工具curato...
2022-09-27 19:02:56
379
原创 使用redis实现排行榜
写在前面排行榜在很多地方都能使用到,redis的zset可以很方便地用来实现排行榜功能。本文是一个示例。聊聊 zsetZSet 是有序集合,redis的有序集合与集合一样也是String类型元素的集合,不允许有重复的元素。 每一个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合中的成员是唯一的,但是分数可以重复。集合是通过哈希...
2022-09-27 11:02:51
3279
原创 Redis 分布式锁2
场景一般电商网站都会遇到秒杀、特价之类的活动,大促活动有一个共同特点就是访问量激增,在高并发下会出现成千上万人抢购一个商品的场景。虽然在系统设计时会通过限流、异步、排队等方式优化,但整体的并发还是平时的数倍以上,参加活动的商品一般都是限量库存,如何防止库存超卖,避免并发问题呢?分布式锁就是一个解决方案。“分布式锁”是用来解决分布式应用中“并发冲突”的一种常用手段,实现方式一般有基于zookee...
2022-09-24 01:25:51
270
原创 elasticsearch 学习笔记01
背景本文是学习 elasticsearch 时的学习笔记关键概念倒排索引ES 对它的最小词源(Term) 维护了一个“倒排索引”,即 “从 最小词源 到文档ID 的映射”。在文档入库时会先分词,完成后可查询。当查询时,比如 中国,人民 这样 的词,在查找时它所对应的 数据记录的ID有,1,14,1001 这样的数据ID。es 把这些ID的记录包含组成结果返回就是查询结果了。数据对应关系...
2022-09-24 01:22:13
584
原创 Redis 分布式锁
场景一般电商网站都会遇到秒杀、特价之类的活动,大促活动有一个共同特点就是访问量激增,在高并发下会出现成千上万人抢购一个商品的场景。虽然在系统设计时会通过限流、异步、排队等方式优化,但整体的并发还是平时的数倍以上,参加活动的商品一般都是限量库存,如何防止库存超卖,避免并发问题呢?分布式锁就是一个解决方案。“分布式锁”是用来解决分布式应用中“并发冲突”的一种常用手段,实现方式一般有基于zookee...
2022-09-23 11:04:37
383
原创 hadoop安装
安装准备环境# 关闭防火墙,方面后面浏览器访问测试systemctl stop firewalldsystemctl disable firewalld# 添加IP地址映射,方便后面地址配置vim/etc/hosts192.168.1.89 hadoop01# 配置SSH免密登录,方便后面服务启动ssh-keygenssh-copy-id hadoop01安装JDK...
2022-09-23 03:06:37
387
原创 JUC并发包系列:Semaphore
介绍Semaphore是一个有效的流量控制工具,它基于AQS共享锁实现。我们常常用它来控制对有限资源的访问。每次使用资源前,先申请一个信号量,如果资源数不够,就会阻塞等待;每次释放资源后,就释放一个信号量。它通过控制信号量的总数量,以及每个线程所需获取的信号量数量,进而控制多个线程对共享资源访问的并发度。Semaphore一般用于流量的控制,特别是公共资源有限的应用场景。例如数据库的连接的...
2022-09-22 05:25:55
376
原创 JUC并发包系列:CyclicBarrier
介绍CyclicBarrier 一种同步辅助工具,它允许一组线程相互等待以达到共同的障碍点。CyclicBarriers 在涉及固定大小的线程组的程序中很有用,这些线程组必须偶尔相互等待。屏障被称为循环的,因为它可以在等待线程被释放后重新使用。主要方法构造方法:public CyclicBarrier(int parties, Runnable barrierAction) 参数:...
2022-09-21 16:46:48
156
原创 JUC并发包系列:CountDownLatch
介绍CountDownLatch 是一种同步辅助,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。CountDownLatch 使用一个指定 数 进行初始化,await方法一直阻塞,其他线程调用 countDown方法 直到当前计数达到零,之后所有等待的线程都被释放,任何后续的await调用立即返回。这是一次性的现象(计数无法重置)。如果您需要重置计数的版本,请考虑使用Cycl...
2022-09-21 12:57:19
131
原创 使用 Docker 部署的微服务在 Nacos 里注册成内网地址 导致无法微服务间互相调用的解决方案...
使用 Docker 部署的微服务在 Nacos 里注册成内网地址 导致无法微服务间互相调用的解决方案遇到问题:一般情况下,微服务采用docker部署,通常默认采用 bridge 桥接的网络模式,docker 会自动分配一个 172.x.x.x 这样的私有内网地址,存在这样的难题:由于是 172开头的内部网络地址, 在本机的docker 内是可以访问,而 跨主机 就无法访问。在使用了nac...
2022-02-26 21:09:59
6995
4
原创 Spring Boot 的 Actuator 模块和内置监控端点
1. 背景Spring Boot 包含许多附加功能,可帮助您在将应用程序推送到生产环境时监控和管理应用程序,其中 Actuator 组件可帮助开发者监控了解应用的运行状态。2.知识Actuator 模块Spring Boot 提供了 Actuator 模块。Actuator 翻译过来就是执行器。它是一个制造术语,指的是用于移动或控制某物的机械装置。Actuator 的端点Actu...
2021-10-09 11:11:34
407
原创 任务调度框架 Quartz
1. 背景在软件开发中经常会遇到使用任务调度的情况,比如需要定时,或者某个时刻执行某项任务。Quartz 是一个在java开中优秀的可选框架。2.知识什么是 Quartz 作业调度库?Quartz 是一个Java下作业控制的开源框架。用来创建或简单或复杂的调度时间表,执行Java下任意数量的作业。示例用途:驱动流程工作流:比如下新订单时,安排一个作业在 2 小时内触发检查该订单的...
2021-10-08 20:46:34
263
原创 使用 Spring Cloud Alibaba Sentinel 的熔断降级保护微服务应用
1. 背景随着微服务的流行,服务和服务之间的稳定性变得越来越重要。以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。1. Sentinel 介绍Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。1.1 知识Sentinel 的组成:(1) Sentinel 核心库, 即基本的类库的使...
2021-09-27 09:20:12
356
原创 Maven 跳过单元测试
1、背景Maven 构建生命周期为我们提供了对项目执行各种操作,例如验证,清理、打包、测试和部署项目。而有时候我们需要跳过单元测试,例如,在处理新模块时,还有未通过的单元测试时。在这些情况下,我们可以跳过测试以避免编译和运行测试时发生的时间。在本文中,我们将了解可用于跳过 maven 项目中的测试的各种方法。2、几种跳过的方法可以在插件标签的配置中设置跳过测试元素属性。通过在 Mave...
2021-09-23 16:57:50
5692
原创 Nacos 学习笔记2 - 搭建 Nacos 集群
1. 背景生产环境中往往采用集群的方式保证Nacos的高可用,本文记录了搭建的过程。Nacos集群的搭建时要注意:1.xx 版本和 2.xx 版本有区别。从2.0开始Nacos使用了 gRPC ,需要开放额外的端口。我就遇到了 各个 Nacos 节点无法互相复制,注册的服务不一致的情况。2. 安装Nacos集群模式部署这个快速开始手册是帮忙您快速在你的电脑上,下载安装并使用Nacos,...
2021-09-13 20:02:14
410
原创 Linux (中标麒麟)离线安装 Python
1. 背景本文记录在 Linux (中标麒麟)离线安装 Python 的方法和过程2.思路安装过程需要中需要安装依赖包和gcc ,然后编译安装Python,在线安装直接用 yum install 即可。而离线安装首先要获得 适配操作系统的依赖包。而逐个去寻找依赖包是很麻烦的过程,幸好yum 提供了离线下载依赖包到某个目录的方法,我们可以下载到本地,在复制到目标机器上来安装。仅仅下载到指定...
2021-09-13 01:04:14
4633
原创 Nacos 学习笔记
1. 背景最近的一个趋势是Eureca用的少了,都在推荐使用Nacos ,本节我们学习Nacos。2.知识一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。官方主页: https://nacos.io/Nacos 是什么?Nacos 是 注册中心(Service Registry)和 配置中心(Config Center) ,也可以仅作为注册中心使用。三个关键特性:...
2021-09-04 20:36:32
149
1
原创 修改nacos源码增加对达梦数据库的支持
1. 背景Nacos 提供了文件存储和mysql存储两种方式,本文记录了如何增加对 达梦数据库的支持。2. 实现思路采用的方式:修改nacos源码增加对达梦数据库的支持我修改后的放到github了,地址:https://github.com/vir56k/add_nacos_support_dameng下面说下修改过程。3. 操作过程3.1、获得源代码从 Github 上下载源码...
2021-09-04 12:40:57
1170
1
原创 camunda 工作流学习笔记2 - 任务的多实例特性(Multiple Instance)
1. 背景在工作流中会有遇到这样一个"多个人处理同一个任务“的情形,在 camunda 中可以使用“任务的多实例”来实现。2.知识场景比如遇到下面的场景:一个审批任务可由 经理或者副经理 其中的一个人审批即可通过。一个填报任务,要由组员A填报一半的内容,且组员B填报一半的内容,都填完了才算完成。这时,可考虑使用“任务的多实例”任务的多实例( Multiple Instance...
2021-08-19 12:09:37
3377
1
原创 camunda 工作流学习笔记1- 基础知识
1. 背景本节学习 camunda 工作流引擎。2.知识camunda 是一款开源的工作流引擎,支持随时随地自动化任何流程。特点:端到端编排业务-IT 协作开发人员友好开放式架构过程:1、使用建模工具 ( Modeler.exe ) 进行建模,输出 流程模型 bpmn 文件。2、启动 camunda 平台,并将 bpmn 部署到 camunda 平台。3、即可启动一...
2021-08-15 13:52:01
1271
原创 Spring 事务管理
1. 背景本节学习在 Spring 框架中使用事务。2.基础知识数据库事务( Transaction):是指操作数据库的一组操作序列,它可能包含查询或者更新操作,这组操作在执行过程中是一个逻辑单位,要么一起成功,要么一起失败。事务的基本概念事务包含了一个序列的对数据库的读/写操作,具有以下特性::1、提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持...
2021-08-05 13:33:24
111
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人