- 博客(66)
- 收藏
- 关注
原创 flowable 6.8 + flowable ui + spring boot的例子
启动一个项目--》后端开发--》提交给测试人员1,或者测试人员2(这里用排他网关,如果通过则流程结束,如果测试不通过则回退给开发,但是回退流程不能超过3次)--》流程结束。然后将jar放到webapps下,然后再jetty根目录执行java -jar start.jar就可以启动了。2.flowable ui 6.8 加 jetty 9.4.58(也可用tomcat来代替 ui的启动容器)flowable 测试清表脚本。1.首先看pom依赖。
2026-01-02 11:56:37
252
原创 spring boot+nacos+gateway+sentinel的简单例子
服务注册+网关+限流熔断(包含网关限流,自服务熔断)spring boot nacos测试配置。gateway的pom。gateway的配置。
2025-12-31 15:56:03
299
原创 Java函数式编程之成都往事
不过函数式编程,有些人喜欢用,有些人不喜欢用,各有利弊,比如上面的测试代码就很啰嗦,但是调用者去调用的时候,拓展性很舒服,就是读代码很头疼,设计着也很头疼,先大致有个了解吧。我们另辟蹊径,不用Java自带的哪些function了,自己再自定义两个自定义的function来满足我们的需求,具体function的实现由调用者自己去实现。我们再创建一个服务类,用来给后来的调用者去具体实现,我们作为一个框架就像项目初期的PPT一样,只画大饼描述大致流程步骤。1.做手术之前得判断这个人是不是男的,是男的就给做。
2025-05-27 11:16:55
378
原创 对AOP知识的一些汇总
技术代理方式支持类 / 接口织入时机功能复杂度性能JDK 动态代理接口代理仅支持接口运行时简单较高CGLIB子类代理支持类和接口运行时简单较高(生成开销略大)Spring AOPJDK/CGLIB 混合支持类和接口运行时中等较高AspectJ(编译时)修改字节码支持类和接口编译时 / 类加载时复杂最高(无运行时代理开销)6.如何选择?优先使用 Spring AOP:如果需求简单,且在 Spring 框架内(如事务管理、日志)。
2025-05-22 11:09:13
898
原创 SpringBoot中使用集群版Redis
现在我们要使用集群版了,那肯定就得重新定制一些配置,用来满足我们的需求。这三个类中, RedisConfig适配单机版的redis, ClusterRedisConfig适配集群版的redis,RedisService封装了RedisTemplate作为服务类可以引入到我们项目中直接使用. 其中单机版和集群版配置可以通过配置文件灵活配置.@Component@Slf4j@Autowired/*** 缓存基本的对象,Integer、String、实体类等* @param key 缓存的键值。
2025-05-13 10:33:52
788
原创 AOP Advice,Pointcut,Joinpoint和Advisor
定义:Advice是一个接口,是AOP中的一个核心概念,表示切面在连接点(程序执行的特定点,如方法的调用或异常的抛出)上执行的操作。用于定义在连接点上执行的增强逻辑。它本身不是连接点,而是在连接点触发时执行的一段代码。作用:Advice用于在方法执行前、执行后、抛出异常时等不同的执行点插入额外的逻辑,类似于AOP中的切面。它可以用于在不修改原始方法的情况下,实现一些横切关注点的功能,比如日志记录、性能监控、事务管理等。是程序执行过程中某个特定的位置,例如方法调用前、调用后或抛出异常后等。
2025-05-12 13:48:12
1042
原创 mysql8.x 新增一个端口映射到当前服务(Windows)
3. 创建一个用户( 'myuser'@'%' %指的是所有IP都能访问)1. 查看当前端口是否被占用。
2024-07-26 10:08:09
309
原创 activiti用法随记
虽然 Activiti 主要支持 BPMN,但它也可能通过扩展或插件支持其他流程定义语言,如 BPEL(Business Process Execution Language)。
2024-06-06 13:33:29
973
原创 spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)
放置到resources下。modeler 就可以了。
2024-06-04 21:33:13
600
原创 git随记
*注意:**如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数–allow-unrelated-histories。适用场景:例如某需求先后进行过第一、第二、第三次版本提交之后发现第二个版本有问题,需要撤销第二个版本的操作,同时保留第三次版本的提交,可使用git revert操作。,再次查看状态就没了。
2024-05-30 19:38:24
1259
1
原创 CompletableFuture 和 ExecutorService 任务拆分的简单例子
假如我们有一个记录流水号的列表List lshList = new ArrayList();此流水号时某一个map中的key,map中的value则是流水号对应的业务数据, 我们想将列表分为三份,通过异步任务分别处理他们,并将处理结果进行合并。
2024-05-23 10:00:39
439
原创 Quartz Scheduler 动态定时任务
假如有一个场景:比如当前定时任务执行时间不确定,有可能10分钟执行完毕,也有可能20分钟才执行完毕,也有可能时间会更长。如果设置成20分钟执行一次,如果涉及到数据库操作,两个定时任务都跑起来了,就可能会导致数据异常,怎样设计让当前定时任务执行完毕后,5分钟后再次执行,始终保持一个任务执行呢?由于你的需求是动态地调度任务,你可能需要在运行时动态地创建和更新这些对象。相反,你可能需要在任务执行完成后,通过其他方式(如事件监听器、回调方法等)来重新调度任务。来监听任务的完成事件,并在事件处理程序中重新调度任务。
2024-05-20 11:37:21
870
原创 spring cloud gateway一些相关概念
例子:假如有两个相同的服务实例cloud-payment-service(即它们提供相同的功能和API),并且你希望它们能够共同分担负载(即实现负载均衡,端口分别为8001和8002),现在通过gateway的断言设置分别请求这两个服务里的/payment/hello方法。路由:路由是构建网关的基本模块,它由ID,目标URI,一系列的断言Predicates和过滤器Filters组成,如果断言为true,则匹配该路由。作为API网关,会首先接收到来自客户端的请求,并在处理这些请求时可能会涉及到。
2024-05-20 00:42:28
1195
原创 Hystrix一些概念
这里还需要注意的是:客户端访问服务端,如果服务端产生了异常,我们如何获取服务端的异常呢?在使用Feign作为声明式HTTP客户端时,如果后端服务调用失败(例如,超时、网络错误、服务端返回非2xx状态码等),你可以使用。
2024-05-19 12:47:14
931
原创 菜鸟学dubbo 2.x配置笔记(更新中)
连接控制功能可以使用户能够控制和管理进出服务器连接数,限制连接数并设置超时,以确保 Dubbo 系统的稳定性和性能,还允许用户根据 IP 地址、端口和协议配置不同级别的访问控制,保护系统免受恶意流量的影响,并降低服务中断的风险,此外提供了一种监视当前流量和连接状态的方法。为方便开发测试,可以让服务提供者开发方,只订阅服务(开发的服务可能依赖其它服务),而不注册正在开发的服务,通过直连测试正在开发的服务,因为如果一个正在开发中的服务提供者注册,可能会影响消费者不能正常运行。接口,用于处理订单相关的业务逻辑。
2024-05-16 23:59:03
1166
原创 一个简单的webservice客户端demo
首先我们是客户端,我们要找一个服务端来配合我们调试,可以在这个网址里找个你喜欢的免费服务。我们新建一个maven工程,在pom文件里引用axis依赖(可以在此连接。然后我们创建一个client。填入刚刚的wsdl url(我们再写个测试类调用一下看看。然后就生成了相应的类。对axis进行了解)。
2024-05-16 13:54:54
444
原创 小白学dubbo傻冒连问-长连接篇
在Dubbo中,如果默认的线程池大小设置为200,并且同时有超过200个请求到达,那么具体会发生什么取决于Dubbo的线程池类型和业务场景。另外,Dubbo的默认连接数通常是200,但这并不意味着每个服务接口都会使用这么多连接,实际的连接数取决于你的配置和业务需求。总之,在Dubbo中处理超过默认线程池大小的并发请求时,需要根据具体的业务场景和性能需求来选择合适的线程池类型和配置参数。Dubbo的默认连接数通常是200,但这并不意味着每个服务接口都会使用这么多连接,实际的连接数取决于你的配置和业务需求。
2024-05-15 22:32:42
1679
原创 Maven 依赖排查
总之,这两个术语都涉及Maven在构建项目时如何处理依赖冲突,但“omitted for duplicate”更侧重于描述多个相同依赖项的存在,而“omitted for conflict with”则更具体地指出了哪个依赖项与当前依赖项存在冲突。在 Maven 的依赖树中,当你看到“omitted for conflict with 1.0.5”这样的信息时,它意味着 Maven 在解析依赖时遇到了版本冲突,并决定省略(排除)了与指定版本(在此例中为 1.0.5)冲突的那个依赖。
2024-05-15 17:17:40
1854
原创 Dubbo配置上的一些概念
在Dubbo中,QoS服务可以通过动态的方式对服务进行查询和控制,比如获取当前提供和消费的所有服务,以及动态地将服务进行上下线操作,即从注册中心上进行注册和反注册。然而,随着服务数量的增加,注册中心存储的元数据也会不断增加,导致注册中心的压力逐渐增大。在Dubbo的服务治理中,元数据主要包括服务的一些基本信息和特性,比如服务分组、服务版本、服务名、方法列表、方法参数列表、超时时间等。在服务注册与发现的过程中,注册中心会存储服务的注册信息(如服务名、地址列表等),而元数据中心则存储了服务的元数据。
2024-05-15 15:28:01
1367
原创 rabbitmq交换机,死信队列的简单例子
假设我们有一个场景,生产者有消息发到某个直连交换机,这个交换机上有两个队列分别存储两种类型的消息,但是与这两个队列相连的消费者太不争气了,处理消息有点慢,我们想5秒钟这个消息在队列中还没有被消费的话,就给它丢进死信队列里得了,后续再处理,但是这俩队列明显存储的消息不一样,我们又不好意思将它都扔到同一个死信队列里去,如果我们想要俩死信队列分别装这两个消费者漏掉的消息,那我们怎么做呢?:我们先创建一个工具类用来连接rabbitmq,注意你需要去创建对应的虚拟主机,以及对应的登录账号和密码。
2024-05-14 18:07:22
737
原创 河南方言翻译
懒着个jio子:懒,不想动,不想做某事。迷登:迷糊,脑子不清醒,反应不过来。麻剌(la):小凸起不平,摸着刺手。姥娘:小孩称女方父母,也就是外婆。憋住:忍住不做某事,不发声或不哭。来kie(发降音:客也):来客人。piu(发重音:坡一悠):屁股。带(发音:呔)劲儿:得劲,爽。yo(发降音:医我)匙:钥匙。老丈人:南方称呼女方的父母。哟呵:喊(多传递某种信息)。摩蹭:慢,多去做某事不愿意。jio(发降音:己我):脚。坷(kie)垃头:土坷垃块。yo(发降音:医我):药。膈应:胃部不舒服,恶心。
2024-05-11 14:25:50
6507
5
原创 信号量隔离
但是,需要注意的是,信号量隔离只是限制了请求的数量,对于单个请求的处理时间和结果并不能起到任何作用。与线程池隔离(Thread Pool Isolation)不同,信号量隔离不会为每个请求创建新的线程,而是利用应用程序的主线程或容器(如Tomcat)的线程来处理请求。它利用信号量(一个计数器)来限制同时访问某一资源的并发量,当信号量达到设定的最大值时,新的请求将无法再获取到信号量,从而被放弃或等待。它不需要为每个服务或功能创建独立的线程池,而是通过控制信号量的值来限制对共享资源的并发访问数量。
2024-04-30 16:15:10
1023
原创 spring boot应用停止服务需要注意的地方
在应用启动时,注册一个JVM的Shutdown Hook,用于执行清理工作。2 // 清理资源、关闭连接等操作3 System.out.println("执行关闭前的清理工作...");4}));
2024-04-28 14:23:16
746
原创 Java NIO概念
I/O多路复用(I/O Multiplexing)是一种在单个线程或进程中同时管理多个I/O操作的技术,特别适用于需要同时处理多个输入输出通道的场景,如网络服务器处理多个客户端连接。这项技术允许程序监视多个文件描述符(例如,网络套接字、管道、常规文件等),等待其中的一个或多个变为“就绪”状态(即可以进行读取或写入操作),而无需为每个描述符分配单独的线程或进程。I/O多路复用的核心优势在于它减少了系统中线程或进程的数量,从而降低了资源消耗和上下文切换的开销,提高了系统在高并发环境下的性能和可扩展性。
2024-04-26 10:02:11
1594
原创 Seata 的AT模式写隔离问题,求大佬解答。
tx2 后开始,开启本地事务,拿到本地锁,更新操作 m = 900 - 100 = 800。tx1 先开始,开启本地事务,拿到本地锁,更新操作 m = 1000 - 100 = 900。如果 tx1 的二阶段全局回滚,则 tx1 需要重新获取该数据的本地锁,进行反向补偿的更新操作,实现分支的回滚。,同时持有本地锁,则 tx1 的分支回滚会失败。分支的回滚会一直重试,直到 tx2 的。,同时持有本地锁,则 tx1 的分支回滚会失败。,tx1 全局提交前,该记录的全局锁被 tx1 持有,tx2 需要重试等待。
2024-04-25 16:35:25
407
1
原创 @PropertySource的使用
这样,当 Spring 应用启动时,它会自动读取这些外部配置,并正确地配置数据源 Bean,无需硬编码任何数据库连接细节。的属性文件,内容如下,该文件位于项目的类路径 (然后,创建一个 Spring 配置类,使用。方法读取属性值,并将这些值应用于数据源 (
2024-04-24 23:38:39
279
原创 CentOS yum安装jdk8
如果有旧版本的Java或者其他不需要的Java版本,可以使用如下命令进行卸载。6.通过readlink -f $(which java)命令查看安装路径。: 安装完成后,通过运行以下命令来确认JDK 8是否安装成功,并查看其版本信息。: 在开始安装之前,建议先更新你的系统包,确保使用的是最新的软件包信息。: 如果你不确定系统中是否已有Java安装,可以先检查一下。安装OpenJDK 8。(用于运行Java程序)和。在CentOS系统中使用。为你需要卸载的包名。
2024-04-24 10:01:37
1300
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