- 博客(84)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 thingsboard物联网平台编译安装一步到位
物联网平台thingsboard编译一步到位物联网平台thingsboard编译一步到位1.thingsboard简介2.clone项目3.前置准备3.1 安装JDK113.2 安装Nodejs3.3 将pkg-fetch放入本地缓存3.4 配置maven镜像地址4.编译运行物联网平台thingsboard编译一步到位先上编译结果,耗时18分39秒1.thingsboard简介ThingsBoard是一个开源物联网平台,可实现物联网项目的快速开发、管理和扩展。ThingBoard是基于Apache
2021-11-14 09:19:13
10111
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JAVA、GO、大数据、算法工程师、程序员自学网站推荐
JAVA、大数据、算法工程师程序员自学网站推荐慕课网慕课网,大概在14年的时候学长推荐给我看的,当时在学长的公司实习(做安卓开发),在里面学到了很多东西。这个网站当时对我的帮助挺大的,里面有很多免费的课程,也有很多付费的课程。如果你没有特殊的需求,一般免费课程就够自己学的了。https://www.imooc.com/哔哩哔哩不得不说哔哩哔哩上面的学习资源还是很多的,现在有很多年轻人都在上面学习呢!哈哈哈 大部分年轻人最爱的小破站可是受到过央视表扬的。被誉为年轻人学习的首要阵地。像尚硅谷、黑
2021-10-28 17:02:56
5072
1
原创 Paxos分布式共识算法
Paxos算法是由莱斯利·兰伯特(Leslie Lamport)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。它主要用于解决分布式系统中如何就某个值达成一致,并保证整个系统的一致性,即使在部分节点发生故障的情况下也能保证系统的一致性。
2024-06-22 23:01:40
635
原创 “脏读”、“幻读”、“不可重复读”
脏读”、“幻读”、“不可重复读”是数据库事务的概念。“脏读”是指一个事务中访问到了另外一个事务未提交的数据。“不可重复读”是指在一个事务内根据同一个条件对数据进行多次查询,但是结果却不一致,产生的原因是其他事务对该数据就行了修改。“幻读”是指在当两个完全相同的查询执行时,第二次查询所返回的结果集和第一个查询所返回的结果集不相同,发生的原因也是另外一个事务新增、删除了第一个事务结果集里面的数据。
2024-06-22 20:15:00
318
原创 3阶段提交协议(3pc)
三阶段提交协议是一个强一致、中心化的原子提交协议。解决了分布式事务、副本容错等分布式问题。其核心思想是将2PC的二阶段提交协议的“准备阶段”一分为二,形成了由CanCommit、PreCommit、DoCommit三个阶段组成的事务处理协议。协调者向所有的参与者发送一个包含事务内容的CanCommit请求,询问是否可以执行事务提交操作。参与者根据自身的状态判断是否可以执行事务提交,并返回响应给协调者。协调者在接收到所有参与者的CanCommit响应后,进行决策。
2024-06-17 21:45:00
481
原创 二阶段提交(2pc)协议
二阶段提交算法是一个分布式一致性算法,强一致、中心化的原子提交协议,主要用来解决分布式事务问题。在单体spring应用中我们往往通过一个@Transactional注解就可以保证方法的事务性,但是在分布式场景下,serviceA往往会调用serviceB和ServiceC等有自己单独数据库的服务。如果serviceb成功了,servicec失败了,这种情况的回滚就需要用到分布式事务了。2阶段提交包含两个阶段,即准备阶段和提交阶段。
2024-06-13 20:00:00
1003
原创 分布式一致性理论
为保证事务正确可靠而必须具备的四个核心特性。这四个特性分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。下面我将对这四个特性进行详细介绍:原子性(Atomicity)含义:事务被视为一个不可分割的工作单位,事务中的所有操作要么全部完成,要么全部不完成,即“all-or-nothing”原则。实现:如果在事务执行过程中发生错误或故障,则整个事务会被回滚(Rollback)到事务开始前的状态,就像这个事务从未执行过一样。
2024-06-07 16:27:17
933
原创 Java设计模式——装饰者模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许用户通过在一个对象上动态地添加职责或行为来增强其功能。这种类型的设计模式属于对象结构型模式,在不需要改变一个对象的内部结构的条件下,给对象动态地增加一些额外的职责。装饰者模式相比生成子类更为灵活。
2024-05-15 22:28:15
520
原创 nginx报错upstream sent invalid header
upstream sent invalid header: "Cache\x20..." while reading response header from upstream解决方法
2023-12-28 21:48:54
1419
1
原创 mysql中的各种日志文件redo log、undo log和binlog
MySQLInnoDB引擎使用redo log(重做日志)保证事务的持久性,使用undo log(回滚日志)来保证事务的原子性。MySQL数据库的数据备份、主备、主主、主从都离不开binlog,需要依靠binlog来同步数据,保证数据一致性。
2023-11-17 23:00:03
1051
1
原创 SpringBoot如何自定义注解
Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口.参数成员只能用public或默认(default)这两个访问权修饰参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String、Enum、Class、annotations等数据类型,以及这一些类型的数组.
2023-11-17 20:00:00
1102
原创 oracle数据库中job和dbms_job比较
Oralce中的任务有2种:Job和Dbms_job,两者的区别有:①、Job是通过调用dbms_scheduler.create_job包创建的,Dbms_job则是通过调用dbms_job.submit包创建的。②、两种任务的查询视图都分为dba和普通用户的,Job对应的查询视图是dba_scheduler_jobs和user_scheduler_jobs,dbms_jobs对应的查询视图为dba_jobs和user_jobs。
2023-11-17 19:45:00
825
原创 物联网IOT时序数据库influxdb(2.x)
InfluxDB是开源时序型数据库,由Go写成,不过可惜的是开源的只有单机版,InfluxDB在集群方面闭源收费了,想大规模应用请引起注意。时序数据库经常应用于机房运维监控、物联网IoT设备采集存储、互联网广告点击分析等基于时间线且多源数据连续涌入数据平台的应用场景,InfluxDB专为时序存储而生,尤其是在工业领域的智能制造。由清华大学开源的IOTDB也是一款面向物联网的时序数据库,现在是apache旗下的顶级项目,未来潜力无限。InfluxDB在DB-Engines的时序数据库类别里排名世界第一,国内的
2022-06-13 22:18:24
6227
原创 数据结构——树的遍历
数据结构——树的遍历1.树的基本概念树是一种非常有用的数据结构,数据库的实现很多底层实现是基于树结构的,比如mysql innodb存储引擎的索引就是基于B+树的。树是一种由节点组成的数据结构,但它比链表更加高级,在链表中,一个节点连接着另一个节点,树也是由许多的节点构成的,唯一的区别就是一个树节点可以连接多个树节点,一颗树只有一个根节点,根节点作为起源,由它展开一个树状的数据结构。在实现树之前,我们来了解一下树的基本定义:在树中,每个节点都含有自己的数值,以及与之相连的子节点,连接节点的线叫做相连
2022-05-02 22:59:20
3354
原创 刷题记录——动态规划,最短路径问题
动态规划——最短路径问题动态规划——最短路径问题1.动态规划概念和思想2.问题描述3.代码实现作者:不如打代码KK关键词:二维矩阵,最短路径,动态规划动态规划——最短路径问题1.动态规划概念和思想 动态规划过程是:把原问题划分成多个“阶段”,依次来做“决策”,得到当前的局部解;每次决策,会依赖于当前“状态”,而且会随即引起状态的转移。 这样,一个决策序列就是在变化的状态中,“动态”产生出来的,这种多阶段的、最优化决策,解决问题的过程就称为动
2022-04-28 22:00:00
345
原创 刷题记录——DNA序列
刷题记录——DNA序列关键字:字符串、滑动窗口1.题目描述描述一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。 G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的 GC-Ratio 可能是基因的起始点。给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。DN
2022-04-26 23:58:36
290
原创 查看Tomcat默认使用堆内存大小
查看Tomcat默认使用堆内存大小查看Tomcat默认使用堆内存大小1.Tomcat默认堆内存大小2.查看Tomcat堆内存大小查看Tomcat默认使用堆内存大小1.Tomcat默认堆内存大小如果没有配置JAVA_OPTS变量,JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。2.查看Tomcat堆内存大小通过jps找到tomcat的进程id[
2022-04-18 23:00:00
6062
原创 mysql开启慢查询日志
mysql开启慢查询日志1、MySQL慢查询日志是什么MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中查询时间超过(大于)设置阈值(long_query_time)的语句,记录到慢查询日志中。long_query_time的默认值是10。2、如何开启MySQL慢查询日志查看slow_query_log变量,默认是关闭的。Last login: Fri Apr 15 16:21:56 2022 from 113.246.155.177[root@VM-8-
2022-04-18 11:39:02
1824
原创 Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优
Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优1.在apache-tomcat/bin目录下新建setenv.sh文件2.编辑setenv.sh文件,添加环境变量Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优环境:Centos7,Server version: Apache Tomcat/8.5.5,JDK1.81.在apache-tomcat/bin目录下新建setenv.sh文
2022-04-13 22:00:00
3590
原创 使用docker搭建db2数据库
使用docker搭建db2数据库使用docker搭建db2数据库1.进入docker hub查询db2版本2.运行命令执行搭建3.db2常用操作创建操作系统用户db2创建数据库db2删除数据库赋予用户DB2权限db2 关闭连接使用docker搭建db2数据库1.进入docker hub查询db2版本docker hub 官网:https://hub.docker.com/r/ibmcom/db2/tags可以选择需要的版本。2.运行命令执行搭建我这里安装db2的最新版镜像docker r
2022-04-12 20:45:00
1501
原创 java开发中的各种中间件技术
java开发中的各种中间件技术java开发中的各种中间件技术1.什么是中间件2.中间件分类3.在项目中什么时候使用中间件技术4.开发中常用的中间件java开发中的各种中间件技术1.什么是中间件我们平时在应用开发中经常会遇到各种中间件的使用,现在我们经常听到的一句话是“面向消息队列编程”,其中消息队列就是一类中间件。对于初学者而言可能对“中间件”这个专有名词还不太了解。我这里先讲一下中间件出现的背景:一个大型企业同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境
2022-04-05 22:04:33
8871
原创 ruoyi cloud框架使用自定义@Xss注解来做Xss校验
使用自定义@Xss注解来做Xss校验使用自定义@Xss注解来做Xss校验1.什么是XSS攻击2.自定义Xss校验注解3.编写自定义校验器4.使用自定义Xss注解4.1 实体类属性上加注解4.2 Controller请求类调用4.3 处理异常使用自定义@Xss注解来做Xss校验1.什么是XSS攻击XSS全称是:跨站脚本攻击(cross site script)。按照国际惯例,命名应该以 CSS 命名,但是CSS与大家熟知的 层叠样式表(Cascading Style Sheets)重名了,因此取名为XS
2022-04-02 22:00:00
2813
原创 junit 单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
junit 单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing1.环境信息jdk :jdk1.8junit版本:4.12jar包引用情况:没有使用maven、gradle等,只单独引用了junit-4.12.jar文件报错信息:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing2.解决方法官网说明:JUnit now uses the lat
2022-03-29 19:30:00
2782
原创 mysql sql优化——explain分析执行计划
mysql sql优化——explain分析执行计划1 环境准备2 explain 之 id3 explain 之 select_type4 explain 之 table5 explain 之 type6 explain 之 key7 explain 之 rows8 explain 之 extra通过慢查询日志查询到效率低的 SQL 语句后,可以通过 EXPLAIN或者 DESC命令获取 MySQL如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序。查
2022-03-06 22:09:56
295
原创 Mysql的各种存储引擎
Mysql的各种存储引擎1.存储引擎概述 和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 。存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型。 Oracle,SqlServer等数据库只有一种存储引擎。MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应引擎,或者编写存储引擎。 MySQL5.0支持的存储引擎包含 :
2022-03-06 21:50:40
3553
原创 Mysql的体系结构
Mysql的体系结构要想对mysql数据库有一个更好的理解,需要了解一下Mysql服务器的体系结构。整个MySQL Server由以下组成Connection Pool : 连接池组件Management Services & Utilities : 管理服务和工具组件SQL Interface : SQL接口组件Parser : 查询分析器组件Optimizer : 优化器组件Caches & Buffers : 缓冲池组件Pluggable Storage Engi
2022-03-06 21:40:13
156
原创 Spring事务的隔离级别有哪些?
Spring事务的隔离级别有哪些?一、事务读取问题二、事务的隔离级别这是一个在面试过程中经常被问到的问题,要结合数据库来进行回答。先来看一下spring中的源码:public enum Isolation { /** * Use the default isolation level of the underlying datastore. * All other levels correspond to the JDBC isolation levels. * @se
2022-02-28 16:23:39
523
原创 Mysql、Oracle、达梦数据库客户端管理工具
可以加入技术论坛群探讨学习数据库相关的技术,获取软件免费长期授权,支持下国人开发的软件,群二维码如下:1.恒辉通用数据库管理桌面软件据恒辉信达官网介绍:HHDBCS可以让用户通过统一的桌面视图管理成千上万的异构数据库实例。通用的数据库管理工具是管理数据库必不可少的工具,可以形象的称谓数据库管理员的“Office”,HHDBCS就是专门为适用国人使用习惯、适合异构数据库环境,定制打造的通用性桌面数据库管理工具。产品官网:https://dbcs.desku
2022-02-15 14:38:52
1107
1
原创 Tomcat配置https报错java.net.SocketException: Permission denied
Tomcat配置https报错java.net.SocketException: Permission denied1.错误信息今天在给tomcat配置https证书时,启动tomcat报错:25-Jan-2022 22:01:59.398 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-443]]
2022-01-25 20:00:00
1371
原创 Nginx服务器配置Https证书
Nginx服务器配置Https证书1.Nginx安装ssl模块nginx默认是没有安装ssl模块的。[root@localhost nginx-1.20.0]# /usr/local/nginx/sbin/nginx -Vnginx version: nginx/1.20.0built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)configure arguments:[root@localhost nginx-1.20.0]#安装ssl模块
2022-01-18 20:00:00
3009
原创 java多线程——Future和Callable接口
java多线程——Future和Callable接口作者:微信公众号“不如打代码”Future接口定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。1.Callable接口Callable接口中定义了需要有返回的任务需要实现的方法,接口定义如下:@FunctionalInterfacepublic interface Callable<V> { /** * Computes a result,
2022-01-15 22:09:44
214
原创 Redis集群——分布式缓存
笔者曾参与过大型海淘跨境电商项目的开发,在海淘项目中使用到了redis集群来作为项目分级缓存中的第三级缓存。本篇文章,笔者将重点介绍Redis集群的搭建和使用Spring RedisTemplate代码来操作Redis集群。
2022-01-08 19:08:37
1201
原创 Mybatis #{}和${}的区别
#{}和${}的区别#{}是占位符,预编译处理;${}是拼接符,字符串替换,没有预编译处理。Mybatis在处理#{}时,#{}传入参数是以字符串传入,会将SQL中的#{}替换为?号,调用PreparedStatement的set方法来赋值。#{} 可以有效的防止SQL注入,提高系统安全性;${} 不能防止SQL注入#{} 的变量替换是在DBMS 中;${} 的变量替换是在 DBMS外...
2022-01-05 19:15:00
355
原创 Comparable 和 Comparator的区别?
Comparable 和 Comparator的区别?1.前言Comparable 和 Comparator的区别? 可能有的小伙伴们还不是很清楚,这两个接口都是用于对象比较的。2.Comparable接口Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现,compareTo方法也被称为自然比较方法。如果开发者add进入一个Collect
2021-12-26 23:07:51
341
原创 JVM内存模型——详细介绍下Java虚拟机栈
JVM内存模型——详细介绍下Java虚拟机栈java8 虚拟机规范:https://docs.oracle.com/javase/specs/jvms/se8/html/index.html1.Java虚拟机栈的特点Java虚拟机栈是线程私有的,它的生命周期和线程相同。虚拟机栈描述的是Java方法执行的内存模型: 每个方法在执行的同时 都会创建一个栈帧(StackFrame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。不存在垃圾回收的概念, 也就是说不会内存溢出,发生OOM, 但
2021-12-17 20:00:00
1523
原创 linux下安装oracle12c
linux下安装oracle12c软件环境:centos6.5,oracle12ccentos7下防火墙命令不一样1、关闭防火墙,禁止防火墙开机自启暂时关闭:[root@localhost]# service iptables stop 永久关闭:[root@localhost]# chkconfig iptables off 2、root身份安装依赖包[root@localhost]# yum -y install binutils compat-libcap1 compat-
2021-12-15 19:30:00
2623
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人