自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 nacos适配达梦数据库

找到 com.alibaba.nacos.Nacos类,启动即可,或者加入 -Dnacos.standalone=true 参数单机启动,集群启动需要在 用户文件夹下的 nacos/conf 下放置 cluster.conf 文件。或者:mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U -Dcheckstyle.skip。获取达梦数据库驱动,驱动包在安装目录的jdbc下,该驱动包是windows安装包里勾选了驱动,才会生成这些驱动。

2023-11-14 03:04:08 1680

原创 达梦数据库安装

达梦数据库官网:https://www.dameng.com/ ,参考文档如下:最后的文档地址为:Docker安装 | 达梦技术文档 docker基本按照官网来就行,点击相应的链接下载镜像包。复制到linux中,然后加载镜像,最后运行,基本就是复制官网的命令运行就行。最后的管理员账号/密码是:SYSDBA/SYSDBA001。 注意:docker安装没有客户端的,需要进行windows安装才能连接达梦数据库查看数据。windows安装包里含有达梦数据库的服务端和客户端。

2023-11-14 00:26:58 313

原创 xxl-job源码改造集成:适配opengauss数据、适配单点登录等

公司现在打算重构产品,将原来的quartz替换成xxl-job,主要因为quartz不能动态发布任务,而xxl-job开箱即用,还支持一系列新特性,有 动态编写任务、调度中心和执行器高可用(可集群部署)、任务路由策略多样、 弹性扩容、失败重试 等。xxl-job架构分为管理端(调度中心)和客户端(各应用执行器),由调度中心调用各执行器执行任务,而且它有自己的用户和角色以及页面,目前只有mysql初始化脚本。因此公司产品集成xxl-job,主要有以下几点需要集成:

2023-07-02 20:13:26 1190

原创 Java中==和equals的区别,包装类对比、String和new String

可以看出,无论哪种方式访问基本类型和引用类型的实例数据,基本类型的内存上是保存值,而引用类型的内存上是保存指针(地址)。 String不用new声明,首先会在常量池中找字符串值,若有则该变量保存的是这个字符串值的地址,若没有找到字符串值 == 可以理解为比较图中栈内存的数据。所以基本类型就是比较值,引用类型就是比较地址。equals是个方法,只有引用类型才能调用,基础类型如int等是无法调用的。该方法在Object中就存在,实际就是调用 ==来比较,代码如下:

2023-06-27 02:18:24 1802

原创 Nacos报9848

问题:Connection refused: no further information: localhost/0:0:0:0:0:0:0:1:9848这里是springboot集成springcloud后,把application.yml改成bootstrap.yml就可以了,不然读取不到nacos配置。

2023-06-26 01:28:39 2117

原创 十大排序算法

一、概览 排序算法基本分为:选择排序、冒泡排序、插入排序、希尔排序、快速排序、堆排序、归并排序(合并排序)、计数排序、桶排序、基数排序。 其中,冒泡排序和快速排序属于交换排序,插入排序和希尔排序属于插入排序,选择排序(简单选择排序)和堆排序属于选择排序。

2023-06-26 01:00:47 963

原创 系统分析师:全程指导例题

题解:这里假设能并行处理,画流水线时空图如下:这里可以看到,处理4个数据需要15At,因此实际速率是4/15At,流水线效率为忙碌时间与总时间对比,也可以看成忙碌时空区/总时空区,即6*4/15*4=2/5。选择D和B。另外:加速比则是不启用流水线和启用流水线的时间比。

2023-05-31 15:39:20 834

原创 系统分析师:七、软件工程(含系统规划)

瀑布模型也称为生命周期法,它仅适用于需求明确或变更非常少的项目。系统规划步骤有:1、对现有系统进行初步调查;2、分析和确定系统目标;3、分析子系统的组成和基本功能;4、拟定系统的实施方案;5、进行系统的可行性研究;6、制定系统建设方案。

2023-05-31 15:36:31 1208

原创 Mybatis plus:兼容多数据库时解决databaseId为空问题

用调用xml的SQL报错 Invalid bound statement (not found),离谱的是调用部分数据源pg数据源正常,调用mysql数据源就包这个错,debug发现原始的configuration的statusments里就没把这个xml的方法加载进去。很明显,配置的DatabaseIdProvider的key和数据源的数据库名称没匹配上!这个配置加上那个源码解释了pg可以而mysql不行的原因,所以将其中的Mysql改成MySQL就行了。

2023-05-19 19:52:05 1775

原创 Push rejected,用Git修改已提交的注释

问题:有时候因注释与git规定的模板不匹配,会导致远程提交被拒绝 Push rejected,解决:修改不符合规范的注释再push即可。

2023-05-19 13:24:47 1136

原创 Linux安装GitLab

