自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 12306售票系统的高并发处理方案

12306售票系统的高并发处理方案下面我将详细介绍如何使用Hystrix实现服务降级、消息队列实现流量削峰,以及Spring Cloud Gateway实现限流,来构建一个类似12306的高并发售票系统。

2025-07-11 09:56:57 255

原创 Spring Boot 启动注解原理

Spring Boot 的核心启动注解是 @SpringBootApplication,它是一个组合注解,包含了多个关键注解的功能。识别 @Component, @Service, @Repository, @Controller 等注解的类。例如 DataSourceAutoConfiguration 只在存在 DataSource 类时生效。@ConditionalOnClass:类路径存在指定类时生效。使用 @Conditional 系列注解控制配置类的生效条件。

2025-07-04 09:55:07 264

原创 ResponseBody与Java对象和JSON之间的转换

ResponseBody 是Spring MVC中的一个注解,它负责将Java对象转换为JSON格式的响应体(或其他格式),发送给客户端。注解标记:当控制器方法使用@ResponseBody注解时,Spring知道这个方法返回的对象应该直接写入HTTP响应体,而不是解析为视图名称。Spring Boot自动配置了这些转换器,使得Java对象和JSON之间的转换几乎无需额外配置即可工作。ResponseBody与Java对象和JSON之间的转换。// user参数是从请求体JSON自动转换的Java对象。

2025-07-04 09:50:35 200

原创 Nacos作为注册中心的服务间调用

这种直接基于Nacos API的实现方式虽然较为原始,但可以帮助理解服务注册与发现的基本原理,并在特殊需求场景下提供更大的灵活性。生产环境建议考虑使用成熟的HTTP客户端(如OkHttp)替代原生HttpURLConnection。负载均衡策略:可以扩展实现多种负载均衡策略(轮询、权重、最少连接等)缓存机制:缓存服务实例列表,减少Nacos查询频率。需要自行处理服务发现的长轮询或事件监听机制。Nacos作为注册中心的服务间调用。请求重试:对失败的请求进行重试。3. 服务发现与调用实现。

2025-07-03 14:47:00 426

原创 String、 HashMap vs ConcurrentHashMap、jvm

String 的 + 操作编译后实际调用 StringBuilder.append(),但循环中会重复创建 StringBuilder,应显式使用 StringBuilder。队列选有界的避免 OOM。“Spring AOP 默认用 JDK 代理(有接口时),无接口用 CGLIB。ConcurrentHashMap:分段锁(JDK7)或 CAS + synchronized(JDK8),线程安全。JDK8 的 ConcurrentHashMap 锁粒度更细(仅锁链表头节点),支持并发度更高的场景。

2025-07-03 13:17:45 683

原创 MySQL锁机制详解:记录锁、间隙锁、临键锁与意向锁

临键锁 记录+前面间隙 行级 默认行锁,防止幻读和保证一致性 RR。X(排他) S(共享) IX(意向排他) IS(意向共享)MySQL锁机制详解:记录锁、间隙锁、临键锁与意向锁。在RC(读已提交)和RR(可重复读)隔离级别下都可用。记录锁 单条记录 行级 防止记录被修改 RC, RR。锁定范围是左开右闭区间:(前一条记录, 当前记录]两种类型:意向共享锁(IS)、意向排他锁(IX)防止幻读:在RR级别下,查询使用临键锁锁定范围。防止丢失更新:使用记录锁确保事务独占修改某行。

2025-07-03 13:12:32 295

原创 linux命令

ps/top/free/df/netstat/ifconfig/ip:系统资源监视。ls -al /proc/pid/exe 查询进程 ID 对应的可执行程序路径1。mv file_or_dir target_path 移动文件或目录至其他位置1。mkdir -p /tmp/dir1/dir2 递归创建多级目录树1。cp -r src_dir dest_dir 复制整个目录及其内容1。cd:用于切换当前工作目录。cat/tac/more/less/head/tail:文本查看器。

2025-06-18 15:52:41 370

原创 Java 微服务架构的运作流程

