- 博客(34)
- 收藏
- 关注
原创 MySQL调优指南与踩坑记录(面试必问,持续更新.....)
哈喽,大家好!在平常开发过程中会遇到许多意想不到的坑,本篇文章就记录在开发过程中遇到一些常见的问题一、replace into 隐藏风险在上面博客中说到接了一个小活(传送门:一套玩转Datahub,多shard订阅数据(阿里云K8S与Datahub实操)_datahub 订阅量-CSDN博客),对接Datahub。为了图省事,没采用saveOrUpdata,直接使用replace into,结果寄了。话不多说,代码如下 <insert id="tra
2024-06-17 11:15:25
173
原创 分布式锁demo
分布式锁在应用开发中,特别是web工程开发,通常都是并发编程,不是多进程就是多线程。这种场景下极易出现线程并发性安全问题,此时不得不使用锁来解决问题。在多线程高并发场景下,为了保证资源的线程安全问题,jdk为我们提供了synchronized关键字和ReentrantLock可重入锁,但是它们只能保证一个工程内的线程安全。在分布式集群、微服务、云原生横行的当下,如何保证不同进程、不同服务、不同机器的线程安全问题,jdk并没有给我们提供既有的解决方案。此时,我们就必须借助于相关技术手动实现了。目前主流的实现
2024-06-14 15:07:02
384
原创 详谈分布式锁(从一个小小JUC说起)
一、Java常见锁哈喽,大家好!本次带来的是对于分布式锁的思考,让我们从Java常见的锁🔐走起,各位看官里面请!一、Java常见锁提到Java的锁,立马就想到JUC那些事儿,众所周知JVM与JUC不分家。这里先不赘述JVM的知识,面试常见的几个面试题就是:Lock与Synchronized的区别?Synchronized锁升级(膨胀)过程?ReentrantLock是什么?AQS是什么?公平锁、非公平锁、锁降级是什么?在JUC包中有哪些常见的Lock实现类,作用分别是什么?
2024-06-14 12:08:18
258
原创 MySQL向Es数据同步策略
目前有有一个小项目功能落到自己手中,也是一个面试必考点。如何保证MySQL与Es、Redis等之间的数据一致性,带着大家的问题,我给提供一种解决方案(最终一致性)最后:①②是强一致性的解决方案,③④是最终一致性的解决方案。项目实战是一个漫长的过程,山高路远,道阻且长!③通过MQ异步消息推送实现,MySQL数据发生变化时向MQ发送消息。大家知道有几种保证数据一致性的解决方案呢?④通过定时任务获取MySQL中更新的数据。
2024-06-12 15:49:05
453
原创 一套玩转Datahub,多shard订阅数据(阿里云K8S与Datahub实操)
最近接了一个小活,之前同事通过请求接口的形式获取上游系统数据,轮询一时爽,改bug火葬场。没办法,只能用上Datahub,看到阿里云提供的SDK源码与其提供的demo,感觉有的拉胯,看了全网如github、scdn、gitee、掘金等诸多文章没几个能说明白,开箱即用的。写在前面:Datahub是什么?阿里云流数据处理平台数据总线。ps:文章末尾有Python版本的🔗链接。
2024-06-06 21:59:46
226
原创 MySQL主要支持7种JOIN方式:
FULL OUTER JOIN:返回左表和右表中所有的行。但需要注意的是,MySQL本身不直接支持FULL OUTER JOIN,可以通过UNION将LEFT JOIN和RIGHT JOIN的结果合并来模拟这一行为。RIGHT JOIN(右连接):返回右表的所有行,即使左表没有匹配项。LEFT JOIN(左连接):返回左表的所有行,即使右表没有匹配项。CROSS JOIN(交叉连接):返回左表的每一行与右表的每一行的笛卡尔积,即所有可能的组合。INNER JOIN(内连接):返回两个表中键相匹配的行。
2024-06-05 17:07:54
194
原创 过滤器(Filter)和拦截器(Interceptor)的区别(微服务必考)
断言(Assertion)是在请求结果返回后对结果进行校验的机制,通过判断返回结果是否符合预期,来确定本次请求是否成功。== 在Java和Spring框架中,过滤器(Filter)和拦截器(Interceptor)都是用于处理HTTP请求的组件,但它们有明显的区别:==拦截器:基于Java的反射机制,Spring MVC中的拦截器是基于AOP(面向切面编程)思想实现的,使用代理模式来拦截请求。拦截器:在请求处理前后被调用,可以多次被调用,形成拦截器链,每次请求可以触发多个拦截器,并按照声明顺序执行。
2024-06-03 10:26:35
382
原创 MQ专题精讲(持续更新中......)
这些操作与使用普通队列无异,只是由于使用了惰性队列,消息的消费速度可能会受到磁盘I/O性能的影响,因此在设计消费者逻辑时,可能需要考虑消息处理的延迟和吞吐量。综上所述,Kafka 通过结合生产者确认策略、消息持久化、Broker 集群稳定性、日志存储与同步机制、消费者位移管理以及幂等生产者功能,从多个层面确保消息在传输和存储过程中的可靠性,最大限度减少消息丢失的可能性。在实际应用中,它们可以独立使用,也可以根据业务需求组合使用,如在一个系统中同时配置惰性队列以节省内存,并结合延迟队列实现消息的定时投递。
2024-04-19 20:36:49
702
2
原创 新SpringCloudAlibaba
微服务其实本质上还是分布式,只是拆分的粒度大与小的问题。微服务是一种架构风格,这个概念最早是 Martin Folwer 提出,它的每个服务都是一个可以独立运行的应用,每个服务运行在自己独立的进程中,服务间通常使用http请求来相互沟通,每个服务以一种去中心化的方式进行运行。
2023-10-10 15:49:40
100
原创 liunx实用指南
source /usr/local/java (参考地址 https://blog.csdn.net/Elliseaon/article/details/118275142)
2023-09-24 19:29:56
139
原创 SpringCloudAlibaba
微服务其实本质上还是分布式,只是拆分的粒度大与小的问题。微服务是一种架构风格,这个概念最早是 Martin Folwer 提出,它的每个服务都是一个可以独立运行的应用,每个服务运行在自己独立的进程中,服务间通常使用http请求来相互沟通,每个服务以一种去中心化的方式进行运行。
2023-03-31 21:44:05
1870
原创 Elasticsearch(全文搜索引擎)
Elasticsearch是一个搜索引擎,它底层是基于Lucene来实现的。 Lucene是一个Java库,它存在着一定的问题,如果项目的开发语言不是Java,那么是无法使用 Lucene;Lucene底层设计非常的复杂,需要深入的了解搜索相关的知识,才能用好它。 Elaticsearch它是完全基于Restful风格的API来使用,那么就不在局限于任何一门语言,都可以直接调用接口即可实现搜索服务。
2023-03-16 14:01:48
1035
原创 Maven进阶
团队开发现状分析[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DV0uRN8m-1672725994115)(assets/1630987192620.png)](1)张三负责ssm_crm的开发,自己写了一个ssm_pojo模块,要想使用直接将ssm_pojo安装到本地仓库即可(2)李四负责ssm_order的开发,需要用到张三所写的ssm_pojo模块,这个时候如何将张三写的ssm_pojo模块交给李四呢?
2023-01-03 14:09:14
229
原创 JSP详解
JSP理解 JSP 及 JSP 原理能在 JSP中使用 EL表达式 和 JSTL标签理解 MVC模式 和 三层架构能完成品牌数据的增删改查功能1,JSP 概述JSP(全称:Java Server Pages):Java 服务端页面。是一种动态的网页技术,其中既可以定义 HTML、JS、CSS等静态内容,还可以定义 Java代码的动态内容,也就是 JSP = HTML + Java。如下就是jsp代码<html> <head> <ti
2022-12-10 12:18:28
8419
原创 mysql常用类型的使用以及注意事项
char是固定长度的类型,长度范围为0-255(字节),当存储的数据长度没有达到范围时,会自动在后面补齐空格;当数据库取char的数据的时候,会自动丢掉后面的空格varchar是变长长度,长度范围为0-65535(字节),当存储数据的长度没有达到范围时,也不会在后面补空格;mysql中varchar默认长度为255。对于char(n)和varchar(n)都能存n个字符。
2022-11-17 17:21:08
811
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人