自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u011982711的博客

java+sql+算法

  • 博客(117)
  • 问答 (1)
  • 收藏
  • 关注

原创 rocketmq消费指定队列

【代码】rocketmq消费指定队列。

2024-06-21 23:44:26 120

原创 对seata的seata.tx-service-group理解

如果引入了seata.tx-service-group,我们每个serviceA,serviceB都配置相同的seata.tx-service-group=project1,然后配置中心映射project1对应的是seate-server1,如果seate-server1挂了,我们只需要修改配置中心,把project1映射到seata-server2,都不需要修改每个serviceA,serviceB的配置。这里多了一层获取事务分组到映射集群的配置。

2024-04-02 23:39:21 735 1

原创 idea删除模块后重新创建出问题

关于IDEA删除模块后,重新创建模块异常问题处理 - 『编程语言讨论求助区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

2023-07-31 13:12:35 159

原创 mysql异步复制配置

【代码】mysql异步复制配置。

2022-12-28 23:37:19 159 1

原创 n个数分m组

【代码】n个数分m组。

2022-11-27 18:28:56 417

原创 字符串转json对象

【代码】字符串转json对象。

2022-11-15 21:39:44 1062

原创 On复杂度递归求算数表达式

【代码】On复杂度递归求算数表达式。

2022-11-15 00:03:16 68

原创 rocketmq是如何消费

删除msgTreeMap消费过的消息,返回剩下最小的offset,并且把它设置为后面要异步提交的offset。然后消费拉取回来的消息,以并行消费为例,把拉取数量为pullBatchSize的消息,以每批consumeMessageBatchMaxSize,分成若干批。如果是有序消费,先从msgTreeMap poll前consumeBatchSize的消息,然后通过上锁,使得相同队列的不同批次消费串行进行。拉取消息成功后设置下一次需要拉取的offset,然后扔进消费线程池里消费。

2022-10-27 16:57:42 551

原创 kafka消费的细节

猜想,每次获取拉取消息的response应该会含有下一次 需要我们传的offset,然后更新到TopicPartitionState,我们下次拉取消息是通过TopicPartitionState获得要传的offset。kafka每次去poll消息,向服务端传topic-分区号,offset(开始的offset),maxBytes(最大字节数)每次poll,获取records后,会把position设为最后的那个record的offset,如果消费代码是。如果想每消费一条,就提交一条,就要。

2022-10-27 10:13:05 622

原创 eureka和nacos区别

调用DiscoveryClient的getInstances(id)时,如果没有的话,会执行HostReactor的scheduleUpdateIfAbsent方法,最终执行UpdateTask,最后执行updateServiceNow,把udp端口传过去。假如服务提供者下线了,那么消费者是如何维护服务列表?会通过udp,让nacos service主动推送。eureka通过定时任务去同步注册中心的服务列表,那么该注册中心是如何知道该udp端口?

2022-10-14 13:55:59 161

原创 多线程能否提高jdbc插入速度?

结论:不使用批量插入的话,多线程确实能提高插入速度,如果使用批量插入,单线程多线程都差不多(其实和kafka批量提交差不多)。如果不用批量插入(batchSize=1),插入400000行。

2022-09-29 17:54:25 862

原创 既然 Nginx 能单边解决跨域,那为什么浏览器还要有跨域的存在

既然 Nginx 能单边解决跨域,那为什么浏览器还要有跨域的存在

2022-08-24 11:26:39 470

原创 m选n,并且对n全排列,不允许重复

