- 博客(113)
- 收藏
- 关注
原创 领域驱动设计:事件溯源架构简介
事件溯源的定义事件溯源是数据持久化的一种方式——对数据只做新增,不做修改和删除。在一些数据变更非常重要的业务场景,如财务、金融领域,可能会使用这种数据持久化方式。和传统的面向状态的的数据持久化方式相比,事件溯源将每个引发数据变更的动作称之为事件,并把这种事件按照事情发生顺序存储起来。与事件驱动的区别事件溯源和事件驱动,都是以事件为本,事件是它们的核心组成部分,在使用事件驱动的时候也是将引发数据变更的动作称为事件,也会经常把事件按照顺序存储下来,所以有时候经常会把这两种模式混淆。
2025-02-28 17:32:22
368
原创 发布策略:蓝绿部署、金丝雀发布(灰度发布)、AB测试、滚动发布、红黑部署的概念与区别
蓝绿发布提供了一种零宕机的部署方式。不停老版本,部署新版本进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。始终有两个版本同时在线,有问题可以快速切换。比如日常运行时,需要10台服务器支撑业务,那么使用蓝绿部署,你就需要购置二十台服务器。
2025-02-27 18:37:51
122
原创 使用 IDEA 远程 Debug 调试
好像感觉远程调试的用处也不是那么大,不能作为长期使用的调试工具。只能作为临时调试的手段。难点有几个:1.难保证本地代码和远程一致,而且你也很难判断是否一致。2.通过远程调试发现了bug,但是又不能立即修复后继续调试,只能修复后部署后继续远程调试。
2024-12-17 21:05:15
141
原创 2024年最新kali Linux安装教程,超详细,图文结合
官网镜像链接:https://cdimage.kali.org/kali-2023.4/kali-linux-2023.4-vmware-amd64.7z注:本文采用导入虚拟机的方式来实现快捷安装123云盘文件:链接:https://www.123pan.com/s/cvBqVv-4FUXv.html提取码:c7mI。
2024-11-04 10:13:03
977
原创 接口自动化测试实践指导(中):接口测试场景有哪些
在第一篇文章中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作,准备工作中最后一步接口测试用例设计是非常重要的一个环节,用例设计的好不好,直接关系到我们的测试质量,那如何进行测试用例设计呢,这里呢我结合自身经验,帮助大家梳理一下接口测试用例设计思路,希望对大家后续接口测试工作有所帮助和提升。可以看看这个 : https://www.eolink.com/
2024-10-28 17:10:49
970
原创 接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。在这里先不做解答,大家可以带着这个问题去阅读后面的内容,相信自然会得到这个问题的答案。
2024-10-28 16:33:44
1048
原创 Kafka面试题
总的来说,如果你的系统需求是大数据处理和实时流分析,Kafka 是更好的选择;如果你关注的是消息可靠性、多种消息协议支持或需要良好的管理界面,RabbitMQ 可能更适合;而 ActiveMQ 则在需要 JMS 完整支持和更多的高级特性时成为了首选。选择合适的消息系统需要考虑不同的技术需求和业务目标,如消息吞吐量、数据持久性、系统扩展性和开发资源。在做决策时,要仔细权衡每种队列管理系统的优势和局限,并充分理解其在不同场景下表现的差异。
2024-09-13 14:24:07
665
1
原创 Java中常用的设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
2024-08-14 11:19:53
887
原创 XXL-JOB面试问题
XXL-Job 是一款分布式任务调度平台,用于解决分布式系统中的定时任务和异步任务调度问题。它提供了任务的注册、调度、执行和监控等功能,能够帮助开发者简化任务调度的复杂性,提高任务执行的准确性和稳定性。
2024-08-04 21:43:51
478
原创 Java正则表达式matcher.group()用法
总结:其实group(),start(),end()所带的参数i就是正则表达式中的子表达式索引(第几个子表达式),由于刚开始对Java正则表达式中的组的概念不清晰,导致理解困难。当将“组”的概念与“子表达式”对应起来之后,理解matcher的group,start,end就完全没有障碍了。java中正则匹配 group是针对()来说的,因为你匹配到的结果是一组,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西。
2022-12-08 17:29:29
5677
原创 TortoiseGit安装和配置详细说明
TortoiseGit 是免费开源的。TortoiseGit 支持你执行常规任务,例如 commit、显示日志、区分两个版本、创建分支和标签、创建补丁等。
2022-12-02 20:44:51
3401
原创 Java异步注解@Async详解
再查看一下initializeExecutor抽象方法的具体实现类,其中有一个就是ThreadPoolTaskExecutor类,查看它的initializeExecutor方法,使用的就是ThreadPoolExecutor。在需要异步执行的方法上加入@Async注解,并指定使用的线程池,当然可以不指定,直接写@Async。的名称,也就是不自定义线程池,@Async是有默认线程池的,使用的是Spring默认的线程池SimpleAsyncTaskExecutor。配置文件中的线程池核心线程数为何配置为。
2022-11-10 16:47:26
22201
原创 互联网从业人员周报述职面试必备词汇,史上最全分类集合,技术产品运营通吃~
车联网、物联网、智能联网、泛联网、万物联网、云计算、公有云、私有云、混合云、金融云、资管云、云游戏、全云化、中台、业务中台、技术中台、组织中台、数据中台、战略中台、基础设施即服务、平台即服务、软件即服务、新零售、智能货柜、智能营销、智能家居、智能客服、智能投顾、智能工业、智能法院、智慧物流、智慧农业、智慧园区、智慧城市、人工智能、区块链、数字货币、套现、庞氏骗局。注:本词典体量较大,请根据自己的掌握情况,循序渐进,深度学习,切忌囫囵吞枣,邯郸学步。
2022-11-09 16:23:18
3405
原创 java8中LambdaQueryWrapper的使用
上面这段代码的意思就是,首先新建一个LambdaQueryWrapper对象,类型为PbListBlack对象,也就是你需要查询的实体数据,这两句的意思是PbListBlack对象对应的数据库表中的OPTYPE,BLTYPE字段值要为1。
2022-11-04 15:23:36
2637
原创 Linux常用命令大全(史上最全!)
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录。mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件。
2022-11-04 14:42:24
788
原创 Intellij IDEA快捷键大全汇总(二)
1.Ctrl+E,可以显示最近编辑的文件列表2.Shift+Click可以关闭文件3.Ctrl+[或]可以跳到大括号的开头结尾4.Ctrl+Shift+Backspace可以跳转到上次编辑的地方5.Ctrl+F12,可以显示当前文件的结构6.Ctrl+F7可以查询当前元素在当前文件中的引用,然后按F3可以选择7.Ctrl+N,可以快速打开类8.Ctrl+Shift+N,可以快速打开文件9.Alt+Q可以看到当前方法的声明10.Ctrl+W可以选择单词继而语句继而行继而函数。
2022-11-03 14:25:12
3191
原创 Java爬虫详解
我们需要提取图中圈出来的内容及其对应的链接,在提取的过程中,我们会使用两种方式来提取,一种是 Jsoup 的方式,另一种是 httpclient + 正则表达式的方式,这也是 Java 网络爬虫常用的两种方式,你不了解这两种方式没关系,后面会有相应的使用手册。在正式编写提取程序之前,我先交代一下 Java 爬虫系列博文的环境,该系列博文所有的 demo 都是使用 SpringBoot 搭建的,不管你使用哪种环境,只需要正确的导入相应的包即可。
2022-11-03 10:56:49
5470
2
原创 @scheduled注解作用
用来开启定时任务fixedRate 任务两次执行时间间隔是任务的开始点,而 fixedDelay 的间隔是前次任务的结束与下次任务的开始。@Scheduled(fixedRate = 5000) 5秒执行一次cron表达式详解一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。按顺序依次为:秒(0~59)分钟(0~59)3 小时(0~23)4 天(0~31)5 月(0~11)6 星期(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)年份(1970-20
2022-08-04 15:32:34
445
原创 SpringBoot 中到底如何解决跨域问题?
同源策略是浏览器的一个重要的安全策略,它用于限制一个源的文档或其加载的脚本如何与另外一个源进行交互,它能够隔绝恶意文档,减少被攻击的媒介。如果两个URL的协议、主机名和端口号都是相同的,那么这两个URL就是同源的,否则不同源,不同源的访问就会出现跨域问题,就会出现上面的错误。下表给出了与 URLURL结果原因同源只有路径不同非同源协议不同非同源端口号不同非同源主机名不同也就是说当在这个网站中向、和三个地址发起AXJX请求都会失败并且会报跨域的错误。...
2022-08-04 15:27:00
840
原创 解决Springboot文件上传报错,java.io.FileNotFoundException: E:\System\Temp\tomcat.819...00.tmp (系统找不到指定的文件。)
但是仍然报错,此刻我单独使用语句方法getInputStream( )上传txt,依然是这个错,指向了Temp临时文件夹里,百思不得其解,最终发现了是没有开启Springboot配置。使用getInputStream( )读取txt文件已经成功了,但当我上传图片时依然报错,此时需要增加上面的文件写入磁盘的阈值。在application.properties配置文件中,开启文件上传选项。然后 方法一和方法二都不会报错了。...
2022-08-04 14:58:44
1757
1
原创 保密教育线上培训考试参考答案 03
1.关于涉外活动保密管理要求,下列说法错误的是()。正确答案:D. 在紧急情况下,利用国(境)外通信设施进行涉密通信联络2.参加涉外活动一般不得携带涉密载体,确需携带机密级、秘密级涉密载体的,要经()批准。正确答案:C. 机关、单位主管领导3.涉密人员离开原涉密单位,调入其他国家机关和涉密单位的,脱密期管理由()负责。正确答案:D. 调入机关、单位4.国家秘密确定的基本程序为:在国家秘密产生的同时,由()对照保密事项范围提出定密的具体意见,再由定密责任人审核批准。正确答案:C. 承办人5.国
2022-06-15 17:08:49
49307
原创 保密教育线上培训考试参考答案 02
1.下列关于涉密计算机使用的说法正确的是()。正确答案:D. 涉密计算机及时安装和升级专业“木马”查杀工具2.涉密打印机与涉密计算机之间()。正确答案:D. 不能采用无线连接方式3.下列说法正确的是()。正确答案:D. 淘汰、报废涉密计算机时应将涉密计算机经过专业消磁处理4.定密责任人在职责范围内承担有关国家秘密()工作。正确答案:D. 以上都正确5.涉密人员是指在( )、涉及国家秘密的单位涉密岗位工作的人员。正确答案:D. 以上都正确6.下列关于预防和查杀“木马”间谍程序的措施,表述错
2022-06-15 16:56:49
37507
原创 保密教育线上培训考试参考答案 01
1.机关、单位应当严格按照经过批准的范围对外提供涉密资料,并与外方签订(),限定涉密资料的使用和知悉范围。正确答案:B. 保密协议2.按照公职人员政务处分法有关规定,有()行为造成不良后果或者影响的,予以警告、记过或者记大过;情节较重的,予以降级或者撤职;情节严重的,予以开除。正确答案:D. 以上都正确3.下列关于涉密载体销毁的说法错误的是()。正确答案:B. 涉密载体销毁的登记、审批记录无须保存4.保密期限是对国家秘密采取保密措施的时间要求。保密期限包括的形式有()。正确答案:D. 以上都正
2022-06-15 16:49:52
76318
2
原创 协程、同步与异步在java中的实现
前言 最近在学习协程,打算输出几篇文章来介绍一下协程。而协程与异步有很大的关联,所以想先介绍一下异步。异步是一种程序的运行方式,各种编程语言语言或多或少都对它有所支持。异步对于Java后端程序员来说并不是一种特别熟悉的概念,而安卓或者前端的同学可能会对异步这个概念会更熟悉一些。程序同步和异步同步是最简单也是最符合我们人类思维方式的编程方式,所谓同步,就是程序会按照代码一行行执行,执行完一句再执行下一句。同步代码看起来是这样:stepA();stepB();stepC(....
2022-04-13 17:43:44
1411
2
原创 [Git]pull遇到错误:error: Your local changes to the following files would be overwritten by merge,解决办法
这种情况下,如何保留本地的修改同时又把远程的合并过来呢?首先取决于你是否想要保存本地修改。(是/否)是我们有如下三个步骤: git stash git pull origin master git stash pop git stash的时候会把你本地快照暂存,然后你可以用代码编辑器重新读取项目文件, 这时执行git pull操作就不会报错了,pull完之后这时你的代码并没有保留你的修改。这时候执行git stash pop,你...
2022-02-23 17:08:11
1634
原创 云安全技术有什么特点?云安全包含哪些方面?
1. 概述 随着云计算逐渐成为主流,云安全也获得了越来越多的关注,传统和新兴的云计算厂商以及安全厂商均推出了大量云安全产品。但是,与有清晰定义的“云计算”(NIST SP 800-145和ISO/IEC 17788)不同,业界对“云安全”从概念、技术到产品都还没有形成明确的共识。从发展的脉络分析,“云安全”相关的技术可以分两类:一类为使用云计算服务提供防护,即使用云服务时的安全(security for using the cloud),也称云计算安全(Cloud Computin...
2022-02-22 10:53:01
15321
原创 高并发之API接口限流
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流缓存缓存的目的是提升系统访问速度和增大系统处理容量 降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开 限流限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理问题描述 某天A君突然发现自己的接口请求量突然涨到之前的10倍,没多久该接口几乎不可使用,并引发连锁反应导致整个系统崩溃。如何应对这种情...
2021-12-23 10:57:05
1269
原创 Intellij IDEA快捷键大全汇总(一)
Ctrl快捷键相关快捷键 介绍 Ctrl + F 在当前文件进行文本查找(必备) Ctrl + R 在当前文件进行文本替换(必备) Ctrl + Z 撤销(必备) Ctrl + Y 删除光标所在行 或 删除选中的行(必备) Ctrl + X 剪切光标所在行 或 剪切选择内容 Ctrl + C 复制光标所在行 或 复制选择内容 Ctrl + D 复制光标所在行 或 复制选择内容,并把复制...
2021-12-13 14:35:10
249
原创 推荐算法大致分类
在推荐系统简介中,我们给出了推荐系统的一般框架。很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。一、基于内容推荐基 于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例...
2021-12-09 18:13:37
3472
原创 JDK1.8下载、安装和环境配置教程
一、下载安装包 1.如果大家想下载别的版本,可以去官网:www.oracle.com下载,进入官网页面,然后点击Downloads。2.下拉页面,找到下载区域,点击Java。3.点击Java(JDK) for Developers。 4.这时进入了JDK的下载页面,不过这里显示的是JDK的最新版本(目前更新到JDK12),但一般情况下开发人员会选择之前的版本,更稳定。可以根据个人需要进行选择,如果想要下载其他版本的JDK,将页面下拉到底部。...
2021-12-07 16:05:53
990
原创 PB级分析型数据库ClickHouse的应用场景和特性
在百花齐放的交互式分析领域,ClickHouse 绝对是后起之秀,它虽然年轻,却有非常大的发展空间。本文将分享 PB 级分析型数据库ClickHouse 的应用场景、整体架构、众多核心特性等,帮助理解 ClickHouse 如何实现极致性能的存储引擎,希望与大家一起交流。...
2021-11-25 17:54:01
2347
1
原创 Git分支策略和Git操作规范
一、Git分支策略1. Git分支管理策略Git分支策略主要有三种 1. Git Flow 2. GitHub Flow 3. GitLab Flow 项目使用保守的Git Flow,在此基础上会做一些微调。 Git FLow 1. Git Flow主要有2类分支:常驻分支和临时分支 2.常驻分支:master分支和develop分支 3.临时分支:feature分支、release分支、fixbug分支 一般的Git Flow分支结构如下图: 2. 常驻分支mas..
2021-10-20 11:25:42
696
原创 用redis做游戏内的各种排行榜功能
一、前言年前公司有很多活动要进行定制开发,活动中有游戏可以玩,最后对每个人的游戏分数进行排行展示,最终根据排名发放奖品。乍一看需求确实很简单,直接order by score一下不就完事了?需求确实简单,但是有不少小坑,故在此记录一下。二、需求排行榜展示前100名最佳分数排行榜 如果当前登录人在100名之后,则展示内容有两项 前100名最佳分数排行榜 当前登录人排名以及前后两个用户的排名 数据库表设计user_id:用户ID user_nickname:用户昵称..
2021-08-13 16:43:23
1481
转载 游戏服务器架构设计的一些整理
一、前言没有最好的架构,只有最适合自身业务的架构。首先我们应该确定的是大的架构方向:分布式 / 单应用+负载均衡,这两种架构设计直接影响后续的网络层、缓存层、数据层、业务层的设计。笔者这两种架构的应用都接触过,两种架构各有优劣:分布式架构在业务层设计上更轻巧,更容易迭代,并且将各个业务模块独立开来可以大量减少锁竞争、线程阻塞的情况,可以做到无状态数据通信,天然支持跨服业务,且耦合性低内聚性高……缺点是分布式架构会有进程间调用上的性能损失(但是在现在硬件条件下损失微乎其微),且相对于单应用架构技术
2021-08-05 19:17:00
1483
原创 java.nio.ByteBuffer常用方法详解
一、前言在Java nio中,主要有三大组件:Buffer,Channel和Selector。这三者之间的关系可以按照如下方式进行理解:Buffer提供了一个字节缓冲区,其可以不断的从Channel中读取接收到的数据。Buffer的优点主要在于其提供了一系列的Api,能够让用户更方便的对数据进行读取和写入; Channel简单来说就是一个信道,也就是客户端与服务器的一个连接,而且每个客户端都会对应一个Channel对象; Selector是Java nio能够支持高并发数据处理一个关键,其核心理
2021-08-04 18:17:42
5452
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人