自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

用键盘与世界交流

用心去做,让代码汇聚智慧!

  • 博客(151)
  • 资源 (1)
  • 收藏
  • 关注

原创 2020-10-27

1. 性能优化是什么? 1.1 性能优化就是发挥机器本来的性能2. 性能的几个唯度 1.1.1 CPU 命令 vmstat http://www.man7.org/linux/man-pages/man8/vmstat.8.html首先检查cpu,cpu使用率要提升而不是降低。CPU空闲并不一定是没事做,也有可能是锁或者外部资源瓶颈。 命令Tophttp://man7.org/linux/m...

2020-10-27 22:28:59 170

原创 SpringMvc基础知识学习笔记(1)

1.mvc框架要做那些事 a) 将url 映射到JAVA类或者JAVA类的方法 b) 封装用户提交的数据 c) 处理请求---调用相关的业务处理--封装相应的数据 d) 将响应数据进行渲染 jsp html freemarker2 spring MVC 是轻量级的,基于请求响应的mvc框架3 为啥要学习Spring mvc ? 性能较Struts2好...

2019-03-04 12:00:17 447

原创 java设计模式之单例模式

java设计模式中的单例模式是最为常见的一种之一,并且网上也有许多资料可以查阅,说说我对这个模式的认识与理解,以学习笔记的形式展示给大家,也方便自己以后对知识的回顾。    单例模式用一句话来说明就是 可以 让一个类的实例有且只有一个,控制了类的实例化的个数,使用这种设计模式,有效的避免了实例化对象时出现重复性,节省了内存空间又提高实例化对象的时间效率,由于整个程序使用的都是同一个实例对象,就...

2018-10-09 16:59:52 161

原创 JAVA api 之IO流

day05                                     IO流1 流的作用:  流是对各类文件的操作,而且是从头到尾进行读和写的 (按顺序) 不想RandomAccessFile 一样可以随意2 流的分类  按照方向:输入输出流                                         * a: 参照物                       ...

2018-07-04 23:52:53 127

原创 java基础之API(String)

day01 String 类    是一个final类型的  不能被继承,字符串的对象不会改变(里面char[]字符数组的值不能被改变),字符串的引用变量可以改变 String 对象的创建(有很多种,归纳为4种)1)初始化的同时为该对象赋予值   String str =”Hello”;2)  使用new 关键字  String str = new String(“hello”);3)  通过任何...

2018-06-30 06:50:59 428

原创 git 分支管理规范

master 为主分支,也是用于部署生产环境的分支,需要确保master分支稳定性。master 分支一般由 release 以及 hotfix 分支合并,任何时间都不能直接修改代码。

2024-06-16 21:36:53 755

原创 利用LLM大模型生成sql的深入应用探究

初步想法,通过程序先读取DDL 建表语句到文档中,(维护好表结构的关系到指定的document中) 在使用LiamdaIndex 来调用llm 生成我们要的sql 通过emeding 匹配好对应需要使用的表,不需要再在prompt 额外强调要使用哪些表,同时 弥补了 chat2db 的分析的一些短板;如何通过擅用工具,完成繁琐重复的SQL取数、CRUD的业务代码,从而解放自己的生产力,去做更有价值的事情,是摆在每个人面对待解决的问题。对于复杂的sql 的生成 难以处理 对于中文的提问 回答准确度高。

2024-02-06 09:09:44 1569

原创 如何提高Bito生成函数代码的准确度

Bito 实践经验总结

2024-02-02 13:44:24 363

原创 审计日志设计方案

首先,网关的请求日志量是十分巨大的,如果不使用MQ进行缓存,把网关收集到的日志直接通过http或者grpc等其他协议直接上送日志,那有可能带来一是可能阻塞了网关,二来审计系统的资源可能处理不及时,导致日志丢失,或者引发审计系统宕机。上述的方案是满足了产品规划的需求,记录的事件明细基本上就只是一句话概括的,比如 ”在碧桂山城项目中,修改业主【小王】“,这句话根本就没体现修改了什么东西,是修改了业主的手机号?等等都没记录起来,所以我们要和前端同学做个约定,就是在修改接口中,将修改前的数据也传入到请求参数中。

2024-02-02 13:39:49 1126

原创 数据权限方案设计(后端)

