- 博客(1551)
- 资源 (8)
- 收藏
- 关注

原创 Java基础学习总结(175)——分布式ID的9种生成方式总结
背景业务量小于500W的时候单独一个mysql即可提供服务,再大点的时候就进行读写分离也可以应付过来。但当主从同步也扛不住的是就需要分表分库了,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。那么这个全局唯一ID就叫分布式ID。分布式ID需满足那些条件:全局唯一:基本要求就是必须保证ID是全局性唯一的。 高性能:高可用低延时,ID生成响应要快。 高可用:无限接近于10
2021-03-16 10:27:08
722

原创 2016年终总结
分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程一、技术总结(1)App/JavaWeb后台系统1.1、采用RestFul架构的SSM(Spring SpringMVC MyBatis)框架集成开发的App后台系统,将用户鉴权分离出来单独的模块,将用户鉴权登录状态Token保存到Redis内存数据库中,从而便于上层业务后...
2017-01-10 11:54:34
5334
19

原创 青春路上,岁月如烟
分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程青春路上,岁月如烟凡人一世,始聚终散。年长当权,寂寞同醉。年少轻狂,知己共饮。世界一如既往,不存在永恒和不灭。我们终为一介凡人,没法脱离世俗,看破红尘。人生亦是悲欢离合,聚如春梦,散如烟。我们这样一群在人生道路上越发迷茫的人,看不清梦想在何处,寻不到温柔乡,太多的美好被...
2014-06-23 18:35:45
4282
9
原创 PostgreSQL学习总结(12)—— PostgreSQL 内置函数汇总
函数从一个字符的开头和结尾删除一个包含了由参数指定的所有字符(默认为空格)的最长的字符串。函数将指定的字符串中的每个单词的首字母转为大写,其他字母转为小写,并返回转化后的字符串。函数从一个字符的左侧删除一个包含了由参数指定的所有字符(默认为空格)的最长的字符串。函数从一个字符的右侧删除一个包含了由参数指定的所有字符(默认为空格)的最长的字符串。函数将一个指定的字符串中出现的所有指定的子字符串替换为新的子字符串并返回结果。函数在一个字符串中使用指定的文本替换从指定位置开始的指定数量的字符。
2023-03-19 10:59:45
724
原创 Java 基础学习总结(205)—— 后端接口设计实用技巧汇总
参数校验入参出参校验是每个程序员必备的基本素养。你设计的接口,必须先校验参数。比如入参是否允许为空,入参长度是否符合你的预期长度。这个要养成习惯哈,日常开发中,很多低级bug都是不校验参数导致的。比如你的数据库表字段设置为 varchar(16) ,对方传了一个32位的字符串过来,如果你不校验参数, 插入数据库直接异常了。出参也是,比如你定义的接口报文,参数是不为空的,但是你的接口返回参数,没有做校验,因为程序某些原因,直返回别人一个 null 值。兼容性。
2023-03-19 10:49:58
340
原创 Java 基础学习总结(204)—— 重温 SPI 动态扩展机制
SPI 的全称是,翻译过来就是服务提供者的接口,它所实现的其实是一种服务的发现机制。这么说起来可能还是有点不好理解,我举个例子来类比一下。在 spring 项目中,写 service 层代码前,会约定俗成的会添加一个接口层。然后通过 spring 中的依赖注入,可以借助@Autowired等方式注入这个接口的实现类的实例对象,之后对于 service 的调用一般也基于接口操作。
2023-03-07 19:21:31
345
原创 信贷系统学习总结(5)—— 简单的风控示例(含代码)
*** 事件id/*** content的表达式其中content是需要经过表达式解析出来的,所以接受的是个String")//转换表达式val expression = spelExpressionParser.parseExpression(detect.contentSpel)}.toMap()//构建上下文val context = StandardEvaluationContext().apply {
2023-02-28 17:22:16
463
原创 RabbitMQ学习总结(10)—— RabbitMQ如何保证消息的可靠性
一、丢失场景RabbitMQ丢失的以下3种情况:(1)生产者:生产者发送消息至MQ的数据丢失(2)RabbitMQ:MQ收到消息,暂存内存中,还没消费,自己挂掉,数据会都丢失(3)消费者:消费者刚拿到消息,还没处理,挂掉了,MQ又以为消费者处理完二、解决方案。
2023-02-13 14:51:24
1182
原创 Spring Boot 学习总结(33)—— Spring Boot 3 的声明式 HTTP 调用
HttpExchange 类似于 @RequestMapping,可以将之放在类上,起到一个请求窄化的作用,也可以放在方法上,放在方法上我们可以通过 method 属性来指定具体的请求方法,这个也跟 @RequestMapping 类似:@HttpExchange(value = "/server",method = "GET")。由于我们前面提供的 ToDoService 是一个接口,所以我们还需要提供一个该接口的实现类,当然这个配置完全是套路化模版化的,这块就没啥好说了。
2023-02-06 17:00:56
494
转载 一文读懂 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
596
原创 Docker 学习总结(78)—— WebAssembly 入门简介
WebAssembly 是一种定义二进制指令格式的开放标准,它支持从不同的源语言创建可移植的二进制可执行文件。这些二进制文件可以在各种环境中运行。它起源于 Web,并得到各大主流浏览器的支持。
2022-12-31 17:46:01
683
原创 Windows学习总结(25)—— Windows 11 cmd 命令大全
在 Windows 11 中,你可以用几种方式和方法来访问 CMD(又称终端)。通常的方法是在开始菜单中搜索 CMD,或者你可以在运行对话框中输入 CMD,或者按 Windows + X 或在开始菜单上右键单击,打开终端(又称 CMD)。命令功能介绍Help显示基本的CMD命令和每个命令的工作原理说明assoc查看和编辑文件扩展名(你可以指定用哪个程序来打开哪些文件)bitsadmin创建或下载或上传任务并监控其进度call。
2022-12-13 14:26:03
872
1
原创 Java 基础学习总结(203)—— 生成唯一 ID 打印日志记录最佳实践
几乎所有的 Java 项目中的默认日志框架都会选择 slf4j,在打印日志时,每行数据都有一个请求 ID,这样会方便追踪日志。也可以使用一些链路追踪框架来实现这种目的。slf4j 里有一个 MDC 类,是 ThreadLocal 的实现,保存在这里的变量都会绑定到某一个请求线程中,在该请求的线程里的日志代码都可以使用设置的变量。我这里选择配置的是 AOP 切面来实现在 MDC 中设入 REQUEST_ID 来为每一个请求添加 ID。logback-spring.xml 文件。
2022-11-30 10:16:21
326
转载 消息中间件学习总结(24)—— Rocketmq 集群平滑迁移数据中心记录
因为这个时候所有的client还都连接着现有机房的nameserver,所以我们要把新机房部署的broker节点扩容到当前的机房,供业务使用。2、我们在新的当前数据中心的rocketmq 架构是,两个nameserver和三组主从架构的broker节点,迁移到新的数据中心是两个nameserver和两组主从架构的broker节点,因为新的数据中心硬件更强。新的broker节点扩容到当前数据中心之后,当前数据中心的broker节点也要扩容到新的数据中心,只有完成了这一步,才能保证新老数据中心。
2022-11-29 11:26:56
367
原创 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
175
原创 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
220
原创 Java 基础学习总结(201)—— 有效提高单元测试的 5 个编写技巧实践
在计算机编程中,单元测试又称为模块测试,是针对程序模块来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类、抽象类、或者派生类中的方法。” —— 摘录来自维基百科。单元测试(Unit Testing)顾名思义就是测试一个单元,这里的单元通常指一个函数或类,区别于集成测试中的模块和系统。集成测试的测试过程通常存在跨系统模块的调用,是一种端到端的测试;
2022-11-29 10:23:37
209
原创 Go 语言学习总结(8)—— Go 自学者必学的教程大纲
Go语言是目前最受欢迎的语言之一,它具有入门快、程序库多、运行迅速等特点,很适合快速构建互联网软件产品,所以互联网大厂开始纷纷拥抱Go语言。根据《2021 年腾讯研发大数据报告》中显示,随着腾讯云计算和大数据相关业务的迅速发展,Go 语言快速增长,首次超越 C++,成为腾讯最热门的编程语言。公开资料显示字节跳动在 2016 年底到 2017 年初,开始全公司逐步推广 Go,各种项目都启动了 Python 到 Go 的重构工作,以及微服务建设。
2022-11-17 09:54:57
727
原创 Linux 学习总结(91)—— 100 个网络基础概念问答
您可以为计算机分配限制,例如允许访问的资源,或者可以浏览互联网的某一天的特定时间。这是因为互联网上的主机只能看到提供地址转换的计算机上的外部接口的公共 IP 地址,而不是内部网络上的私有 IP 地址。然而,随着越来越多的设备连接到它,它将无法有效地管理通过它的流量。相反,将 LAN连接到中转网络的网关创建了一个使用 IPSec 协议来保护通过它的所有通信的虚拟隧道。在这种设置中,一条电缆的数据传输引脚连接到另一条电缆的数据接收引脚,反之亦然。不知道正确的 IP 地址,甚至无法识别网络的物理位置。
2022-11-17 09:44:46
274
原创 Java 基础学习总结(200)—— GraalVM 为什么能被称为下一代虚拟机
GRAALVM 允许本地代码(例如,C/C++)和 JavaScript 的有效组合。可以直接访问本地数据结构,编译器可以跨任何边界内联。在这样一种场景中,当应用程序的其他部分写入时,在C中管理和分配高效数据结构时,这将是有益的 Node.js。
2022-11-09 14:58:08
733
原创 Spring Boot 学习总结(31)—— Spring Native 主要知识点总结
Spring Native 为使用 GraalVM 原生镜像编译器编译 Spring 应用为本地可执行文件提供支持。与 Java 虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常适合容器和 Kubernetes。使用原生镜像有明显优势,如快速启动,提高峰值性能以及降低内存消耗。GraalVM 项目也有一些缺点和权衡,希望随着时间的推移有所改进。构建本地映像是一个繁重的过程,比常规应用程序要慢,预热后的运行时优化也更少。最后,比起 JVM 很多场景下还不成熟。
2022-11-09 14:44:48
865
原创 Java基础学习总结(199)—— Nacos、Apollo、Config 配置中心如何选型?
目前市面上用的比较多的配置中心有:(按开源时间排序)这里列一个表格总结一下三个产品的功能特点。总的来说,Apollo 和Nacos 相对于Spring Cloud Config的生态支持更广,在配置管理流程上做的更好。Apollo相对于Nacos在配置管理做的更加全面,不过使用起来也要麻烦一些。Nacos使用起来相对比较简洁,在对性能要求比较高的大规模场景更适合。此外,Nacos除了提供配置中心的功能,还提供了动态服务发现、服务共享与管理的功能,降低了服务化改造过程中的难度。
2022-10-22 11:12:24
340
原创 Java基础学习总结(198)—— CompletableFuture 任务编排知识总结
我们知道 Future 的有局限性,它没法直接对多个任务进行链式、组合等处理,需要借助并发工具类才能完成,实现逻辑比较复杂。而 CompletableFuture 是对 Future 的扩展和增强。CompletableFuture 实现了 Future 接口,并在此基础上进行了丰富的扩展,完美弥补了 Future 的局限性,同时 CompletableFuture 实现了对任务编排的能力。借助这项能力,可以轻松地组织不同任务的运行顺序、规则以及方式。从某种程度上说,这项能力是它的核心能力。
2022-10-19 14:12:58
372
原创 开发人员都需要知道的几款优秀数据库管理工具
你可以使用它来加速几乎所有的数据库体验,如设计数据库、编写SQL代码、比较数据库、同步模式和数据、生成有意义的测试数据等等。Devart是知名的数据库管理软件和开发工具的生产商,提供包括Oracle、SQL Server、MySQL、PostgreSQL、InterBase以及Firebird在内的专业数据库远程管理软件,简介美观的UI界面、更符合DBA和开发人员操作的良好体验荣获广泛好评,同时也是微软、Oracle旗下数据库产品推荐管理和开发工具。可以在数据库资源管理器中查看数据库的结构和执行其他任务。
2022-10-19 13:38:20
4240
原创 Terraform 学习总结(10)—— 阿里云平台 Terraform 代码开发技巧总结
Terraform 是一个开源的自动化资源编排工具。资源编排服务 ROS(Resource Orchestration Service)为 Terraform 提供了托管的能力。当您了解了 Terraform 和 Terraform 托管方式,需要开发 Terraform 代码并在 ROS 中使用时,可以采用本文介绍的开发方式和开发建议。
2022-10-09 12:21:06
864
原创 Terraform 学习总结(9)—— 如何解决存量云资源的管理难题
场景一的解决方案:通过 terraform import 命令来完成对存量资源的导入,进而使用 Terraform 统一管理。场景二的解决方案:在确定清楚参数属性具体值之后,如果以模板参数值为准,那么只需运行 apply 命令再变更回来即可;如果以控制台的值为准,那么只需补充或修改模板参数值即可。场景三的解决方案:可以先通过terraform state rm命令将所有需要重组的资源移出State,等模板重构结束后,再使用terraform import将其导入即可。
2022-10-09 12:11:44
764
原创 Terraform 学习总结(8)—— Terraform 常用命令再总结
Terraform 是一个管理 IT 资源的客户端工具,我们可以使用 Terraform 提供的命令来实现对所有资源的管理。Terraform 对资源的管理主要是对资源生命周期的管理,即通过命令实现对 Terraform 模板中所定义资源的创建,修改,查看和删除。来指定。
2022-10-09 12:02:32
1014
原创 Java基础学习总结(197)—— CompletableFuture 异常处理总结
【代码】Java基础学习总结(197)—— CompletableFuture 异常处理总结。
2022-09-29 16:16:24
880
原创 消息中间件学习总结(23)—— Kafka、RabbitMQ、Pulsar、RocketMQ 基本原理和选型
erlang有并发优势,性能较好。虽然源码复杂,但是社区活跃度高,可以解决开发中遇到的问题;业务流量不大的话可以选择功能比较完备的 RabbitMQ。
2022-09-29 15:39:13
268
原创 Docker 学习总结(77)—— 初学者最佳 Docker 极速入门指南
富Web时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。为了更好的理解Docker是什么,我们先来讲个讲个故事:我需要盖一个房子,于是我搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。结果,住了一段时间,心血来潮想搬到海边去。这时候按以往的办法,我只能去海边,再次搬石头、砍木头、画图纸、盖房子。烦恼之际,跑来一个魔法师教会我一种魔法。这种魔法可以把我盖好的房子复制一份,做成「镜像」,放在我的背包里。
2022-09-14 10:03:09
245
原创 Kubernetes 学习总结(36)—— Kubernetes 本地运行的四种方法
Kubernetes 是一个开源的容器编排平台。它由 Google 开发,为自动化部署、扩展和管理容器化应用提供了一个开源系统。无论你的情况如何,将本地 Kubernetes 环境设置为你的开发环境都是推荐的选择,因为这种设置可以创建一个安全而敏捷的应用部署流程。幸运的是,有多个平台可以让你尝试在本地运行 Kubernetes,它们都是开源的,并且都是 Apache 2.0 许可。
2022-09-08 10:27:12
299
原创 Linux 学习总结(90)—— Linux 远程数据同步工具 Rsync(remote synchronize)详解
是为 linux 下 inotify 文件监控工具提供的一套 c 的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件inotify-tools 是用 c 编写的,除了要求内核支持 inotify 外,不依赖于其他inotify-tools 提供两种工具:一是 inotifywait,它是用来监控文件或目录的变化,二是 inotifywatch,它是用来统计文件系统访问的次数。
2022-09-07 10:11:51
194
原创 Java基础学习总结(196)—— Java、Spring、Dubbo 三种 SPI 机制详解
JDK SPIDUBBO SPISpring SPI文件方式每个扩展点单独一个文件每个扩展点单独一个文件所有的扩展点在一个文件获取某个固定的实现不支持,只能按顺序获取所有实现有“别名”的概念,可以通过名称获取扩展点的某个固定实现,配合Dubbo SPI的注解很方便不支持,只能按顺序获取所有实现。...
2022-08-29 14:54:53
201
原创 Kubernetes 学习总结(35)—— Kubernetes 1.25 正式发布,多方面重大突破
美国时间 2022 年 8 月 23 日,Kubernetes 1.25 正式发布。此版本更新距离上版本发布时隔 4 个月,是 2022 年的第二个版本。受新冠疫情和国际形势变化影响以及发布团队的全球化性质,发布过程也经历了非常大的挑战。「1.24 版本 46 个、1.23 版本 45 个」其中 13 个功能升级为稳定版,10 个已有功能进行优化,另有多达 15 个全新功能以及 2 个废弃的功能。Kubernetes 1.25 版本在多个方面实现重大突破,
2022-08-25 13:36:58
4241
2
原创 Docker 学习总结(76)—— 所有项目的容器化部署的基础镜像都应该选择 alpine 吗?
首先,要了解这个问题的来源,为什么纠结这种事呢。当然原因在于,。就算你随便把一个 Java 服务构建成镜像,镜像 Image 大小至少都在 100-200M 左右。这个大小当然还好,但我们做项目基本都是。而且基本上 Docker 的相关教程,一定会讲如何构建空间更小的镜像。使用 Docker 的你,一定也有特别注意到这一点吧。尽量使用适当的方式,构建更小的镜像,这肯定是需要的了。所以问题就来了,基本上很多建议,甚至是。
2022-08-19 10:41:47
247
原创 Linux 学习总结(89)—— sed 入门详解
sed 全名为 stream editor,流编辑器,用程序的方式来编辑文本,功能相当的强大。是贝尔实验室的 Lee E.McMahon 在 1973 年到 1974 年之间开发完成,目前可以在大多数操作系统中使用,sed 的出现作为 grep 的继任者。与 vim 等编辑器不同,sed 是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑指令对输入的文本进行编辑,完成之后再输出编辑结构。sed 基本上就是在玩正则模式匹配,所以,玩 sed 的人,正则表达式一般都比较强。...
2022-08-18 17:45:01
238
原创 权限系统设计学习总结(5)—— 权限系统设计全面总结
日常工作中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。在很多时候我们会觉得这么多繁杂的申请给工作带来不便,并且如果突然想要查一些数据,发现没有申请过权限,需要再走审批流程,时间拉得会很长。那为什么还需要这么严格的权限管理呢?...
2022-08-18 11:01:06
675
3
转载 Kubernetes 学习总结(34)—— 如何理解编排
编排这个词,去搜 google 翻译,推荐的是 Orchestration 这个单词。但是你反过来搜 Orchestration 中文意思,它的翻译是“管弦乐编曲”。在管弦乐曲里,要完成多种乐器之间的协调配合肯定需要一种方法,这种方法也叫编排。由此可感受到,有编排的场景存在多种组件事务,而且这些组件事务具有一定的独立性。个人理解,编排是按照某种机制让各种组件自动化配合运作,然后得到你想要的结果。...
2022-08-17 15:46:07
282
转载 Kubernetes 学习总结(33)—— Kubernetes 是如何重塑虚拟机的
为了改善在 VM 上运行服务的体验,容器改变了我们打包软件的方式,大大降低了对服务器配置的要求,并启用了替代方法来部署我们的工作负载。但就其本身而言,容器并没有成为大规模运行服务的解决方案。顶部仍然需要额外的编排层。Kubernetes 作为容器原生编排系统之一,使用容器作为基本构建块重新创建了过去熟悉的架构模式。Kubernetes 还通过提供用于扩展、部署和服务发现的内置方法来解决传统方案的痛点。...
2022-08-11 15:01:02
204
清华-2018人工智能之自动驾驶研究报告.pdf
2019-09-02
容器网页终端(websocket-webshell)
2017-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人