自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (3)
  • 收藏
  • 关注

原创 一文吃透SaaS、PaaS、IaaS,告别云服务小白!

例如,PaaS 平台通常基于 IaaS 提供的基础设施来运行,利用 IaaS 的弹性计算和存储资源,为开发者提供稳定、高效的开发和部署环境;例如,通过人工智能技术实现资源的智能调度和优化配置,根据用户的业务需求和使用习惯,自动调整计算、存储和网络资源的分配,提高资源的使用效率,降低能源消耗。例如,针对医疗行业,SaaS 提供商将开发出更加专业、个性化的医疗管理软件,不仅具备基本的电子病历、预约挂号等功能,还能与医疗设备进行深度集成,实现医疗数据的实时采集和分析,为医生提供更准确的诊断依据。

2025-02-14 13:54:02 1539

原创 解锁Dubbo与SpringCloud整合的奇妙之旅

Spring Cloud 是一个基于 Spring Boot 构建的微服务开发框架,它为开发者提供了一系列用于构建分布式系统的工具和组件,极大地简化了分布式系统的开发难度。其核心功能涵盖了服务注册与发现、配置管理、负载均衡、断路器、智能路由、微代理、控制总线等多个方面,为构建稳定、高效、可扩展的微服务架构提供了全方位的支持。在 Spring Cloud 的生态系统中,众多核心组件协同工作,共同发挥作用。以 Eureka 为例,它作为服务注册中心,承担着服务实例的注册与发现职责。

2025-02-11 16:56:40 762

原创 记录Dubbo和Spring boot 版本对应关系

记录一下JDK、Dubbo 、Spring Boot的版本对应关系,如果版本不对应的话,很有可能出现兼容性问题的。

2025-01-22 17:55:27 285

原创 Springboot + Redis + lua 实现自定义编码的业务需求

在实际的业务场景中,很多时候业务会要求我们生成指定格式的编码,且要求编码唯一性。那么当两个线程同时请求新增编号时,如果只用数据库表数据存储当前最大编号值,那么两个线程同时取数据,就会取到相同的数据,严谨一点说,当一个线程提交事务之前,其他线程获取到的最大编号值都是旧数据,此时两个线程获取的编号按照业务规则,就会产生重复的编号,这种情况如果只是简单的用抛出异常或者设置唯一性约束是不能够说服业务的,所以此时就需要换一种思路考虑,如何更加高效的,尽可能的避免并发所带来的编号重复问题。

2025-01-20 10:21:35 807

原创 docker-compose.yml搭建rabbitmq

idea docker-compose.yml快速搭建rabbitmq,讲解一些配置信息和操作方法

2024-12-17 15:39:44 361

原创 Docker启动MySQL, DBeaver连接报错,提示Public Key Retrieval is not allowed Public Key Retrieval is not allowed

在DBeaver中,编辑连接 - 驱动属性 - allowPublicKeyRetrieval设置成true,然后点一下测试连接。如果使用的是其他软件连接数据库,百度一下看看在哪里设置这个参数。所以看完这个解释就知道怎么玩了,在idea里面配置数据库连接信息的时候,url后面加上这个参数&AllowPublicKeyRetrieval=true就可以正常连接数据库了。辛辛苦苦的好不容易把docker搭建好了,拉取了MySQL的镜像,启动了MySQL容器,提示成功!,可能平时都没注意过,直接CV过来的。

2024-12-13 10:48:28 339 1

原创 logback配置参数详解

从控制台上看,的确每条日志信息都被打印出了四次,但是细心从配置文件上来看,root 的日志级别配置的为 info,但是却输出 debug 级别的日志信息,所以从测试结果可以看出,向上传递的日志信息的日志级别将由最底层的子元素决定(最初传递信息的 logger),因为子元素设置的日志级别为 debug,所以也输出了 debug 级别的信息。datePattern:时间输出格式,遵循SimpleDateFormat 的格式,定义变量后,可以使用 “${}” 来使用变量。当日志级别低于临界值时,日志会被拒绝。

2024-12-10 17:56:01 1098

原创 解决异常:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name

从这个异常信息中,可以看到是由于注入rankService这个bean的时候抛出了这个异常,出现这个异常的原因可能有以下几种:1. **controller类上面没有添加@Controller或者@RestController注解**2. **被controller调用的service类没有添加@Service注解**3. **被service调用的dao或mapper类没有添加@Mapper主键**4. **启动类上的包扫描,未包含到当前这个controller**

