自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

科技D人生

做正确的事情永远都比把事情做对更重要。在错误的方向上努力再多也不如找到正确的方向。

  • 博客(1606)
  • 资源 (8)
  • 收藏
  • 关注

原创 Docker 学习总结(78)—— Docker Rootless 让你的容器更安全

Docker Rootless 模式是官方提供的一种安全解决方案,可以让 Docker 守护进程以普通用户身份运行,从而避免容器应用利用 Docker 漏洞获得宿主机 root 权限的风险。另外,要注意的是因为Docker 作为容器本身需要利用很多系统高级特性,因此 Docker 守护进程以非 Root 身份运行实际上也会导致一些功能受限。这点可以参与官方文档详细了解。

2023-09-19 14:33:31 634

原创 Go 语言学习总结(9)—— Go 与 Java 全面对比总结

Golang: 编码风格相对统一,简单,没有太多的语法糖等,Java层次清晰,全面面向对象。

2023-09-19 14:04:53 2190

原创 IntelliJ IDEA学习总结(3)—— IntelliJ IDEA 常用快捷键(带动图演示)

执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到目录中。IntelliJ IDEA 支持增量构建,会在上次构建的基础上,仅编译修改的类。在IntelliJ IDEA 中打开要编译的类,执行该命令会编译当前类。剪切选中文本,若未选中则剪切当前行。复制选中文本,若未选中则复制当前行。从历史剪粘版中选择要粘贴的内容。复制光标所在行。复制选中文件所在路径。复制包的路径,或者类的名称。撤销上一步操作内容。恢复上一步撤销内容。自动缩进至规范位置。无论光标是否在行尾,都开始新的行。删除当前

2023-09-19 13:39:17 602

原创 分布式架构和微服务架构的区别

为了简化开发、部署和运维,该公司可能会采用微服务架构,将整个系统划分为多个独立的服务,如订单服务、库存服务等,每个服务都运行在自己的进程中,通过轻量级通信协议进行数据交互。总的来说,分布式架构注重的是系统的并发性能和可靠性,而微服务架构注重的是系统的可维护性和灵活性。这两种架构各有优势和适用场景,需要根据具体需求来选择。为了实现这个目标,该网站可能会采用分布式架构,将前端Web服务器、后端业务逻辑服务器和数据库服务器分别部署在不同的机器上,通过接口进行数据交互,从而提高了系统的吞吐能力和可靠性。

2023-09-19 13:28:46 1269

原创 桌面软件开发框架 Electron、Qt、WPF 和 WinForms 怎么选?

Electron 是一个基于 Web 技术的跨平台桌面应用程序开发框架。它使用 HTML、CSS 和 JavaScript 来构建应用程序界面,并借助 Chromium 渲染引擎提供强大的页面渲染能力。

2023-08-17 13:23:18 3395

原创 Java 基础学习总结(206)—— 比较两个 List 的差异

将两个 List 转换为 Stream 类型;调用 Stream 的 filter 方法,将不同的对象过滤出来;将过滤出的不同的对象转换为 List 类型。上述代码中,将两个 List 类型的对象 list1 和 list2 转换为 Stream 类型,并调用 filter 方法筛选出不同的对象。最后通过 collect 方法将不同的对象转换为 List 类型,并输出结果。

2023-08-13 18:35:31 1346

原创 开源全文搜索引擎汇总

许可证:Apache-2.0 开发语言:Java 官网:https://lucene.apache.org/。Apache Lucene 是完全用 Java 编写的高性能、功能齐全的全文检索引擎架构,提供了完整的查询引擎和索引引擎、部分文本分析引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便地在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。项目地址:https://www.oschina.net/p/lucene。

2023-08-06 00:17:17 1542

原创 PostgreSQL学习总结(13)—— PostgreSQL 目录结构与配置文件 postgresql.conf 详解

PostgreSQL 目录结构与配置文件 postgresql.conf 详解