数据权限设计方案

2024-01-26 10:05:04 1775

原创 Bito智能辅助编程体验报告

当三个层级中,同时对同一个项目或同一个项管的指标进行预警时,以层级高的规则为准,如果层级低的已经完成创建,那么该条规则会被覆盖,被覆盖的内容隐藏,并通知到创建人,通知内容:“在某年某月某日某时某分,您创建的预警名称被新的创建人覆盖,对应的项目名称是:项目名称1、项目名称2、项目名称3、等、指标名称为:****、新的预警名称为:新预警名称”。在我的代码库中,找到这四张表org_organization,org_employee_position,org_position,org_employee;

2024-01-09 11:10:44 693

原创 关于缓存和数据库一致性问题的深入研究

6、在「先更新数据库,再删除缓存」方案下,「读写分离 + 主从库延迟」也会导致缓存和数据库不一致,缓解此问题的方案是「延迟双删」,凭借经验发送「延迟消息」到队列中,延迟删除缓存,同时也要控制主从库延迟,尽可能降低不一致发生的概率。4、在更新数据库 + 删除缓存的方案中,「先删除缓存,再更新数据库」在「并发」场景下依旧有数据不一致问题,解决方案是「延迟双删」,但这个延迟时间很难评估,所以推荐用「先更新数据库,再删除缓存」的方案。所以,当数据发生更新时,我们不仅要操作数据库,还要一并操作缓存。

2023-11-19 15:33:14 985

原创 读写分离技术架构图

读写分离技术实现

2023-10-10 14:44:43 144

原创 主从复制的实现方案

实现读写分离的第一步就是需要配置主从复制;以上是主从复制的实际落地实践方案

2023-10-09 15:16:23 324

原创 任务工单发送失败重试方案设计

根据需求设计实际的实现方案;可以借鉴设计思路;设计方案# 流程图

2023-10-08 17:05:17 180

原创 策略模式优雅实践

设计模式之策略模式最佳实践;认真看完;区别于网络上大多数的实践方式;而且应用企业级项目上嘎嘎香;拿去给面试讲一讲;绝对让面试官‘怪“目相看

2023-10-08 16:07:44 214

原创 使用chat-GPT接口提取合同中关键信息

AI应用,chatGPT接口调用;实现合同中指定的关键字段信息提取

2023-10-07 12:46:57 1802

原创 Mysql主从复制数据架构全面解读

大家好,我是山子,今天给大家分析Mysql 实现主从复制的方方面面,主从复制当然也是我们做读写分离的前提,以下内容是从各网络平台摘录整理总结归纳在一起的;内容已经从主从复制的各方面的维度进行了阐述;非常的全面;可以帮助大家节省时间,再次去从各网络平台进行查找;当然由于内容比较多,有小部分内容存在重复;就当是再次巩固阅读了把;全篇内容教比较长,请大家耐心的读完,相信大家一定会有收获的,对主从复制这块的知识一定会有很大认知的提升,用来做面试准备也是全面无死角覆盖!加油,看完哦!

2023-10-02 22:45:07 685

原创 幂等性通用组件

通用性幂等组件开发过程和设计思路

2023-03-21 18:06:42 873 1

原创 java 8 中的实用技巧

java 8 中超实用的技巧,使用频繁效率高;可以把《写给大忙人看的javase 8》

2023-02-26 17:50:43 446

原创 如何写好controller层

如何写好controller层

2023-02-20 18:45:38 1455

原创 数据脱敏实战经验

数据脱敏:把系统里的一些敏感数据进行加密处理后再返回,达到保护隐私作用;数据脱敏在一些项目中一般都会用到,学习起来

2023-01-09 11:20:11 823 2

原创 java 之泛型详解

关于泛型的详细介绍

2022-12-05 15:01:17 1789

原创 idea 超实用的插件

idea超级实用,超级值得推荐的常用插件,千万不要错过

2022-11-29 16:33:28 763

原创 如何做好接口对接

企业级大型项目实战经验分享

2022-11-27 21:49:20 4901

原创 JAVA 相关书籍推荐(全)

java 相关的海量书籍

2022-06-28 14:01:27 7130

原创 消息中间件选型分析(二十一)

