- 博客(630)
- 资源 (2)
- 问答 (8)
- 收藏
- 关注
原创 Knife4j
基于SpringFox2.x提供swagger2规范 基于springdoc-openapi项目OAS3规范。兼容sprinbMVC springBoot springWebFlux。集swagger2和openAPI3一体。配置swagger代码or配置文件xml。
2024-02-26 14:35:50 380
原创 jmeter压测
h3>调用哪个服务的哪个方法这里设置线程相关jmeter强大到很强大 hh~可设置一下 上面的 参数${}对应的有后置HTTP请求数据库设置
2023-10-17 18:58:47 207
原创 集成shiro
基础概念1、UsernamePasswordToken,用来封装用户登录信息 public UsernamePasswordToken(final String username, final char[] password, final boolean rememberMe, final String host) { this.username = username; this.password
2022-01-18 12:04:15 3256
原创 如何写出气定神闲的代码——泛型
使用了Mybatis 增强工具包https://gitee.com/baomidou/mybatis-plushttps://blog.csdn.net/s10461/article/details/53941091泛型相关 本来这里有一大段溢美之词,但是写完感觉也没什么高大上的,但是作为小白下面的代码极其思想是我需要多学习的,之前一直加班,现在有点时间开始欣赏cto的代码;大概介绍一下:简单的三层,采用springboot,redis,baomidou,一切从简原来的mq也去掉...
2021-05-07 18:38:41 492
原创 python批量修改数据库字段类型
#首先这个代码没有提取不够简练#!/usr/bin/python# -*- coding: UTF-8 -*-import pymysqlimport datetimeimport timeimport re,stringhost = "19.206.25.24"mysql_user_name = "root"now = datetime.datetime.now()now_timestamp = int(time.time())def update_create_time..
2021-01-25 18:14:18 827 5
原创 JIT
JIT,又是一块带肉的骨头;just-in-time compilation,运行时编译,吭哧吭哧写了半天的bug不能到最后还让人来做吧?“侬脑子瓦特了”——当然是交给机器做,javac把java源文件翻译成class文件(字节码组成),jvm加载这些文件逐条取出字节码并执行,这就是解释执行了!当然还可以重新编译优化字节码以生成机器码,CPU直接执行,这样效率更高,这里有java如此受欢迎的原因,这里点破不说破,然后怎么让机器去执行呐?当然是告诉它了:要有源代码或者字节码到机器码的转换过程,...
2020-10-18 12:15:43 197
原创 springboot自动装配
装载谁@SpringBootApplication @SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan@EnableAutoConfiguration开启自动装配 在classpath下找到all配置的bean进行装配,据若干conditional定制规则初始化@Import(EnableAutoConfigurationImportSelector.class)1.5中过时,查看父类AutoC...
2020-09-02 23:29:55 132
原创 DDD Domain Drive Design
源自圣杰https://www.cnblogs.com/sheng-jie/p/6931646.htmlDDD理论系列文章DDD综合软件系统分析和设计的面向对象建模的方法通用语言:通过团队交流达成共识 能简单清晰准确 传递业务规则的语言(文字 图片)《实现领域驱动设计》书中有一个简单的例子(P238)系统必须对User进行认证,并且只有当Tenant(租户)处于激活状态时才能对...
2019-09-05 21:14:15 341
原创 ShardingSphere下
使用规范不支持:不支持case when,having,union可解析至第一个含表的子查询,在下层嵌套再次找到子查询抛错子查询不支持聚合函数,不支持含shema的SQL:shardingsphere对sql的访问都是在同一个逻辑schema上分页完全支持MySQL、PostgreSQL和Oracle的分页查询,SQLServer由于分页查询较为复杂,仅部分支持性能编...
2019-08-27 15:01:58 2192
原创 开源监控:Prometheus
开源的系统监控及告警工具,适用于以服务器为中心,高动态 面向服务架构 的监控;架构图:prometheus server:核心,据配置采集数据,服务发现,数据存储prometheus targets:探针exporter提供采集接口,或应用本身提供的支持promethenus数据模型采集接口pushgateway:为部分push场景提供插件,监控数据先推送到push...
2019-05-29 22:54:16 676 1
转载 kafka入坑
高级消费者提供消费消息的方法而屏蔽底层细节;高级消费者在zk特点分区存储最后的偏离(kafka启动时准备完毕),全局kafka集群消费群体,任何老逻辑的消费者应该被关闭然后运行新的代码,当一个新的进程拥有相同的消费者群的名字,kafka新增进程的线程来消费topic且引发“重新平衡”:分配现有分区到all可用线程如果你提供比在topic分区多的线程数量,一些线程将永远不会看到消息。 如果...
2019-03-19 22:04:26 271 4
转载 canal详解
canal在github上的文档:https://github.com/alibaba/canal/wiki/ClientExamplemysqlcanal伪装成mysql slave,如此“降低”姿态,mysql当然要做出些表示:那便是开启binlog支持[mysqld]log-bin=mysql-bin #添加这一行就okbinlog-format=ROW #选择row模式...
2019-03-09 16:46:45 3659
原创 ClickHouse 来一篇
是时候来见证一下真正的面向列的DBMS了!!!真正的DBMS没有任何垃圾值,数据紧凑存储(无需存数值长度):定长数值clickhouse容许在运行时可建表建库,加载数据进行查询,不需要重新配置 重启服务器快:不是一般的飞快支持事务,无隔离级别:ACID是没戏了,so数据可能不一致 我们CK是分析性数据库嘛 引擎:合并树MergeTree系列通主键字典排序,主键可以是列...
2019-03-03 10:30:46 471
原创 Java基础深入浅出
新数组,遍历老数组每个位置上链表的每个元素,取key 基于新数组长度 计算每个元素新数组下标,元素添加到新数组中去,all元素转移完 新数组赋值给hashMap的table属性。链表 封装node尾插插入到最后位置,遍历链表 是否存在key 更新否新增,新增完链表节点是否大于8,是转成红黑树。添加元素时,复制一个新的数组,写操作在新数组上进行,读操作原数组进行。红黑树,先遍历红黑树,计算出红黑树中每个元素对应在新数组中下标位置。链表,将链表每个元素重新计算下标,添加到新数组中去。treeMap键升序排序。
2024-03-28 19:37:20 205
原创 mysql刨根问底
trace看sort_mode显示sort_key additional_fields 或 sort_key,packed_additional_fields。双路排序:回表排序,据相应条件取出排序字段和可直接定位的行数id,sort buffer排序,再次取需要的字段。count(1) count(字段) 执行过程类似,count(1)不需要取字段。字段总长度 < max_length_for_sort_data,单路排序。字段总长度 > max_length_for_sort_data,双路排序。
2024-03-26 22:52:27 859
原创 jvm底层
继承java.lang.ClassLoader类try {//字节数组转class对象,字节数组是class文件读取后最终的字节数组//初始化自定义类加载器 先初始化父类classloader;会把自定义类加载器的父加载器=appClassLoaderMyClassLoader classLoader = new MyClassLoader("读取哪个路径");Class clazz = classLoader.loadClass("类全路径");
2024-03-24 21:24:22 524
原创 MQ集合了
消息队列,FIFO :异步 解耦 削峰复杂度上升 幂等 重复消费 消息丢失 / 可用性降低 mq故障 / 一致性要求mq对比:activeMQ:jms规范,支持事务 xa协议:erlang 性能👌 高并发 多语言 amqp协议 吞吐量低不易堆积(ait)镜像队列:集群存储数据,commit/rollback/ack:被消费者否定,在队列存活时间超过ttl,消息数量超过max队列长度死信交换机direct fanout topic:设置了ttl 消息最大存活时间。
2024-03-23 10:41:44 853
原创 分布式事务与分布式锁
拦截解析sql,生成before image 执行sql 保存成after image,生成行锁,image组成undolog,数据更新 undolog放到同一个事务提交。4.half消息commit了,另一个系统来消费,消费成功 消息销毁 分布式事务成功,上一篇有图可see。tc命令rm回滚,一个微服务挂掉了,all微服务不执行回滚,直到正常启动,tc重新执行全局回滚。confirm 业务执行和提交,完成操作业务,try成功confirm一定能成功。1.生产者订单系统发送一条half消息到broker。
2024-03-21 21:45:53 603
原创 IO网络通信
磁盘 --> 内核缓冲区pageCache 4k --> 应用程序内存 ---> socket缓冲区 ---> 网络。arp协议,同一子网内开始都不知道对方的ip,先广播arp请求,对方收到给出响应 本地更新arp表。应用程序内存和内核缓冲区做了映射,数据直接从内核缓冲区到socke缓冲区再到网络。对应一个处理线程,注册多个channel,每个channel对应一个buffer。一个线程多个连接,多个请求注册到多路复用selector上,多路复用器轮训连接。同步阻塞,一个线程一次连接,基于字符流/字节流。
2024-03-21 15:01:29 899 1
原创 dubbo再回首
获取注册中心实例,向注册中心注册自己,订阅providers configurators routers ,触发dubboInvoker生成,cluster封装多个服务调用者,返回一个invoker。配置构建一个map,利用map构建url,通过url协议利用自适应扩展机制调用相应的protocol.refer得到invoker,构建。注册中心引入远程服务,consumer通过注册中心得知provider信息,服务引入。,同一暴露出invoker,封装exporter存储起来,path:接口名称。
2024-03-20 23:47:30 345
原创 zookeeper底层细节
每个函数在客户端初始化operation,准备好事务all操作后,zoo_multi提交所有操作,一个失败返回第一个失败操作的状态信号,multi-paxos:确定多个值,接收accept请求后,一定时间内不再accept其他节点的请求,保证后续编号不需要prepre。无提交记录,判断是否有编号n1,n1>n 拒绝响应,否则n1改为n,响应prepare。活锁:accept一直被拒绝,加n,另一个proposer也这么操作,accept一致失败。
2024-03-20 20:56:24 1041
原创 HahMap
常用方法HashMap<String, Integer> map=new HashMap<>();map.get("1");map.size();//map里的值的数量map.values();//所有的value值map.keySet();//map里的所有keymap.entrySet();//显示所有key和value,将k-v转换为entry对象并组成set返回map.isEmpty();//是否为空,true是,false否map.containsKey
2024-03-19 18:15:59 293
原创 基础乱炖来吧
1,SSH框架和SSM区别 SSH:struct+spring+hibernate,SSM:MVC+spring+mybatis struct入口是filter级别,对action类进行请求,一个action类对应一个请求、类拦截;spring-mvcservlet级别,方法级别请求,方法拦截;2、描述context初始化流程https://www.cnblogs.com/dingpeng9055/p/11654286.html3、bean生命周期及作用域https:...
2024-03-19 18:12:37 605
原创 consul
分布式、高可用、可横向扩展服务发现:dns或http健康检查:client提供任意数量的健康检查:给定服务 webServer是否返回200OK,本地节点 内存利用率是否低于90%kv存储:应用程序可据自己的需要使用consul提供kv存储,提供http接口:结合其他工具、动态配置、功能标记、领袖选举等安全服务通信:为服务生成、分发TLS证书,容许哪些服务通信,实时更改多数据中心:开箱即用的多数据中心,意味着用户不需要建立额外抽象层让业务扩展到多个区域动态生成配置文件..
2024-03-19 18:11:10 206
原创 spring 没完没了
propagation_nested活动事务存在 运行一个嵌套事务中,无required执行使用单独事务,使用独立事务,拥有多个回滚的保存点,内部事务的回滚不会对外部事务造成影响,只对datasourceTransactionManager事务管理器有效。bean后置处理器BeanPostProcessor,先实例对象,bean后置处理器对该对象加工,依赖注入给autowired自动赋值,aop基于原实例对象进行动态代理,生成代理对象。获取指定路径下的文件信息及文件夹信息,class文件添加到set集合。
2024-03-18 23:58:15 1150
原创 redis瘦身版
offset:主从各自维护自己的复制偏移量,主也写offset=offset+命令字节长度,从收到主发送命令后,增加自己的offset,把自己的offset发送给主节点,主节点同时保存自己的offset和从的,对比判断主从一致性数据。6.每个redis放开两个端口,6379 16379,16379节点间通信,cluster bus,故障检测/转移。4.读取数据,当客户端操作的key没有分配在该节点,返回转向指令,指向正确节点。2,先删缓存,看他不顺眼直接删了!再写数据库,休眠 再删缓存。
2024-03-17 00:32:13 1035
原创 mysql颗粒归仓
通过数据排序提高查询速度,节点存储多个元素 高度不会太高,一个innodb页=B+树节点,16k两层B+树存储2000万行,叶子节点存储所有数据并且进行了排序,叶子之间有指针,很好支持全表扫描,范围查找。将要修改的数据最新记录中的trx_id取出来,与系统当前其他活跃事务ID对比,不可见通过roll_ptr回滚指针取undoLog中trx_id再比较。红黑树:每个节点都是红色或黑色,根是黑色,叶子节点黑色的空节点,红色节点的父节点都必须是褐色,从任一节点到其每个叶子节点所有路径含相同的黑色节点。
2024-03-16 21:27:06 848 1
原创 java并发
当threadLocal使用完把设置的key value回收,但是线程池中的线程不会回收,而thread通过强引用指向threadLocalMap,threadLocalMap通过强引用指向entry对象,线程不会被回收,从而出现内存泄露,在使用threadLocal对象后手动调用。基于reentrantLock和condition,让一组线程到达一个屏障时被阻塞,直到最后一个线程到达屏障,所有被屏障 拦截的线程才继续干活,调用await 然后等待。
2024-03-15 01:23:05 876
原创 java基础
一个segment含一个hashEntry数组,每个hashEntry是一个链表结构二次hash,第一次hash定位到segment,第二次hash定位元素所在的链表头部锁:segment分段锁,segment继承了reentrantLock,锁定操作的segment,其他segment不受影响,并发度为segment个数,可通过构造函数指定,数组扩容不会影响其他的segmentjdk8:synchronized+cas+node+红黑树。
2024-03-12 23:46:48 859
原创 rabbitMQ
消息发送:投递消息消息代理:管理 暂存 转发消息消息接收者:接收|处理消息的人,原来的服务提供方消息延迟微妙级别,高可靠,可用性高高可用,高单机吞吐量,毫秒消息延迟,消息可靠性一般。
2024-03-10 09:06:40 1100
原创 redis原理深入解析之看完这篇还需要努力
len:4 alloc:4 flags:1 数组 \0sds可追加:动态扩容 减少内存分配次数 二进制安全如新字符串1m 新空间为扩展后字符串长度+1m+1 内存预分配。
2024-03-07 06:16:59 893
原创 redis缓存与集群
判断slave与master断开时间长短,超过指定时间down-after-milliseconds*10会排除slave节点。replica从slave读取,replica_preferred 优先从slave读取 所有slave不可用才读取master。判断slave节点的slave-priority值,越小优先级越高,0不参与选举,一样则offset值越大数据越新优先级越高。添加节点 redis-cli --cluster add-node ip:port 集群中存在的ip:port。
2024-03-05 21:58:29 860 1
原创 dubbo 与 zk 小结
zk官方注册中心(mulicast zk nacos redis)@reference 远程调用 消费者从zookeeper获取 访问url消费者第一次调用将提供方,调用不再访问注册中心提供者地址改变,无法完成服务访问 自动断开链接,默认1000 1s@service(timeout=1000,retries=2 )提供方,建议配置在这 自己知道自己情况@reference(time=1000) 消费者,覆盖提供方配置版本:reference(version="v2.0")
2024-03-04 01:55:48 786
原创 jvm基础_颗粒归仓
volatile禁止指令重排序/编译优化器,写变量 volatile加代码最后,读变量则写开始位置。没有竞争时s很多优化,偏向锁 轻量级锁 性能可以,竞争激烈lock更好的性能。cas控制数组节点的添加+synhronized锁定当前链表/红黑树手节点。lock可打断,多种lock,公平锁/可打断/可超时/多条件变量。visualvm监控线程内存情况,查看方法cpu时间和内存中的对象。,可中断/超时时间/设置公平锁/多条件变量/支持重入。s说关键字,jvm中,l接口jdk提供。semaphore信号量。
2024-01-09 09:19:31 404 1
ELK6.1.2,filebeat及es的常用head和ik插件
2018-04-03
Highcharts
2017-03-05
连接阿里云数据库RDS失败,想选40C币 没有那么多了,请大家帮帮忙,急
2018-06-16
springboot项目controller注入失败,空指针;单元测试没有问题
2018-06-15
service层判断返回值是否为空,空的话返回一个=null的model,不为空的话
2017-08-22
服务用jenkins构建之后注册不上dubbo,url访问500,重启tomca问题解决
2017-08-22
JAVA用SSH框架,Source not found for OrderService
2017-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人