2023-07-16 07:45:26 2579

原创 Linux 学习总结(93)—— 实用 shell 脚本汇总

假设服务器环境为 lnmp,近期访问经常出现 502 现象,且 502 错误在重启 php-fpm 服务后消失,因此需要编写监控脚本,一旦出现 502,则自动重启 php-fpm 服务。Expect是一个自动交互式应用程序的工具,如telnet,ftp,passwd等。增加版:加个死循环,如果IP可用就退出,不可用提示继续输入,并使用awk判断。应用场景:希望将执行结果或者位置参数赋值给变量,以便后续使用。方法1:根据访问日志(Nginx为例)方法2:通过TCP建立的连接。方法2:通过日志获取登录状态。

2023-07-16 07:23:18 502

原创 深度了解机器人行业全貌

机器人主要可分为工业机器人、服务机器人和特种机器人,主要产品如下图所示。资料来源:36氪、华泰证券《机械设备行业专题研究-商用服务机器人:曙光已现蓝海可期-220105》。其中工业机器人的主要种类及应用领域如下图所示。资料来源:深企投整理。近年来,工业机器人在汽车、电子、金属制品、塑料及化工产品等行业已经得到了广泛应用。新冠疫情蔓延促进各行业的数字化转型进程加快,机器人成为企业实现快速复工复产的重要工具。

2023-07-05 11:38:02 1347

转载 Windows学习总结(26)—— Windows 服务开机自启动的四种方式

4、打开控制面板---管理工具---服务(或者 开始---运行---services.msc---确认)打开服务管理器,看看你创建的服务已经在里面了,至此,服务运行已创建完成。将启动服务路径的脚本的快捷方式,放到这里,切记一定是原脚本的快捷方式,不是原脚本。(2)脚本类型2:自己写脚本,指向原服务路径(服务或软件类型的) 在该文件夹内新建txt文本文档,编辑写入内容。(4)选择新建操作,加载启动程序的脚本(在服务对应路径下的脚本)。(1)脚本类型1:放入原脚本的快捷方式(脚本类型的)

2023-06-30 15:00:10 7142

原创 Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键

在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 型且唯一),而是推荐连续自增的主键 id,官方的推荐是 auto_increment,那么为什么不建议采用 uuid,使用 uuid 究竟有什么坏处?

2023-06-26 07:56:14 361

原创 一文扫盲 OA、CRM、ERP、MES、HRM、SCM、WMS、KMS 等B端系统

(Office Automation System,办公自动化系统):OA系统是一种用于协调、管理和优化办公流程的软件系统,包括电子邮件、日程安排、文档管理、工作流程管理等功能模块,帮助企业提高工作效率和管理水平。

2023-06-15 20:16:05 8441

原创 Linux 学习总结(92)—— Linux文件系统的演进之从 Ext2、Ext3 到 Ext4

它被设计为Minix文件系统的替代品,Minix是当时Linux上的默认文件系统。Ext2是对Minix的重大改进,提供了诸如POSIX,访问控制表和extended attribute和以及对大文件和目录的支持等功能。Ext4是Ext文件系统中最具功能和性能的版本。它增加了几个新功能,包括日志、位目录跨越多个块、提供基于树的目录索引以及改进的大型文件系统性能。Ext2、Ext3和Ext4是常用的Linux发行版中使用的三个文件系统。它们都基于相同的基本设计,但具有不同的功能和性能特征。

2023-06-11 00:11:04 572 1

原创 Spring 学习总结(37)—— 了解什么是单体的模块化,Spring Modulith 入门实践

对于许多组织而言,模块化单体可能是一个很好的选择。它有助于保持一定程度的独立性,这有助于我们在需要的时候轻松过渡到微服务架构。此外,它还支持开发人员构建结构良好且业务领域对齐的Spring Boot应用程序。

2023-05-24 14:50:56 1677

原创 Spring 学习总结(36)—— Spring 状态机优雅实践