消息中间件选型分析 消息中间件的选型是很多个人乃至公司都会面临的一个问题。 目前开源的消息中间件有很多,比如 ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ等。不管选择其中的哪一款,都会有用得不顺手的地方,毕竟不是为你量身定制的。有些“大厂”在长期的使用过程中积累了一定的经验,消息队列的使用场景也相对稳定固化,由于某种原因(比如目前市面上的消息中间件无法全部满足自身需求),并且它也具备足够的财力和人力而选择自研一款量身打造的消息中间件。但绝大多数公司还是选择不...

2022-01-04 08:48:30 417

原创 其他拓展应用(二十)

死信队列和重试队列 由于某些原因消息无法被正确地投递,为了确保消息不会被无故地丢弃,一般将其置于一个特殊角色的队列,这个队列一般称为死信队列。后续分析程序可以通过消费这个死信队列中的内容来分析当时遇到的异常情况,进而可以改善和优化系统。 与死信队列对应的还有一个“回退队列”的概念,如果消费者在消费时发生了异常,那么就不会对这一次消费进行确认,进而发生回滚消息的操作之后,消息始终会放在队列的顶部,然后不断被处理和回滚,导致队列陷入死循环。为了解决这个问题,可以为每个队列设置一个回...

2021-12-31 08:58:01 186

原创 延时队列(十九)

延时队列 队列是存储消息的载体,延时队列存储的对象是延时消息。所谓的“延时消息”是指消息被发送以后,并不想让消费者立刻获取,而是等待特定的时间后,消费者才能获取这个消息进行消费,延时队列一般也被称为“延迟队列”。注意延时与 TTL 的区别,延时的消息达到目标延时时间后才能被消费,而 TTL 的消息达到目标超时时间后会被丢弃。延时队列的使用场景有很多,比如:在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行异常处理,这时就可以使用...

2021-12-31 08:53:46 1761

原创 过期时间(十八)

除了正常的消息发送和消费,在使用 Kafka 的过程中难免会遇到一些其他高级应用类的需求,比如消费回溯,这个可以通过原生 Kafka 提供的 KafkaConsumer.seek() 方法来实现,然而类似延时队列、消息轨迹等应用需求在原生 Kafka 中就没有提供了。我们在使用其他消息中间件时,比如 RabbitMQ,使用到了延时队列、消息轨迹的功能,如果我们将应用直接切换到 Kafka 中,那么只能选择舍弃它们。但这也不是绝对的,我们可以通过一定的手段来扩展 Kafka,从本节开始讲述的就...

2021-12-30 08:51:51 1213

原创 可靠性分析(十七)

日志同步机制 在分布式系统中,日志同步机制既要保证数据的一致性,也要保证数据的顺序性。虽然有许多方式可以实现这些功能,但最简单高效的方式还是从集群中选出一个 leader 来负责处理数据写入的顺序性。只要 leader 还处于存活状态,那么 follower 只需按照 leader 中的写入顺序来进行同步即可。 通常情况下,只要 leader 不宕机我们就不需要关心 follower 的同步问题。不过当 leader 宕机时,我们就要从 follower 中选举出一个新的 le...

2021-12-30 08:49:32 2279

原创 副本剖析(下)(十六)