2024-12-09 11:34:44 2137

原创 在职状态下继续学习的心得体会

明确了学习方向之后,就是学习时间的安排了,其实这个就看你自己的时间了,不要感觉中午的时间短就算了,其实一个小时甚至半个小时,足够看一个小的技术点了,即使只是记了个大概,有点了印象,这样也是好的。,只有先了解审视清楚自己,才能够明确学习目标,这也是学习之前最重要的一步,不要感觉这件事浪费时间,如果你盲目的开始学习,东学一点,西学一下的,这种学习下去绝对坚持不了多久,因为学着学着,你就不知道该学什么了。所以,千万不要嫌麻烦,先列出来XMind,有了这个大纲,你的学习方向也就明确了。加油💪🏻打工人👷🏻‍♂️。

2024-01-08 17:07:46 454 1

原创 activiti7 设置流程启动者startUserId

Authentication提供了get和set静态方式,因此我们可以在流程实例启动代码之前,通过Authentication.setAuthenticatedUserId()来设置startUserId。流程实例启动之后,查询了一下实例的详情,发现其中有个startUserId(流程启动者)字段为空,在后续的查询中会用到该字段查询用户启动的流程列表,因此在流程实例启动时,需要设置一下该参数。我这里设置了流程参数,用于赋值审批人,你也可以按照具体的业务需求来设置所需的流程参数,或者不设置都是可以的。

2023-12-08 17:58:25 1179

原创 使用activiti7整合swagger2访问拦截跳转了登录页

OK,重新启动一下服务,在启动日志中就看不到Using generated security password这条提示了,此时打开swagger2,弹出登录框,输入预先设定的账号密码,登录成功,就可以看到接口文档啦。第一步:先设置一下自定义登录密码,默认生成的密码用起来很麻烦,这里说一下,默认的密码对应的默认账号是user,密码就是上面那个启动日志里自动生成的。看到这个登录界面,就感觉到不对劲了,去翻了一下启动日志,果然是Spring Security导致的。

2023-12-08 13:37:24 561

原创 rabbitmq消费者使用@RabbitListener完整快速跑demo教程

网上对于使用rabbitmq发送消息的文章还是很多的,对于生产者这里就不做过多的介绍了,本文详细的介绍一下再使用消费者消费消息的时候,常用的步骤及遇到的坑~有不对的地方欢迎指出。首先,先缓一缓有些迷茫的大脑,梳理一下你现在完成到哪一步了,接下来需要做哪一步。`前提条件:生产者已经搭建好了,rabbitmq已经启起来了,消息也发到了rabbitmq上`

2023-11-30 17:17:05 1357

原创 vue3 报错解决:找不到模块或其相应的类型声明。(Vue 3 can not find module)

4、点击“TypeScript and JavaScript Language Features”右下角的小齿轮,然后选择“Disable (Workspace)”。1、在当前项目的工作空间下,用 Ctrl + Shift + P (macOS:Cmd + Shift + P) 唤起命令面板。2、输入 built,然后选择“Extensions:Show Built-in Extensions”。5、重新加载工作空间。3、在插件搜索框内输入 typescript (不要删除 @builtin 前缀)。

2023-10-12 13:17:18 11350 1

原创 Mac安装pnpm

2、执行命令 npm install --location=global pnpm 即可安装成功。3、执行命令 pnpm -v 检查pnpm是否安装成功。1、执行命令 sudo -s 切换管理员权限。4、pnpm add – 安装指定的包。

2023-10-09 10:42:34 3743

原创 Activiti学习之路4-流程符号

BPMN 2.0是业务流程建模符号2.0的缩写它是由Business Process Management Initiative 这个非营利协会创建并不断发展。作为一种标识,BPMN 2.0是使用一些符号来明确业务流程设计流程图的一整套符号规范,它能增进业务建模时的沟通效率。BPMN 是用于在BPM上下文中进行布局和可视化的沟通。

2023-09-28 13:13:55 112

原创 Activiti学习之路3-表结构介绍

Activit在部署添加资源时,如果发布部署文件是流程文件(.bpmn或者.bpmn20.xml)其除了会将内容保存到资源表外,还会解析流程文件的内容,并形成特定的流程定义数据,写入到流程定义表中。字段名数据类型备注ID_主键,与其他数据表不同的是,ACT_RE_PROCDEF表的主键是组合主键,一般使用一定的规则来产生主键REV_int数据版本号CATEGORY_流程定义分类NAME_流程定义名称KEY_流程定义的KEYVERSION_int流程定义的版本。