公司或组织经常用Gitlab做为代码仓库,这里我也安装下Gitlab,为后面CI/CD集成打下基础,官方安装地址:https://about.gitlab.com/install/#centos-7。不过官网很多人说比较坑,这里就不用官方方法安装了。

2023-05-18 18:44:12 1305

原创 系统分析师:六、企业信息化战略与实施 练习题

题解:七大产业为:节能环保、新一代信息技术、生物、高端装备制造、新能源、新材料、新能源汽车。

2023-05-16 10:16:22 287

原创 系统分析师:六、企业信息化战略与实施

维纳:信息就是信息,就不是物质也不是能量。香农:信息就是不确定性的减少。哲学界:信息是事务普遍联系的方式。其它:信息是事先不知道的报导。个人理解:信息是事务或事件的描述。

2023-05-15 15:22:36 185

原创 系统分析师:五、系统配置与性能评价 练习题

题解:按公式 R=1/(1-F+F/S),F为组件的时间占比,S为组件的提升速度。可得加速比为:1/(0.4+0.6/5)=1/0.52=1.923。

2023-05-15 09:21:21 148

原创 系统分析师:五、系统配置与性能评价

比如:系统优化前总共时间就是10s其它组件5s,组件优化前需要5s,比例各为1/2。用公式 R = 1/(1-F+F/S) = 1/(1-0.5+0.5/10)=1/0.55。阿姆达尔定律:对系统某组件采用某种更快的执行方式,所获得的系统性能的改变,取决于该组件的使用频率,或所占总执行时间的比例。T(优化后)=T(优化前)×(1-F+F/S) =》 R = 1/(1-F+F/S)其中 1-F 为其它组件的运行时间比例,F/S 为优化后的时间比例。加速比:优化后的执行时间/未优化的执行时间。

2023-05-12 15:54:00 305

原创 系统分析师:四、数据库系统 练习题

题解:这里三个实体都有多对多联系,因此关系有:A-B、A-C、B-C、A-B-C。可以转化出4个关系模式。

2023-05-10 15:12:14 108

原创 系统分析师:四、数据库系统

比如(学号,身份证号,姓名,部门号,部门名称,部门位置),其中学号和身份证号为候选键,学号为主键,虽然它们满足了1NF和2NF,但由于有【学号/身份证号->部门号->部门位置/部门名称,部门号≠>学号/身份证号】的传递依赖,因此违背了第三范式。比如:原关系模式为 成绩关系(学号,姓名,课程号,课程名,分数),有函数依赖:学号->姓名,课程号->课程名,(学号,课程号)->分数。超键可以是(学号,姓名)、(身份证号,年龄)。所以成绩表可以变成(学号,课程号,分数,姓名,课程名),能还原成原关系模式。

2023-05-10 15:11:57 86

原创 系统分析师:三、数据通信与计算机网络 练习题

题解:网桥和交换机连接网络图如下:网桥和交换机都是属于第二层(数据链路层)设备,第一层设备就是网桥的那个红点(集线器)以及光纤或网线等。网桥和交换机都是用来转发数据。网桥一般只有两个端口,分别连接两个网,但同时只能给其中台计算机通信。交换机有多个端口,可以连接多个网络或计算机,能同时给多个网或计算传输数据。交换机虽然端口少,但转发过滤分组等硬件不支持,需要软件实现分组过滤,而交换机硬件就支持分组过滤,比网桥更专业些,因此网桥转发慢,A错误。

2023-05-08 14:29:14 299

原创 README.md编写

项目一般会有个描述文件,对于项目的代码来讲,这个描述就是README.md文件,可以描述各模块功能、目录结构等。该文件可以方便让人快速了解项目的代码结构和功能。当然,若要深层次的了解项目,就得看项目总体的需求规格说明书、概要设计说明书、详细设计说明书了。

2023-05-05 15:49:33 2726

原创 系统分析师:三、数据通信与计算机网络

主要考网络,比如7层模型、tcp/ip,网络规划与设计、网络应用、网络存储、特殊IP地址、综合布线、物联网,云计算。

2023-04-25 15:37:28 516

原创 系统分析师:二、操作系统基本原理

操作系统一般有处理机管理(进程管理)、存储器管理(内存管理)、设备管理、文件管理和用户接口5种主要功能。处理机管理:负责对处理机的分配和运行实施有效的管理。多道程序下,处理机分配运行是以进程为单位,因此处理机管理也称为进程管理。存储器管理:对内存进行分配、保护、和扩充。设备管理:对设备按一定原则进行分配,为了让主机和设备并行工作,常需要用缓冲技术和虚拟技术;设备传输控制是指实现物理的输入输出(I/O)操作,即启动设备、中断处理、结束处理等;设备独立性是指用户向系统申请的设备与实际操作的设备无关。

2023-04-24 02:00:53 242