Leader Epoch的介入 上一节的内容所陈述的都是在正常情况下的 leader 副本与 follower 副本之间的同步过程,如果 leader 副本发生切换,那么同步过程又该如何处理呢?在 0.11.0.0 版本之前,Kafka 使用的是基于 HW 的同步机制,但这样有可能出现数据丢失或 leader 副本和 follower 副本数据不一致的问题。 首先我们来看一下数据丢失的问题,如上图所示,Replica B 是当前的 leader 副本(用 L...

2021-12-29 09:12:57 222

原创 副本剖析(上)(十五)

Kafka 中采用了多副本的机制,这是大多数分布式系统中惯用的手法,以此来实现水平扩展、提供容灾能力、提升可用性和可靠性等。我们对此可以引申出一系列的疑问:Kafka 多副本之间如何进行数据同步,尤其是在发生异常时候的处理机制又是什么?多副本间的数据一致性如何解决,基于的一致性协议又是什么?如何确保 Kafka 的可靠性?Kafka 中的可靠性和可用性之间的关系又如何? 本节开始从副本的角度切入来深挖 Kafka 中的数据一致性、数据可靠性等问题,主要包括副本剖析、日志同步机...

2021-12-29 09:02:24 472

原创 事务(十四)

消息传输保障一般而言,消息中间件的消息传输保障有3个层级,分别如下。at most once:至多一次。消息可能会丢失,但绝对不会重复传输。 at least once:最少一次。消息绝不会丢失,但可能会重复传输。 exactly once:恰好一次。每条消息肯定会被传输一次且仅传输一次。Kafka 的消息传输保障机制非常直观。当生产者向 Kafka 发送消息时,一旦消息被成功提交到日志文件,由于多副本机制的存在,这条消息就不会丢失。如果生产者发送消息到 Kafka 之后,遇到了网络问题而造成

2021-12-28 08:44:36 743

原创 consumer_offsets深度剖析(十三)

consumer_offsets深度剖析 位移提交是使用消费者客户端过程中一个比较“讲究”的操作。位移提交的内容最终会保存到 Kafka 的内部主题 __consumer_offsets 中,对于主题 __consumer_offsets 的深度掌握也可以让我们更好地理解和使用好位移提交。 一般情况下,当集群中第一次有消费者消费消息时会自动创建主题 __consumer_offsets,不过它的副本因子还受 offsets.topic.replication.factor 参数...

2021-12-26 16:58:54 1103

原创 消费者协调器和组协调器(十二)

消费者协调器和组协调器 了解了 Kafka 中消费者的分区分配策略之后是否会有这样的疑问:如果消费者客户端中配置了两个分配策略,那么以哪个为准呢?如果有多个消费者,彼此所配置的分配策略并不完全相同,那么以哪个为准?多个消费者之间的分区分配是需要协同的,那么这个协同的过程又是怎样的呢?这一切都是交由消费者协调器(ConsumerCoordinator)和组协调器(GroupCoordinator)来完成的,它们之间使用一套组协调协议进行交互。旧版消费者客户端的问题 消费者协调...

2021-12-26 16:55:39 753

原创 消费端分区分配策略(十一)

消费端分区分配策略 Kafka 提供了消费者客户端参数 partition.assignment.strategy 来设置消费者与订阅主题之间的分区分配策略。默认情况下,此参数的值为 org.apache.kafka.clients.consumer.RangeAssignor,即采用 RangeAssignor 分配策略。除此之外,Kafka 还提供了另外两种分配策略:RoundRobinAssignor 和 StickyAssignor。消费者客户端参数 partition.assig...

2021-12-24 09:03:27 1350

原创 服务端参数解密(十)

服务端参数解密 如果 broker 端没有显式配置 listeners(或 advertised.listeners)使用 IP 地址,那么最好将 bootstrap.server 配置成主机名而不要使用 IP 地址,因为 Kafka 内部使用的是全称域名(Fully Qualified Domain Name)。如果不统一,则会出现无法获取元数据的异常。broker.id broker.id 是 broker 在启动之前必须设定的参数之一,在 Kafka 集群中,每个 ...

2021-12-24 08:58:57 1396

原创 控制器(九)

控制器 在 Kafka 集群中会有一个或多个 broker,其中有一个 broker 会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。当某个分区的 leader 副本出现故障时,由控制器负责为该分区选举新的 leader 副本。当检测到某个分区的 ISR 集合发生变化时,由控制器负责通知所有broker更新其元数据信息。当使用 kafka-topics.sh 脚本为某个 topic 增加分区数量时,同样还是由控制器负责分区的重新分配。控...

2021-12-23 08:48:48 461

原创 延时操作(八)

延时操作 如果在使用生产者客户端发送消息的时候将 acks 参数设置为-1,那么就意味着需要等待 ISR 集合中的所有副本都确认收到消息之后才能正确地收到响应的结果,或者捕获超时异常。 如下面3张图所示,假设某个分区有3个副本:leader、follower1 和 follower2,它们都在分区的 ISR 集合中。为了简化说明,这里我们不考虑 ISR 集合伸缩的情况。Kafka 在收到客户端的生产请求(ProduceRequest)后,将消息3和消息4写入 leader 副...

2021-12-23 08:44:10 368

DesignPatterns-master.zip

java中二十三种设计模式

2021-01-23

空空如也

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

TA关注的人

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