2023-09-25 18:02:26 437 1

原创 Activiti学习之路2-配置介绍

使用activiti流程建模工具(activity-designer)定义业务流程(.bpmn文件)。.bpmn文件就是业务流程定义文件,通过xml定义业务流程。activiti部署业务流程定义。使用activiti提供的api把流程定义内容存储起来,在activiti执行过程中可以查询定义的内容。activiti执行把流程定义内容存储在数据库中。

2023-09-25 15:24:40 210 1

原创 Activiti学习之路1-工作流简介

工作流(workflow):就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。activiti官网GitHub地址。

2023-09-25 14:21:52 101 1

原创 xxl-job快速上手

在正常的业务系统中,定时任务是必不可少的,比如:定时发送短信,定时发送邮件,定时处理一些数据,定时数据统计等等。

2023-03-17 14:42:06 218

原创 Apollo-阿波罗配置中心超详细教程

Apollo基本概念一、简介Apollo - A reliable configuration management systemApollo的Github地址Apollo包括服务端和客户端两部分:1、服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。2、Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。二、特性基于配置的特殊性,所以Apollo从设计

2023-03-15 16:32:50 13453 1

原创 RocketMQ之Broker

作为消费者的系统在获取消息的时候会先发送请求到Master Broker上去,请求获取一批消息,此时Master Broker是会返回一批消息给消费者系统,然后Master Broker在返回消息给消费者系统的时候,会根据当时Master Broker的负载情况和Slave Broker的同步情况,向消费者系统建议下一次拉取消息的时候是从Master Broker拉取还是从Slave Broker拉取。消费者消费消息:有可能从Master Broker获取消息,也有可能从Slave Broker获取消息。

2023-03-08 21:48:20 781

原创 多系统数据拼接分页查询

多系统对接数据拼接,还有很多其他的解决方案,本文只提供了两种常见的简单的方案供大家参考,毕竟涉及到上下游系统对接的时候,不光是技术问题,还会存在很多的问题,大家懂得,所以在思考解决方案的时候,尽可能的想的细一些、全面一些,这样在讨论会上的时候,你才有可能说服下游配合你实现你的方案,话不多说,言尽于此,希望本文对大家有些作用。前段时间遇到了这样一个问题,在订单页面查询时,除了分页查询订单的核心信息之外,还需要去其他系统中调用一些附属信息,此时就涉及到了时效问题,对于如何解决这个问题,我整理了如下的几种方法。

2023-02-21 16:06:32 644

原创 RocketMQ之NameServer

因为NameServer是集群中非常关键的一环,它管理着Broker信息,所有系统都需要通过它才知道和哪个Broker通信,所以必须要高可用,即便任何一台服务器宕机了,其他服务器上的NameServer可以继续对外提供服务。这样每个NameServer都包含了所有broker的信息,即使某一台NameServer宕机了,其他的NameServer也可以继续对外服务,不会出现丢失数据的情况,确保了NameServer的高可用。生产者和消费者,每隔一段时间,定时的发送请求到NameServer去拉取最新的。

2023-02-14 12:11:44 1001

原创 RocketMQ的架构原理

其实生产者会把消息分散的发送给多台不同的服务器上,假设有10w条消息,分散发给10台服务器,平均每台服务器也就接收到1w条消息,每台服务器上部署的RocketMQ进程一般称为Broker,每个Broker都会收到不同的消息,然后把这些消息存储在本地磁盘文件中。那么此时,MQ就得存储大量的消息,可能是几百万条,几千万条,甚至是上亿条,这么多消息在一台服务器上肯定是没法存储的,所以此时就需要通过分布式存储海量消息。对于生产者来说,只需要去NameServer上获取路由信息,将消息发送到Broker上,

2023-02-13 21:17:54 277

原创 消息中间件:RabbitMq

RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。MQ全称为,消息队列(MQ)是一种应用程序对应用程序的通讯方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。

2023-02-13 00:14:56 87

Axure rp 8_0进阶视频教程(进阶52课时)

Axure rp 8_0进阶视频教程(进阶52课时),建议先看我之前发的基础教程后再来看进阶教程,共计52个课时,大家有兴趣的可以下载看看。

2019-04-09

Axure rp 8_0基础视频教程

Axure rp 8_0基础视频教程视频,很不错的视频,教的很详细。有需要的可以下载看看。

2019-04-09

空空如也

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

TA关注的人

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