package sftp;import java.util.*;public class Dfs { public static void main(String[] args) {// int[] count={1,2,3};// dfs(count,0,new int[3],0,3); Entity[] entities = new Entity[3]; entities[0] = new Entity(); .

2022-02-13 16:20:53 335 1

原创 flowable的DefaultDeploymentCache的优化

在纯内存的配置下,多线程压测发现cpu使用率不到100%,于是打印线程栈发现好多线程都block。进去看了一下DefaultDeploymentCache用的是LinkedHashMap,而且Collections.synchronizedMap同步包装一下,LinkedHashMap每次get的时候都会调整链表结构,所以他读的时候一定是相互排斥的,才能保证线程安全!优化一下,增加一层,类似于读写分离的做法然后cpu使用率达到100%了...

2022-01-13 10:15:26 489

原创 查看那些行被锁

mysql:SELECT * from performance_schema.data_locks;oracle:select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and ...

2021-12-07 15:13:54 379

原创 jpa乐观锁

创建SingleTableEntityPersister时会调用generateUpdateString生成updateSql,update ACT_HI_ACTINST set xxxx where ID_=? and REV_=?update完之后commit时,会调用getNextVersion调用Versioning.increment( entry.getVersion(), persister.getVersionType(), event.getSession() ...

2021-11-18 15:54:58 171

原创 包容网关源码

else if (executionEntity.getId().equals(execution.getId()) && executionEntity.isActive()) { // Special case: the execution has reached the inc gw, but the operation hasn't been executed yet for that execution ...

2021-11-16 10:30:50 226

原创 cancelActivity的作用

cancelActivity为true,则interrupting为trueexecuteInterruptingBehavior会调用deleteChildExecutions(attachedRefScopeExecution, executionEntity, commandContext);把usertask删掉

2021-09-26 15:49:21 127

原创 seata tcc如果branch commit失败会怎样?

会不断的重试!如果该分支提交报错,则不会执行globalSession.removeBranch有个定时器默认每隔1秒重试提交事务。

2021-08-02 10:46:28 1016 2

原创 flowable缓存与查询同步问题

runtimeService.createExecutionQuery().onlySubProcessExecutions().list()结果发现executions没有想要的结果,但是换成了executionDataManager.findInactiveExecutionsByActivityIdAndProcessInstanceId("subProcess","900224");就会有想要的结果,为啥呢?runtimeService.createExecutionQuery().

2021-07-08 11:27:21 633

原创 setVariable和setVariableLocal区别

delegateTask.setVariableLocal是set进当前execution里面

2021-06-10 11:10:26 562

原创 Flowable 跳跃表达式

@Test public void startProcessByKey(){ Map<String,Object> afT=new HashMap<>(); Map<String,Object> afP=new HashMap<>(); afP.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED",true); String key="jump"; ...

2021-06-08 17:57:16 1128

原创 activiti的callactivity

2021-05-28 11:27:22 853

原创 MQ消息最终一致性

https://www.jianshu.com/p/eb571e4065ec

2021-05-06 16:17:14 60

原创 seata链路追踪

一开始io.seata.tm.api.TransactionalTemplate#beginTransaction,向seata申请xid,执行完之后,global_table然后执行jdbcTemplate.update("update buy_flow_require set create_org_name=? where id=14034",name);先去执行本地sql,io.seata.rm.datasource.exec.AbstractDMLBaseExecuto...

2021-04-24 13:27:10 388

原创 seata性能的一个实践

1.上下游的方法都用到了@Transaction2.没用到@Transaction如果没用到@Transaction,那么每次dml都会向seata发请求申请brand_id,然后锁表,一个事务里面有多个dml,那么就会对seata申请对此brand_id,如果你用了@Transaction,那么就会把一个事务看成一个整体然后仅仅向seata发送一次branch_id的申请。...

2021-04-23 21:50:21 803

原创 kafka手动提交无限重试

对于一些很强调分区内有序,并且0丢失的场景,比如增量同步数据,(先insert再delete,先delete再insert,结果是不一样的,又或者用了唯一索引,然而delete失败了,消息丢失了,后面的插入唯一性冲突了),解决方案是无限重试,失败了发送信息通知。 @KafkaListener(topics = {"cgbOrderDetail"},groupId = "c2",concurrency ="5",containerFactory = "kafkaListenerContainerFact

2021-04-21 19:24:00 2133

原创 为什么说令牌桶能支持突发,但是漏桶不支持突发流量

先说令牌桶,假如桶的容量是100个,如果现在桶已经满了,并且之后隔了很长的时间都没有请求(这个时间长度是t),那么现在来了突发流量,一下子把100个令牌拿走了,然后生成令牌数是t*createRate,因为t很大,生成令牌数也很多,所以马上又能处理大量的请求。然后说漏桶,假如桶的容量是100个,如果当前桶为空,并且隔了很长一段时间没有请求(这个时间长度是t),那么现在来了突发流量,一下子就有100滴水在同里面,然而他漏水的数量不是t*rate,因为有水的时候才能漏,时间段t里面没有漏过水,(没办法累积)

2021-04-19 11:18:47 720 2

原创 activiti并行汇聚并发安全原理

complete一个分支任务后巧用乐观锁控制并发安全

2021-04-16 21:58:54 270

原创 seata通过feign调试遇到一个坑

此时global_table是有数据的当跳进远程方法接口时看调用者日志原来是Hystrix超时了,调用者抛出异常并且向seata server发起删除global_table操作。下游断点位置找不到global_transaction.再梳理一下:上游为A服务,下游为B服务;A先向seata server注册xid,然后A调用B,此时B执行db操作前停在断点上,结果此时超时了,A抛异常了,向seata server申请回滚,因为此时B停在断点是,还没有向seata..

2021-04-15 22:42:09 4186

原创 seata的AbstractUndoExecutor的dataValidationAndGoOn解读

/** * Data validation. * * @param conn the conn * @return return true if data validation is ok and need continue undo, and return false if no need continue undo. * @throws SQLException the sql exception such as has dirty data...

2021-04-14 17:54:18 531

原创 seate与@Transaction的结合

把Spring事务注解注释掉:保留Spring事务注解与没有用到spring事务的区别就是把所有的快照放到一行undo_log里面

2021-04-14 09:56:29 268

原创 可重复读的MVCC

6查到的是旧数据,假如3不是select语句,6查出来的是4update后的数据,因为ReadView是在发起第一次查询的时候创建的

2021-04-13 21:55:37 111

原创 读写锁aqs

加锁https://www.cnblogs.com/zzq6032010/p/12037854.html释放锁https://www.cnblogs.com/zzq6032010/p/12076580.htm

2021-04-08 21:48:25 108

原创 activiti替换json

发布时,select * from act_re_model根据modelId找到model,根据EDITOR_SOURCE_EXTRA_VALUE_ID_,去act_ge_bytearray找到对应的json,然后部署后,update act_re_model set DEPLOYMENT_ID_=新的部署id;如果修改流程,替换name_='source'的那个字段,然后重新发布,例如:update act_ge_bytearray t1 join act_ge_bytearray t2 o

2021-03-30 12:54:23 303

原创 seata的select for update实现隔离性

另外一个事务进入,因为xid不一样,所以lockable为false换成lock_table的xid就返回true,(这就是可重入的原理)

2021-03-16 13:06:24 932

原创 mysql8锁表情况

https://www.cnblogs.com/gered/p/12769367.html

2021-03-15 08:46:37 1027

原创 feign与hystrix的配置

参考HystrixThreadPoolProperties

2021-03-11 15:32:40 420

原创 sql临时表应用

https://blog.csdn.net/weixin_30378311/article/details/98842269(一般只在确定不能用索引的时候才使用临时表,或者在存储过程中某些固定数据使用次数非常多的时候使用临时表,其他时候我一般不建议使用)...

2021-03-09 15:47:31 67

原创 es嵌套

PUT /school{ "mappings": { "properties": { "name":{ "type": "text" }, "classes":{ "type": "nested", "properties": { "name":{ "type":"text" }, "students":{ ...

2021-03-08 21:03:29 245

空空如也

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

TA关注的人

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