Spring Statemachine 是应用程序开发人员在 Spring 应用程序中使用状态机概念的框架。Spring Statemachine旨在提供以下功能:易于使用的扁平单级状态机,用于简单的使用案例。分层状态机结构,以简化复杂的状态配置。状态机区域提供更复杂的状态配置。使用触发器,转换,警卫和操作。键入安全配置适配器。生成器模式,用于在Spring Application上下文之外使用的简单实例化通常用例的食谱基于Zookeeper的分布式状态机状态机事件监听器。

2023-05-24 14:13:18 824

原创 Linux 学习总结(92)—— Linux 高效率使用技巧

对于经常使用的目录,可以增加一条自定义命令,实现一键直达。这点在下文详解,先看个效果。clLinux 的精髓就是脚本,可以对常用操作加入逻辑关系,完成一系列操作,解放我们的双手,这也是程序员喜欢使用 Linux 的一个主要原因。

2023-04-14 09:38:50 447 1

原创 Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习

Nginx 是目前负载均衡技术中的主流方案,几乎绝大部分项目都会使用它,Nginx 是一个轻量级的高性能 HTTP 反向代理服务器,同时它也是一个通用类型的代理服务器,支持绝大部分协议,如 TCP、UDP、SMTP、HTTPS 等。Nginx 与之前谈及的《Redis》相同,都是基于多路复用模型构建出的产物,因此它与 Redis 同样具备资源占用少、并发支持高的特点,在理论上单节点的 Nginx 同时支持 5W 并发连接,而实际生产环境中,硬件基础到位再结合简单调优后确实能达到该数值。

2023-04-06 12:17:34 463

原创 PostgreSQL学习总结(12)—— PostgreSQL 内置函数汇总

函数从一个字符的开头和结尾删除一个包含了由参数指定的所有字符(默认为空格)的最长的字符串。函数将指定的字符串中的每个单词的首字母转为大写,其他字母转为小写,并返回转化后的字符串。函数从一个字符的左侧删除一个包含了由参数指定的所有字符(默认为空格)的最长的字符串。函数从一个字符的右侧删除一个包含了由参数指定的所有字符(默认为空格)的最长的字符串。函数将一个指定的字符串中出现的所有指定的子字符串替换为新的子字符串并返回结果。函数在一个字符串中使用指定的文本替换从指定位置开始的指定数量的字符。

2023-03-19 10:59:45 4405

原创 Java 基础学习总结(205)—— 后端接口设计实用技巧汇总

参数校验入参出参校验是每个程序员必备的基本素养。你设计的接口,必须先校验参数。比如入参是否允许为空,入参长度是否符合你的预期长度。这个要养成习惯哈,日常开发中,很多低级bug都是不校验参数导致的。比如你的数据库表字段设置为 varchar(16) ,对方传了一个32位的字符串过来,如果你不校验参数, 插入数据库直接异常了。出参也是,比如你定义的接口报文,参数是不为空的,但是你的接口返回参数,没有做校验,因为程序某些原因,直返回别人一个 null 值。兼容性。

2023-03-19 10:49:58 685

原创 Java 基础学习总结(204)—— 重温 SPI 动态扩展机制

SPI 的全称是,翻译过来就是服务提供者的接口,它所实现的其实是一种服务的发现机制。这么说起来可能还是有点不好理解,我举个例子来类比一下。在 spring 项目中,写 service 层代码前,会约定俗成的会添加一个接口层。然后通过 spring 中的依赖注入,可以借助@Autowired等方式注入这个接口的实现类的实例对象,之后对于 service 的调用一般也基于接口操作。

2023-03-07 19:21:31 627

原创 信贷系统学习总结(5)—— 简单的风控示例(含代码)