原创 系统分析师:二、操作系统基本原理 练习题

全文件名为:绝对路径+文件名。相对路径为当前目录开始到目标目录的路径。绝对路径和相对路径不包含最后的文件名,只包含目录名。

2023-04-24 02:00:13 108

原创 系统分析师:一、计算机组成与体系结构 练习题

MPP是一种异步的分布式存储器结构的MIMD系统,它的程序有多个进程,分布在各微处理上,各进程有自己的存储空间,可以运行各自的任务以及进行消息传递。所以近距离用并行,速度快,而远距离用串行,成本低,光纤也是串行的,即A和B错误。FRU:留下最近使用的数据,即淘汰长时间不用的数据,只需对比最后的使用时间即可,无需计数。题解:总线时钟频率10MHz,即每秒运行10M个时钟周期,一个总线周期需要2个时钟周期,因此每秒运行5M个总线周期,而一个总线周期传输4b信息,所以带宽为20Mbps。

2023-04-17 17:52:22 135

原创 磁盘的移臂调度算法

访问磁盘,首先要找到数据,但机械硬盘并不是直接电子读取,是需要移动磁头到相应的数据块上才能读取的,即需要磁头移动到目标柱面(磁道),然后磁片旋转使磁头能访问到相应扇区,进而读取到数据。根据访问者指定的柱面位置(磁道)来决定执行次序的调度称为移臂调度。目的就是尽可能减少寻道时间。

2023-04-13 12:43:46 2016

原创 系统分析师:一、计算机组成与体系结构

这里对应系分教程的第6章:系统配置与性能评价。主要核心内容有:编码及浮点数运算、Flynn分类法、CISC与RISC、存储系统、嵌入式系统、系统可靠性计算。

2023-04-12 01:06:14 244

原创 Flyway:数据库表版本管理,与springboot集成

我们开发或升级项目会碰到很多数据有关问题,比如:这个环境找不到原始的DDL记录、这个环境是否运行了最新的SQL、这个环境运行了哪些SQL、每次更新发版需要先写脚本更新SQL再更新应用、对于老旧项目数据升级或迁移异常困难... 针对这些问题,我们都需要需要一个记录并运行SQL的工具。我们可以手动开发一个工具,用数据表记录项目变更运行的每句SQL,再和项目特定SQL目录下的SQL语句对比,然后再执行那些未执行过的SQL。当然,目前也有这种开源的SQL版本工具,这就是Flyway。

2023-04-04 17:05:47 1231

原创 TCP/IP协议

摘要 网络之间需要传输信息,那么各个计算机设备应该怎样传输信息,这就是网络协议定义的内容了。对于这个标准制定,主要有两个协议:TCP/IP模型和OSI模型。注意TCP/IP是现在网络设备已大量使用的协议,而OSI是个参考模型!且TCP/IP先被提出使用,OSI是后续提出来的。OSI模型 主要分为七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,它们的作用以及使用的实际协议如下:

2023-03-30 20:41:47 479

原创 jsoup+httpclient 抓取网页并解析网页

上面用Hutool的HttpUtil进行查询页面,接着哟昂Jsoup将页面转化为Document,再用选择器筛选出a标签,再轮询获取href属性的链接,最后一一访问。

2023-03-30 15:28:17 529

原创 NIO 缓冲区

buffer若不需要追加读,则只需要 get()读取前调用flip()方法从头读取,put()方法前调用clear()重置position从头写入覆盖历史数据。buffer需要追加读,则put()前需要调用mark()记录下写入的起始点,写完后直接调用reset()将position调整为新内容的起始点mark。接着再调用get()方法进行读取。

2023-03-30 15:08:43 619

原创 NIO Reactor模型(含代码)

概览 我们知道NIO就是调用系统内核的的select/poll/epoll方法来实现,这些系统内核方法会扫描或监控IO,每次将所有的IO的状态返回给NIO线程。让NIO线程可以选择处理读取可读状态的IO流,也可以选择继续监控轮询监控IO的其它状态。reactor模型也叫做Dispatcher模型,即分发模型,NIO中分发线程和处理线程策略不同而衍生出了四种网络编程模型:单Reactor单线程、单Reactor多线程、多Reactor多线程。

2023-03-29 21:03:50 1469

原创 IO的类型(BIO、NIO、AIO)

首先,我们需要明白什么是IO?IO从字面意思可以理解为输入输出,对于Java进程来讲,输入就是将数据输入到Java内存的缓存区,供Java读取使用,输出就是Java进程将数据写入到缓存区,进而输出到文件或网络数据流。IO有两种:File IO和Stream IO,其中File IO缓存区图如下: I/O就是对缓存区的读写,可以看出InputStream.read()实际就是调用底层的“read()",将内核缓冲区的数据写入到Java进程的缓冲区,而OutputStream.write()就是

