- 博客(74)
- 资源 (14)
- 问答 (1)
- 收藏
- 关注
原创 【MQTT】常见问题
MQTT使用要点摘要 MQTT在物联网应用中有三个关键注意事项:1) ClientID应设置唯一且易识别的值,避免使用随机生成ID;2) 保留消息机制可确保客户端离线时不丢失重要消息,但同一Topic仅保留最新消息;3) clear_session设置影响会话保持,false可保留离线消息但需配合固定ClientID。此外,可通过系统主题监听或遗嘱消息机制监控设备上下线状态。合理配置这些参数对确保通信可靠性至关重要。
2025-06-25 22:31:25
138
原创 回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务
在“策略”>“安全策略”中点击新建,创建名称为“denybaidu”的安全策略,源安全域为“trust”,动作选择拒绝,目的地址位置点击下拉菜单后点击“添加IPV4地址对象组”。本案例适用于软件平台为Comware V7系列防火墙:本案例适用于如F5080、F5060、F5030、F5000-M等F5000、F5000-X系列的防火墙。#在“策略”>“安全策略”中继续新建名称为“passany”的安全策略,源安全域为“trust”、目的安全域为“untrust”、动作选择允许。1.3 配置安全策略。
2025-06-20 22:25:24
390
原创 配执映参结,五大核心,一串到底!
第一步:MyBatis的大致执行流程我开口就先画了个大轮廓,给面试官一个直观的印象:“MyBatis的大致执行流程可以概括为:加载配置 → 解析Mapper → 创建SqlSession → 执行SQL语句 → 处理结果集。讲的时候,我在白板上画了下面这张“心智图”:这张图是核心架构的“高速公路图”,接下来我开始一点点往里面“铺砖”。第二步:从配置文件说起(mybatis-config.xml)我说,其实一切的起点就是那个熟悉的 mybatis-config.xml。
2025-06-14 23:04:28
271
原创 第四步:运行时的 SqlSession 和执行流程
故事要从上周三讲起。我背着电脑包,走进了一家中厂的面试间。面试官看起来很友好,一边喝着豆浆一边刷简历,看上去并没有那么“凶”。前半场聊得风平浪静,Spring、Redis、消息队列、线程池,全是我的舒适区,我都快以为稳了。直到他放下了手里的豆浆,眼神突然认真了几分。“小米,我看你简历里写了几年MyBatis经验,那你能说一下MyBatis的解析过程和运行原理吗?好家伙,来了来了!我脑袋里的MyBatis这锅“面”,突然开始腾腾冒气,关键时刻,得上干货!先别慌!我们拆成几个步骤来看。
2025-06-14 23:02:58
363
原创 只会写 Mapper 就想进大厂?MyBatis 原理你真懂了吗?
背后干活的是 XMLConfigBuilder,它会将配置加载进 Configuration 对象,这是 MyBatis 的“全局大脑”。“而这个解析的过程,是由 XMLMapperBuilder 完成的,它会读取每一个 Mapper XML,并把它注册到全局配置里。为了让面试官听懂,我选择用“从源码角度,但不绕进细节”的方式回答,结构清晰、逻辑递进。我背着电脑包,走进了一家中厂的面试间。前半场聊得风平浪静,Spring、Redis、消息队列、线程池,全是我的舒适区,我都快以为稳了。
2025-06-14 23:00:50
357
原创 最实用也最容易被遗忘的 Linux 命令行使用技巧
作为一个日常在Linux环境下工作的工程师,每天都要大量使用Linux命令行。有时候我们会在网上翻查命令行的使用技巧,但是一旦未能及时进行练习,很快就会把这些小技巧给忘了。所以我决定把这些小东西整理一下,以防止以后再有遗忘的事情发生。将输出内容做一个清晰明了的表格使用命令行的时候,经常可以看到输出的内容一团糟:太多字符串挤在一起,根本没法看到底输出了什么,不信你就试试 mount 命令。
2025-06-14 22:58:11
179
原创 最实用也最容易被遗忘的 Linux 命令行使用技巧
作为一个日常在Linux环境下工作的工程师,每天都要大量使用Linux命令行。有时候我们会在网上翻查命令行的使用技巧,但是一旦未能及时进行练习,很快就会把这些小技巧给忘了。所以我决定把这些小东西整理一下,以防止以后再有遗忘的事情发生。将输出内容做一个清晰明了的表格使用命令行的时候,经常可以看到输出的内容一团糟:太多字符串挤在一起,根本没法看到底输出了什么,不信你就试试 mount 命令。
2025-06-14 22:52:52
130
原创 基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
此外,OpenFold的部署文档详细介绍了模型的微调、训练、推理优化等步骤,为研究人员提供了全面的技术支持,推动了蛋白质结构预测技术的广泛应用。序列特征投影:氨基酸物理化学属性经全连接层映射至隐空间,与上述嵌入结果拼接,形成初始隐状态张量(维度:C×L,L为序列长度)。输出层:最终通过SE(3)-等变全连接层输出原子坐标(维度:L×37×3,37为每个残基原子数)及置信度热图(分辨率1Å)。模板嵌入:通过残差连接的3D卷积(核3×3×3,步长1×2×2)提取模板结构特征,输出通道数对齐主嵌入空间。
2025-06-14 22:43:47
876
原创 纯 CSS 实现的的3种扫光效果
介绍一个比较常见的动画效果。在日常开发中,为了强调凸显某些文本或者元素,会加一些扫光动效,起到吸引眼球的效果,比如文本的或者是一个卡片容器,里面可能是图片或者文本或者任意元素除此之外,还有那种不规则的图片,比如奖品图案这些是如何实现的呢?一起看看吧一、CSS 扫光的原理CSS扫光动画的原理很简单,就是一个普通的、从左到右的、无限循环的位移动画位移动画可以选择transform或者改变background-position都行。
2025-06-14 22:38:08
1074
1
原创 MySQL SQL优化
索引优化原则1、组合索引中,如果索引字段的用到了范围查询,那么之后的字段就无法使用索引。例如:有组合索引(a1,a2,a3)在表table1上,那么SQL语句 select * from table1 where a1 = 1 and a2 > 1 and a3 = 3;那么a3字段无法走索引。2、关联查询的关联字段的索引建立原则,左连接右表建索引,右连接左表建索引。3、索引用在经常使用的字段上面。4、小表驱动大表。5、优先优化内层循环。6、JoinBuffer可以适当调大。索引失效
2022-01-29 20:48:59
1967
1
原创 MySQL 锁
锁介绍复习:事务和ACID特性并发事务问题:更新丢失、脏读、不可重复读、幻读隔离级别MySQL默认的隔离级别:可重复读在MySQL中锁是由存储引擎实现的。行锁共享锁(shared locks)和排他锁(exclusive locks)在InnoDB存储引擎中默认使用的就是行锁,分为共享锁和排它锁。共享锁:容许事务加锁去读取某一行数据。排它锁:容许事务持有锁去更新和删除某一行数据。意向锁 (intention locks)innodb支持多种粒度的锁,这种锁可以允许行锁和表
2022-01-29 20:30:40
749
原创 MySQL explain讲解
用法explain <查询SQL>索引用途:排序和查询;id列id相同,执行顺序由上到下。id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行。id相同和不同的会同时存在。select_type列simple: 检查的select查询,查询中不包含子查询或者unionprimary: 查询中若包含任何复杂的子部分,最外层被标记为primary,一般最后执行的。subquery: 在select或where列表中包含了子查询derived:在fro
2022-01-26 00:34:17
1026
原创 Raft算法
Raft算法一致性算法,主要解决选举问题(leader election)和副本同步问题(log replication)强烈推荐看这个动画学习该算法http://thesecretlivesofdata.com/raft/
2022-01-23 22:52:59
181
原创 Java开发之实时计算--Flink
简介介绍计算框架对java开发的重要性介绍flink的架构介绍flink的基本概念:常用算子、checkpoint、state、window介绍flink的编程模型:DataStream、DataSet、Table API、SQL介绍flink的部署计算框架每个Java开发一定要懂至少一个流行的计算框架,因为现在的数据量越来越大,光靠数据库或者手写代码去实现难度已经越来越大,不仅涉及到资源调度,还要考虑分布式,并且还要考虑高可用、容错等等,因此我们需要借助现有的分布式计算框架来实现我们大规
2022-01-23 14:10:43
10095
2
原创 Java开发之消息队列
简介介绍消息队列的重要性介绍Java程序员常用的Kafka消息队列介绍Kafka内部的一些机制及注意问题为什么要使用消息队列?比较常见的作用有3点,解耦、异步处理、流量削峰,这里分别一一介绍这些特点。解耦我们在设计微服务的时候经常会出现几个模块之间需要相互依赖,例如A和B服务相互依赖,那么部署一个A,必须部署一个B,导致A模块和B模块之间形成了强耦合。如果此时我们在A和B模块之间引入消息队列,那么A可以不用依赖B,只需要A和B之间规定通用的消息格式即可,这样A和B就解耦了,这样以后别的模块
2022-01-18 22:44:17
8759
原创 Java开发之常见缓存系统
前言主要介绍在java项目开发中,如何设计缓存系统,以及需要注意的一些问题。常见框架中的缓存方式Web缓存数据库缓存Redis缓存为什么需要缓存?可以说,缓存的设计在整个IT行业无处不在,不论是硬件还是软件。从CPU寄存器、CPU L1/L2/L3级缓存,再到我们用的内存,以及硬盘里面的缓存,都是缓存系统的考虑。他们解决问题的目的只有一个:CPU速度太快,而磁盘速度太慢;CPU负责计算,磁盘负责存储。因此,CPU和磁盘不可避免的必须时时刻刻交换数据,如果每次都从磁盘获取数据,效率太低,因此
2022-01-16 17:43:15
1129
原创 Flink Yarn的2种任务提交方式
Flink Yarn的2种任务提交方式Pre-Job模式介绍每次使用flink run运行任务的时候,Yarn都会重新申请Flink集群资源(JobManager和TaskManager),任务执行完成之后,所申请的Flink集群资源就会释放,所申请的Yarn资源是独享的,不与其他任务分享资源。运行命令./bin/flink run -m yarn-cluster -yn 3 -ys 12 -p 4 -yjm 1024m -ytm 4096m ./examples/batch/WordCount.
2021-10-24 16:23:09
4078
原创 Feign全局配置和局部配置
Feign全局配置和局部配置在使用Feign的时候需要注意是否为全局配置和局部配置,否则可能会导致各种奇怪异常,而且在调试的是否也不容易看出问题。全局配置和局部配置的差别比较微妙,稍不注意可能会出问题。因此,这里总结给大家,防止大家也出现异常的问题。全局配置:@Configurationpublic class FeignConfiguration { @Bean public FeignBasicAuthRequestInterceptor basicAuthRequestInt
2021-10-02 13:05:53
5585
2
原创 Feign 400错误引发的一系列问题
Feign 400错误引发的一系列问题问题介绍在使用Feign进行远程调用的时候出现非常奇怪的400错误,错误信息大概如下:feign.FeignException: status 400 reading并且还带有2个非常奇怪的问题:一个前端请求接口,到达后端的时候会发起2次相同的Feign远程调用,但第一次成功,但是第二次会失败,错误信息如上。一个前端请求接口,达到后端的时候调用Feign接口的时候会卡死。问题定位通过开启debug模式,查看输出日志发现,2个Feign接口都调用成功了
2021-10-02 12:22:54
1615
原创 Oracle实时数据抽取项目问题总结
Oracle实时数据抽取项目问题总结项目背景介绍项目主要是将Oracle、MySQL、SQLServer、Db2等其他数据库的实时变更数据同步到其他异构数据库中。本篇文章主要是讨论oracle的实时采集,通过Logminer捕获归档日志,然后将提取后的数据推送到Kafka中。项目使用的技术框架使用的核心框架:https://github.com/debezium/debezium 用于捕获归档日志,然后推送到kafka中。Debezium框架是基于Kafka Connect实现的,分为sour
2021-09-11 11:24:03
1273
原创 线程上下文类加载器在项目中的应用
项目背景支持多种数据源、多种版本的数据库元信息(表信息、字段信息等)同步功能。为了加快同步效率,用到了线程池以此来加快同步效率。面临的问题因为有不同版本、不同数据库的驱动jar,因此不可能将所有的驱动jar都放在一起,因此使用了动态加载jar的方式来隔离不同的驱动jar。初版设计首先设计了所有数据源共同使用的接口,放在web模块,接口如下:public interface GetDBMetaDao { List<TableInfo> getAllTable(String
2021-08-07 12:12:01
336
原创 System.currentTimeMillis()和System.nanoTime()的区别
System.currentTimeMillis()返回的是1970 年 1 月 1 日午夜到目前的毫秒数,建议主要用于获取时间,而不要用于计时,因为在计时的过程中,时间可能受NTP(时间服务器)的影响产生计时误差。System.nanoTime()返回的是一个会不断自增的、精确计时的纳秒数,不受NTP的影响,因此不能用于获取时间,但是非常适合用于精确的计时场景。总结1、System.currentTimeMillis()适合获取时间的场景;2、System.nanoTime()适合计时的场景;
2021-07-17 09:33:44
991
原创 Java性能优化建议
大多数开发人员认为性能优化是个比较复杂的问题,需要大量的经验和知识。是的,这并不没有错。诚然,优化应用程序以获得最好的性能并不是一件容易的事情,但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。下面有几个很容易遵循的建议和最佳实践能够帮你创建一个性能良好的应用程序。这些建议中的大多数都是基于Java的,但是也不一定,也有一些是可以应用于所有的应用程序和编程语言的。在我们分享基于Jav...
2019-03-24 22:22:49
270
原创 事务概述
在与数据库打交道的过程中,事务是一个必须掌握的技能之一。在一般的小项目中由于并发有限,很难看出事务的问题,但是在大型项目中,在高并发的条件下,如果处理不好事务问题,会出现许多很难察觉到的问题,并且也很难清楚的找到问题的根源。处理不好事务会导致许多数据问题,数据可是一家公司重要的财富,因此事务是一个高级程序员必须,也是一定要掌握的技能。ACID特性首先需要了解事务的四大特性(ACID):...
2018-03-25 14:36:48
322
原创 Java程序猿学Python之Import语句
Import语句可以说在Python中是无处不在,非常类似于Java中的import的语句,但是又比Java的强大很多,也复杂的多。首先本文章会讲解import语句的作用,然后讲解一下import语句的内部执行原理以及import语句是按什么样的顺序寻找文件;再者讲解from语句与import语句的使用,动态加载,包导入(又分为相对导入和绝对导入),命名空间包等与import相关的话题。本文章...
2018-03-25 12:33:37
3064
转载 ArrayList循环遍历并删除元素的陷阱
在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出bug。不妨把这个问题当做一道面试题目,我想一定能难道不少的人。今天就给大家说一下在ArrayList循环遍历并删除元素的问题。首先请看下面的例子:import java.util.Arra...
2018-03-15 09:10:25
473
Neo4j开发手册
2019-04-18
TBase数据库教程
2019-04-18
深入理解Linux内核第三版(英文原版)
2019-04-22
POI官方Jar包
2014-05-29
JOOQ jar包
2019-04-28
Python机器学习实践指南
2018-02-02
OAuth2实战
2019-04-18
数据结构经典教程
2019-04-18
oracle多字段全文索同步问题
2017-01-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人