*** 事件id/*** content的表达式其中content是需要经过表达式解析出来的,所以接受的是个String")//转换表达式val expression = spelExpressionParser.parseExpression(detect.contentSpel)}.toMap()//构建上下文val context = StandardEvaluationContext().apply {

2023-02-28 17:22:16 1271

原创 RabbitMQ学习总结(10)—— RabbitMQ如何保证消息的可靠性

一、丢失场景RabbitMQ丢失的以下3种情况:(1)生产者:生产者发送消息至MQ的数据丢失(2)RabbitMQ:MQ收到消息,暂存内存中,还没消费,自己挂掉,数据会都丢失(3)消费者:消费者刚拿到消息,还没处理,挂掉了,MQ又以为消费者处理完二、解决方案。

2023-02-13 14:51:24 1486

原创 Spring Boot 学习总结(33)—— Spring Boot 3 的声明式 HTTP 调用

HttpExchange 类似于 @RequestMapping,可以将之放在类上,起到一个请求窄化的作用,也可以放在方法上,放在方法上我们可以通过 method 属性来指定具体的请求方法,这个也跟 @RequestMapping 类似:@HttpExchange(value = "/server",method = "GET")。由于我们前面提供的 ToDoService 是一个接口,所以我们还需要提供一个该接口的实现类,当然这个配置完全是套路化模版化的,这块就没啥好说了。

2023-02-06 17:00:56 1227

转载 一文读懂 web 3.0

Web 3.0 是结合了去中心化和代币(Token)经济学等概念,基于区块链技术的全新的互联网迭代方向,意在解决Web2.0 带来的生态不平衡、发展不透明等问题。与AR/VR等前端创新相比,其源于对后端生产关系的创新。目前Web3.0 处于发展早期,但势能强,2021年全球区块链初创企业融资金额达 252 亿美元,同比增长超700%,Web3.0 将与AR/VR、AI等技术融合发展,开创新阶段。

2023-01-02 11:40:42 1242

原创 Docker 学习总结(78)—— WebAssembly 入门简介

WebAssembly 是一种定义二进制指令格式的开放标准,它支持从不同的源语言创建可移植的二进制可执行文件。这些二进制文件可以在各种环境中运行。它起源于 Web,并得到各大主流浏览器的支持。

2022-12-31 17:46:01 1054

原创 Windows学习总结(25)—— Windows 11 cmd 命令大全

在 Windows 11 中,你可以用几种方式和方法来访问 CMD(又称终端)。通常的方法是在开始菜单中搜索 CMD,或者你可以在运行对话框中输入 CMD,或者按 Windows + X 或在开始菜单上右键单击,打开终端(又称 CMD)。命令功能介绍Help显示基本的CMD命令和每个命令的工作原理说明assoc查看和编辑文件扩展名(你可以指定用哪个程序来打开哪些文件)bitsadmin创建或下载或上传任务并监控其进度call。

2022-12-13 14:26:03 3195 1

原创 Java 基础学习总结(203)—— 生成唯一 ID 打印日志记录最佳实践

几乎所有的 Java 项目中的默认日志框架都会选择 slf4j,在打印日志时,每行数据都有一个请求 ID,这样会方便追踪日志。也可以使用一些链路追踪框架来实现这种目的。slf4j 里有一个 MDC 类,是 ThreadLocal 的实现,保存在这里的变量都会绑定到某一个请求线程中,在该请求的线程里的日志代码都可以使用设置的变量。我这里选择配置的是 AOP 切面来实现在 MDC 中设入 REQUEST_ID 来为每一个请求添加 ID。logback-spring.xml 文件。

2022-11-30 10:16:21 906

转载 消息中间件学习总结(24)—— Rocketmq 集群平滑迁移数据中心记录

因为这个时候所有的client还都连接着现有机房的nameserver,所以我们要把新机房部署的broker节点扩容到当前的机房,供业务使用。2、我们在新的当前数据中心的rocketmq 架构是,两个nameserver和三组主从架构的broker节点,迁移到新的数据中心是两个nameserver和两组主从架构的broker节点,因为新的数据中心硬件更强。新的broker节点扩容到当前数据中心之后,当前数据中心的broker节点也要扩容到新的数据中心,只有完成了这一步,才能保证新老数据中心。

2022-11-29 11:26:56 1286

原创 Java 基础学习总结(202)—— BASE64、MD5、DES、AES、HMAC、恺撒加密、SHA、RSA、PBE 加解密汇总

因此 MD5 经常用于校验字符串或者文件,因为如果文件的 MD5 不一样,说明文件内容也是不一样的,如果发现下载的文件和给定的 MD5 值不一样,就要慎重使用。然后把编码后的密码存入数据库,下次登录的时候把密码 MD5 编码,然后和数据库中的作对比,这样就提升了用户账户的安全性。高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称 Rijndael 加密法,是美国联邦政府采用的一种区块加密标准。且若输入的消息不同,它们对应到不同字符串的机率很高。

2022-11-29 11:10:16 373

原创 Spring Boot 学习总结(32)—— Spring Boot 3.0 正式发布

Spring Boot 3.0 正式发布了:同时发布更新的还有 2.7.x 和 2.6.x 两条版本线,Spring Boot 是我见过的发版最守时的技术框架之一。Spring Boot 3.0 这是一个重大的主版本更新,距离上一代的 Spring Boot 2.0 的发布,Spring Boot 3.0 也是的 Spring Boot 正式版本。

2022-11-29 10:43:43 463

原创 Java 基础学习总结(201)—— 有效提高单元测试的 5 个编写技巧实践

在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、抽象类、或者派生类中的方法。” —— 摘录来自维基百科。单元测试(Unit Testing)顾名思义就是测试一个单元,这里的单元通常指一个函数或类,区别于集成测试中的模块和系统。集成测试的测试过程通常存在跨系统模块的调用,是一种端到端的测试;

2022-11-29 10:23:37 422

原创 Go 语言学习总结(8)—— Go 自学者必学的教程大纲

Go语言是目前最受欢迎的语言之一,它具有入门快、程序库多、运行迅速等特点,很适合快速构建互联网软件产品,所以互联网大厂开始纷纷拥抱Go语言。根据《2021 年腾讯研发大数据报告》中显示,随着腾讯云计算和大数据相关业务的迅速发展,Go 语言快速增长,首次超越 C++,成为腾讯最热门的编程语言。公开资料显示字节跳动在 2016 年底到 2017 年初,开始全公司逐步推广 Go,各种项目都启动了 Python 到 Go 的重构工作,以及微服务建设。

2022-11-17 09:54:57 996

原创 Linux 学习总结(91)—— 100 个网络基础概念问答

您可以为计算机分配限制,例如允许访问的资源,或者可以浏览互联网的某一天的特定时间。这是因为互联网上的主机只能看到提供地址转换的计算机上的外部接口的公共 IP 地址,而不是内部网络上的私有 IP 地址。然而,随着越来越多的设备连接到它,它将无法有效地管理通过它的流量。相反,将 LAN连接到中转网络的网关创建了一个使用 IPSec 协议来保护通过它的所有通信的虚拟隧道。在这种设置中,一条电缆的数据传输引脚连接到另一条电缆的数据接收引脚,反之亦然。不知道正确的 IP 地址,甚至无法识别网络的物理位置。

2022-11-17 09:44:46 411

原创 Java 基础学习总结(200)—— GraalVM 为什么能被称为下一代虚拟机

GRAALVM 允许本地代码(例如,C/C++)和 JavaScript 的有效组合。可以直接访问本地数据结构,编译器可以跨任何边界内联。在这样一种场景中,当应用程序的其他部分写入时,在C中管理和分配高效数据结构时,这将是有益的 Node.js。

2022-11-09 14:58:08 1172

原创 Spring Boot 学习总结(31)—— Spring Native 主要知识点总结

Spring Native 为使用 GraalVM 原生镜像编译器编译 Spring 应用为本地可执行文件提供支持。与 Java 虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常适合容器和 Kubernetes。使用原生镜像有明显优势,如快速启动,提高峰值性能以及降低内存消耗。GraalVM 项目也有一些缺点和权衡,希望随着时间的推移有所改进。构建本地映像是一个繁重的过程,比常规应用程序要慢,预热后的运行时优化也更少。最后,比起 JVM 很多场景下还不成熟。

2022-11-09 14:44:48 1443

原创 Spring 学习总结(35)—— Spring 6.0 新特性总结

Spring 6.0 新特性总结

2022-11-09 13:39:38 1975

原创 Java基础学习总结(199)—— Nacos、Apollo、Config 配置中心如何选型?

目前市面上用的比较多的配置中心有:(按开源时间排序)这里列一个表格总结一下三个产品的功能特点。总的来说,Apollo 和Nacos 相对于Spring Cloud Config的生态支持更广,在配置管理流程上做的更好。Apollo相对于Nacos在配置管理做的更加全面,不过使用起来也要麻烦一些。Nacos使用起来相对比较简洁,在对性能要求比较高的大规模场景更适合。此外,Nacos除了提供配置中心的功能,还提供了动态服务发现、服务共享与管理的功能,降低了服务化改造过程中的难度。

2022-10-22 11:12:24 691

原创 Java基础学习总结(198)—— CompletableFuture 任务编排知识总结

我们知道 Future 的有局限性,它没法直接对多个任务进行链式、组合等处理,需要借助并发工具类才能完成,实现逻辑比较复杂。而 CompletableFuture 是对 Future 的扩展和增强。CompletableFuture 实现了 Future 接口,并在此基础上进行了丰富的扩展,完美弥补了 Future 的局限性,同时 CompletableFuture 实现了对任务编排的能力。借助这项能力,可以轻松地组织不同任务的运行顺序、规则以及方式。从某种程度上说,这项能力是它的核心能力。

2022-10-19 14:12:58 540

原创 开发人员都需要知道的几款优秀数据库管理工具

你可以使用它来加速几乎所有的数据库体验,如设计数据库、编写SQL代码、比较数据库、同步模式和数据、生成有意义的测试数据等等。Devart是知名的数据库管理软件和开发工具的生产商,提供包括Oracle、SQL Server、MySQL、PostgreSQL、InterBase以及Firebird在内的专业数据库远程管理软件,简介美观的UI界面、更符合DBA和开发人员操作的良好体验荣获广泛好评,同时也是微软、Oracle旗下数据库产品推荐管理和开发工具。可以在数据库资源管理器中查看数据库的结构和执行其他任务。

2022-10-19 13:38:20 5630

Kubernetes 实用技巧大全

K8S 实用命令总结

2021-12-22

Javag工程师简历模版.zip

Java 工程师简历专用模版,供技术人员参考,如何写出好看实用的Java 简历。相关技术从业人员的简历书写可参考改压缩包中的两份简历模版。

2020-08-06

清华-2018人工智能之自动驾驶研究报告.pdf

自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面提升汽车驾驶的安全性、舒适性,满足更高层次的市场需求等。自动驾驶技术得益于人工 智能技术的应用及推广,在环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网 V2X 等方面实现了全面提升。

2019-09-02

最新版Myeclipse2018.8破解

最新版Myeclipse2018.8破解,亲测100%有效,欢迎大家下载尝试!

2018-08-25

容器网页终端(websocket-webshell)

Java WebSockt DockerSSH Html5 Tomcat8 等技术写的WebShell 容器网页终端 传统websockt终端和容器化终端解决方案!

2017-09-23

开源博客系统

博客系统

2016-09-22

短信平台,activemq 及常用第三方短信平台接入

短信平台

2016-09-22

netty推送系统

netty推送系统,点对点推送

2016-07-17

空空如也

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

TA关注的人

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