2023-03-29 17:12:19 1680

原创 Java容器类详解(Collection与Map,含多线程性能对比)

Collection细分为Set、List、Queue,无key,直接存储数据元素。而Map不但存储数据元素,还有key进行映射。List List是一个有序集合,主要有:ArrayList、LinkedList、Vector、CopyOnWriteArrayList,它们的各自特点如下: ArrayList 底层是数组,内部维护Object[]。它线程不安全,查询快,但增删慢,物理内存是连续的。线程不安全是若多线程同时给线程添加数据,可能出现多个线程读取到同一个副本然后都将添加后

2023-03-23 18:59:00 1033

原创 字符编码对比(GBK、Unicode、UTF-8)

摘要 我们在网上能看到各种文字和符号,那么它们是怎么存储和转化的,还有我们常常提及的UTF-8,为什么都要设置这种编码方式,这里就探讨下。字符集 字符集:就是各国文字、符号、数字的集合。常见的字符集有:ASCII字符集、GBK字符集、GB18030字符集、Unicode字符集。 ASCII字符集:美国早期制定的字符集,定义了一共128个字符。这些字符有:大小写字母、0到9数字、空格符、退格、换行符、大于小于等字符。内容有限,只能表示128个基本字符

2023-03-22 14:15:11 1936

原创 kafka:线上问题记录

一、CPU占用过高 应用进程报CPU占用过高,且查看后台的日志解析生成速度较慢,加上日志出现重平衡分配等词,所以推测是重平衡导致CPU升高,而心跳和网络非常正常,又没有掉线或重启的应用,因此推测是poll消费时长过长导致消费被认为掉线引起重平衡。 解决方案如下: 1、调整poll消费参数:max.poll.interval.ms: 600000max.poll.records: 300 即一条消息平均有2秒钟的消费时长,不像默认设置的300000/500,即0.6秒要处理完

2023-03-21 16:30:00 579

原创 VMware:启动Centos7报Entering emergency mode. Exit the shell to continue

问题 上次直接挂起VMware里的Centos7.9,今天继续启动报错如下:分析 看报错显示如下: (1) XFS(dm-0)有元数据损坏,提示:Unmount and run xfs_repair,并把错误区域的128个字节打印出来了。 (2) 提示目前进入了应急模式,退出shell可以继续(Entering emergency mode. Exit the shell to continue)。提示可以输入 journalctl 可以查看系统日志。

2023-03-21 15:54:51 2784 2

原创 Kafka:可靠性保证

摘要 系统设计之初,就该保证可靠性,这样才能保证数据不丢失。kafka也是如此,因此它支持集群部署,消息也有副本备份,有确认和重发机制,以及文件的保存和删除,它们具体怎样工作的,这里探讨下。

2023-03-19 16:05:39 1033

原创 kafka:消息发送以及消费的过程

kafka的存储消息,生产者发送消息,消费者消费消息。这些看起来简单,但实际细想,会有很多问题需要解决:消息是单个单个发送还是批量发送?broker的主题里一有消息就立即推送给消费者吗?生产者的消息怎么保证成功发送到kafka,kafka怎么保证消息传给了消费者?

2023-03-15 19:32:25 2188

原创 kafka:各组件概念

摘要 kafka主要由Scala和Java编写,broker启动后可以直接用jps -l查看到是kafka进程。kafka是一种高吞吐量的分布式发布订阅消息系统,组件参数都比较多。总体组件 kafka的组件主要有:Kafka Cluster(zookeeper和kafka broker组成)、Producer、Consumer、Connector、Stream,总体架构图如下:

2023-03-15 10:42:28 1264

原创 kafka:broker、producer、consumer常用配置

摘要 kafka参数官方文档为:https://kafka.apache.org/documentation/#producerconfigs,这里记下常用配置。broker 我们在kafka官网下载的文件比如kafka_2.11-2.4.0.tgz解包启动后就是就是kafka节点,主要用于接收分发消息。这些节点可以用配置成单机也可以配置集群,配置主要修改config目录下的server.properties,具体如下:

2023-03-14 20:20:24 2359

原创 HTTPS中TLS握手协议

我们知道,https就是http+ssl/tls,而http又是建立在tcp/ip之上的,所以浏览器和服务器使用https协议传输时,先用tcp/ip协议三次握手建立连接,再用ssl/tls协议握手确定算法密钥等,然后才是加密传输应用数据,最后tcp/ip四次挥手断开连接。TLS协议分为TLS记录协议以及TLS握手协议。TLS记录协议负责对消息的压缩、加密以及数据认证。TSL握手协议则是生成共享密钥以及交换证书,其中共享密钥是为了支持TLS记录协议的加密传输,而交换证书是通信双方进行认证。

2023-03-14 15:26:17 889

空空如也

空空如也

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

TA关注的人

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