- 博客(74)
- 资源 (3)
- 收藏
- 关注
原创 常规业务如何做到幂等性
2、更新采用乐观锁 例如update table set where version=指定值。4、采用分布式锁:并发操作获取指定锁(能确定操作数据唯一性)放行,否则不允许执行。1、新增接口可根据数据库设计采用唯一索引方案机制,避免重复调用。3、采用状态码 例如修改值,如果状态不是当前值不允许修改。采用队列模式,队列插入判重处理,避免多次同事调用接口。
2024-06-17 17:21:02
221
原创 生产者消费者三种模式
消费者:Object o = queue.take();//自带锁和通知唤醒方法。一、synchronized wait和notifyall。生产者:queue.put(o);二、Lock awit和signal。三、阻塞队列BlokingQueue。
2024-05-21 14:49:44
199
原创 AI编码插件
1、GItHub Copilot收费:GitHub - CodedotAl/gpt-code-clippy: Full description can be found here: https://discuss.huggingface.co/t/pretrain-gpt-neo-for-open-source-github-copilot-model/7678?u=ncoop572、阿里云智能编码插件 :通义灵码安装教程-阿里云3、Kite:Kite is saying farewell - Code F
2024-05-21 10:03:01
394
原创 MySql
12)、使用段索引(前缀索引):节省磁盘空间和io操作,减少索引文件的维护开销,用count(distinct leftIndex(列名, 索引长度))/count(*) 来计算前缀索引的区分度。1)、存储的结构和方式不一样:InnoDB采用聚簇索引(索引和数据是关联在一起),MyISAM采用非聚簇索引(索引和数据文件是分离的,索引保存数据文件的指针)4)、where条件多个范围,最多用于左边一个范围列,范围条件有:=、between等。8)、利用覆盖索引查询,避免回表。
2024-05-21 09:43:14
912
原创 GetWay
11)、The Weight Route Predicate Factory:指定远程调用ip请求匹配:使用权重来路由相应请求,以下代码表示有80%的请求会被路由到。12)、The XForwarded Remote Addr Route Predicate Factory:指定请求X-Forwarded-For请求头匹配。5)、The Header Route Predicate Factory:带有指定请求头的请求匹配。
2024-05-20 10:47:34
1040
原创 Nacos配置中心
SpringApplication.run(..) -> new SpringApplication(primarySources).run(args) ->初始化 ->#prepareEnvironment -> BootstrapApplicationListener和ConfigFileApplicationListener。2、new SpringApplication(..)加载META-INF/spring.factories中配置的initializers和Listener。
2024-05-20 10:39:01
710
原创 OpenFeign
(2)、http请求方式修改:httpurlconnection --> httpclient。(2)启动类增加注解@EnableFeignClients。(3)编写openfeign接口。(1)编写openfeign接口。(4)controller使用。(2)controller使用。(1)、日志级别修改。四、OpenFeign架构。
2024-05-20 10:34:36
442
原创 LoadBalancer
(2)、自定义@LoadBanlancer注解得RestTemplate。默认轮询负载:RoundRobinLoadBalancer。(3)、controller代码。(1)、RestTemplate流程。2、controller定义。(1)、自定义负载算法。(2)、启动类增加注解。二、LoadBalancer。一、手写随机负载均衡。
2024-05-20 10:30:31
596
原创 Spring Cloud Nacos
例如:curl -X POST 'http://192.168.226.130:8848/nacos/v1/ns/instance?serviceName=client.server.name&ip=clinetIp&port=client端口'例如:curl -X GET 'http://192.168.226.130:8848/nacos/v1/ns/instance/list?
2024-05-20 10:25:28
1169
原创 架构方案演进
7、分布式消息:roketmq、kafka、rabbitmq、activemq。1、服务注册与发现:eureka、nacos、zookper、consul等。2、负载均衡:ribbon、nginx、loadbalance。3、服务调用:feign、dubbo、thrift。6、配置中心:config、nacos、apoll。8、分布式锁:redis、zookeeper。4、熔断:hystrix、sentinel。5、网关:zuul、getway、kong。9、分布式事务:seata、tx-lcn。
2024-05-20 10:23:42
418
原创 spring boot打的包直接运行
Main-Class:org.springframework.boot.loader.JarLauncher:当我们使用java -jar xxx.jar启动jar包的时候通过调用JarLauncher#Main方法,不是我们定义的Main方法。Spring Boot 提供了一个插件 spring-boot-maven-plugin 把程序打包成一个可执行的jar包,直接执行java -jar xxx.jar即可以启动程序。1、引用 spring-boot-maven-plugin插件。
2024-05-20 10:21:53
687
原创 Spring boot 启动源码
pom文件只要依赖spring-boot-start-tomacat会将Tomcat类引入到项目中,满足EmbeddedTomcat条件装配条件,向容器注入TomcatServletWebServerFactory,springboot容器启动getWebServerFactory会获取TomcatServletWebServerFactory创建Tomcat web容器。分析EmbeddedTomcat,条件装配存在Tomcat类装配TomcatServletWebServerFactory。
2024-05-20 10:19:46
1076
原创 Spring 事件监听
Spring早期通过实现ApplicationListener接口定义监听事件,Spring 4.2开始通过@EventListener注解实现监听事件。(1)、自定义事件,相当于抽象观察者。(2)、自定义实现,相当于具体观察者。(3)、发布订阅事件。
2024-05-20 10:11:15
365
原创 spring装配
如果设置matchIfMissing = true的话,默认配置类生效,如果application没有配置spring.boot.redis.switch或者设置true都生效,只有配置spring.boot.redis.switch=false才跳过加载此配置类。在条件装配中,虽然application.properties配置文件增加redis配置,但是依赖三方Redis连接属性无法从配置中注入,即使添加@Value也无法注入,如何实现在配置文件中配置对应值。标记上该注解的类的实例;
2024-05-20 10:10:08
679
原创 ActiveMq消息队列
如果客户端发送完消息,发送连接close时,服务器正好此操作,导致超过15s未应答,客户端直接调用socket关闭tcp连接。比KahaDB快,基于LevelDB索引,不是BTree索引(未普及,建议KahaDB),activemq.xml中如下。原因:mq采用prefetch机制,通过批量获取数据(默认1000条),批消息未处理完,管理控制台消息认可见,不会分配其他消费者。2)、持久化:生产者阻塞,消费者正常消费。宕机重启:非持久化消息存储在内存中,持久化消息是存储在文件中,重启会持久化消息从文件恢复。
2023-05-22 15:08:58
954
原创 Druid连接池源码分析
DruidDataSource继承DataSource并重写getConnection方法。二、核心成员变量介绍。三、核心配置文件介绍。
2023-05-08 11:00:11
1195
原创 Java中池化技术探讨
背景:在日常开发中,除了考虑IO操作、线程上下文切换、GC的影响性能外。还通过池化技术提高性能通过循环复用资源,降低资源创建和销毁带来的开销和损失,从而提高性能,例如对象池、内存池、线程池、连接池。
2023-05-03 14:45:17
808
原创 Java 知识问题(持续更新中)
4)、选择:单线程使用ArrayList和LinkedList,多线程建议使用Collections工具类,vector官方已不建议使用,属于Java中的遗留容器(遗留容器还有Hashtable、Dictionary、BitSet、Stack、Properties)1)、数据结构不同:ArrayList和Vector采用动态数组(ArrayList扩容0.5,Vector默认扩容1倍),LinkedList采用链表方式。2、快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别?
2023-04-14 17:17:36
290
1
原创 启动Idea报Failed to create JVM. JVM Path:
启动Idea报Failed to create JVM. JVM Path:
2023-03-08 14:40:18
2451
转载 rpm 仓库
1、阿里云 rpm文件:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/2、本地rpm仓库:# 使用阿里的yum源 和 epel源wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/ep
2022-05-12 16:26:06
3016
原创 JAVA-MySql
一、InnoDB 缓存池:https://mp.weixin.qq.com/s/zMgfT_WmyYmmUuZUUr6xOA
2022-03-22 10:36:59
1007
原创 mvn上传本地jar包
通过mvn命令上传本地jar包mvn deploy:deploy-file -Dfile=文件的位置 -DgroupId=文件groupID -Dversion=文件的版本号 -DpomFile=.pom -Dpackaging=jar -Durl=http://私服地址/nexus/content/repositories/releases/ -DrepositoryId=releases示例:mvn deploy:d
2022-03-16 15:46:12
1626
原创 Nginx日志定时清理
升级风险:注释:由于nginx记录所有LIS60服务请求日志,长期以往这些日志堆积占用服务器资源,为了避免服务器资源浪费,定时清理。脚本下载:cron定时执行脚本包-Linux文档类资源-优快云下载 1、拷贝附件文件至linux服务任意不用文件夹(例如在根目录新加sk文件夹,将搅拌拷贝到这里执行)2、切换到拷贝到的文件夹:cd /sk 3、查看当前文件 ll4、赋执行权限 命令:chmod +x ./*5、增加linux定时执行任务:(......
2022-03-14 17:36:17
8553
原创 JAVA总结-基础
1、为什么 Java 中“1000==1000”为false,而”100==100“为true?Integer 类有一个内部私有类,IntegerCache.java,它缓存了从 - 128 到 127 之间的所有的整数对象Integer.valueOf:值的范围在 - 128 到 127 之间,它就从高速缓存返回实例Integeri=Integer.valueOf(100);//Integer类public static Integer valueOf(int i) { ...
2022-02-17 10:17:00
270
原创 JAVA总结-Spring
spring注入方式选择属性注入@Servicepublic class AService { @Autowired BService bService;}属性注入限制:类只能在IOC容器中使用,对于IOC容器以外的环境,除了使用反射获取依赖之外,无法复用该实现类SET方法注入@Servicepublic class AService { BService bService; @Autowired public void se
2022-01-20 09:48:07
424
原创 Centos挂载扩展分区存储
1、集成工具分配存储 1.1、vm 1.2、在线工具2、新增的vdb磁盘:lsblk3、查看机器所挂硬盘个数及分区情况:fdisk -l4、查看磁盘信息:df -hl5、lsblk6、 创建vdb分区:fdisk /dev/vdb7、fdisk -l8、.为/dev/vdb1分区创建物理逻辑卷:pvcreate /dev/vdb19、格式化新分区为ext3:mk...
2021-12-17 14:02:37
341
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人