微服务架构的第一步是将业务系统拆分成多个独立的服务,每个微服务应该具有独立的功能,并且与其他服务松耦合。请求会等待响应完成。异步通信(如消息队列):服务通过消息队列(如 Kafka、RabbitMQ、ActiveMQ 等)进行异步通信,服务不需要等待响应。微服务架构中的服务通常是动态的,服务的实例可能随时变化。服务注册:当微服务启动时,它会将自己的信息(如服务名称、IP 地址、端口等)注册到服务注册中心。服务发现:其他微服务在需要调用某个服务时,会从服务注册中心获取该服务的地址。

2025-06-11 18:58:28 868

原创 Ansible 命令

如果希望在不完全禁用检查的情况下管理主机密钥,可以考虑将主机密钥添加到 ~/.ssh/known_hosts 文件中,或者使用 ssh-keyscan 命令提前收集主机密钥。使用 Docker 运行 Ansible:通过在 Docker 容器中运行 Ansible,你可以确保你的剧本和配置在一致的环境中运行,从而减少与本地依赖或版本相关的问题。ansible:这是将要在容器内执行的命令。开发环境:在非生产环境中,当你频繁添加或删除主机时,可以禁用主机密钥检查,以避免 SSH 对未识别主机的警告。

2024-10-22 17:28:42 463

转载 数据库设置自动递增有什么意义【转载】

数据库自动递增的意义主要体现在以下几个方面:1、保证数据的唯一性、2、方便数据的管理、3、增强数据的安全性、4、提升数据查询的效率、5、节省存储空间。通过设置主键为自动递增,可以保证每一条新插入的数据都有一个唯一的标识,避免了插入数据时出现重复的可能性。需要注意的是,使用数据库自动递增时,我们需要确保生成的标识符是唯一的,并且不会重复。自动递增的主键不仅可以保证数据的唯一性,还可以增强数据的安全性。提供唯一标识符: 数据库自动递增可以为每个插入的数据记录生成一个唯一的标识符,确保数据的唯一性。

2024-09-17 23:45:31 265

原创 GC Roots的常见类型

在Java中,垃圾回收(Garbage Collection, GC)是自动管理内存的机制。根对象(GC Roots)是垃圾回收算法用来确定哪些对象是活跃的、不能被回收的对象。通常,根对象是指GC能够直接访问的对象引用,它们是垃圾回收的起点。

2024-09-09 17:08:41 370

原创 无状态服务有状态服务的区别,有几种方案把一个有状态服务重构为无状态

无状态服务:适合扩展性要求高、服务状态不依赖请求历史的场景,优点是扩展性强、容错性好,缺点是需要增加请求信息和客户端复杂性。有状态服务:适合需要保持客户端状态的场景,如会话管理和个性化服务,优点是减少了每个请求的负担,缺点是扩展和容错性较差。

2024-09-05 15:42:40 1820

原创 java开发工作中有哪几种设计模式,并简述使用场景。

定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定具体的类。使用场景:当系统要独立于产品的创建过程,且需要生产一系列相关产品时,例如跨平台UI工具包。

2024-09-05 15:26:32 985

原创 边路缓存思维并说明如何实现数据库和其他的数据缓存工具实现数据缓存管理和双写一致

边路缓存是通过额外的缓存层提升系统性能,而在实际实现中,需要通过合理的缓存更新策略和双写一致性机制来确保数据的一致性和缓存管理的有效性。

2024-09-04 13:41:47 563

原创 本地缓存和redis缓存区别及各自优缺点

本地缓存和Redis缓存各有优缺点。对于单机应用或对数据一致性要求不高的场景,本地缓存是一种简单高效的选择。而在需要分布式支持、容量大、数据一致性要求高的场景下,Redis缓存则是更为合适的方案。选择合适的缓存机制应根据具体的业务需求和系统架构来确定。

2024-09-03 15:51:16 2149

原创 线程池设计核心线程数、最大线程数、阻塞队列、空余线程存活时间、线程工厂、拒绝策略,这样设计有什么好处

这里写自定义目录标题欢迎使用Markdown编辑器新的改功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Mar...

2024-09-03 15:19:11 593

原创 2021-06-19

Markdown学习##二级标题字体Hello,World!Hello,World!Hello,World!Hello,World!引用马上学习分割线图片!名字超链接点击跳转列表AA表格代码

2021-06-19 03:00:42 283

空空如也

空空如也

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

TA关注的人

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