modouwu
码龄11年
关注
提问 私信
  • 博客:18,272
    18,272
    总访问量
  • 28
    原创
  • 48,951
    排名
  • 81
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2014-07-29
博客简介:

modouwu的博客

查看详细资料
  • 原力等级
    当前等级
    2
    当前总分
    157
    当月
    11
个人成就
  • 获得142次点赞
  • 内容获得5次评论
  • 获得146次收藏
创作历程
  • 1篇
    2025年
  • 7篇
    2024年
  • 4篇
    2023年
  • 4篇
    2022年
  • 7篇
    2021年
  • 7篇
    2020年
成就勋章
TA的专栏
  • redis
    1篇
  • java
    14篇
  • spring
    1篇
  • 大数据
    1篇
  • work
  • mysql
    1篇
  • 算法
    1篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    架构
  • 搜索
    elasticsearch
  • 服务器
    linux
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

架构师技术图谱

漫谈分布式系统
原创
发布博客 2025.01.20 ·
121 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

知识点查漏补缺

当线程池中的任务执行异常时,该任务的执行线程会正常结束任务的运行,并且该线程会回到线程池中准备承接其他任务的执行。这与任务正常执行完成的情况是一样的。:如果任务抛出异常,线程池中的执行线程也会停止当前任务的执行,不会打印异常,会把异常封装给Future,在future.get()结果时才打印异常。如果线程池中的任务在执行过程中抛出异常,线程池本身并不会捕获任务中的异常,而是将异常抛给任务的调用者。在 Java 中,线程池中的任务抛出异常时,线程池的行为取决于任务执行时发生异常的位置以及线程池的配置。
原创
发布博客 2024.12.25 ·
406 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

多租户架构解析

设计和实现一个多租户架构需要考虑许多关键因素。动态数据源:通过等机制,根据当前请求的租户ID动态切换数据源。连接池:为每个租户配置独立的数据库连接池,提升性能。租户信息获取:通过请求参数、头信息、Session等方式获取租户ID,并在全局上下文中进行管理。性能优化:合理配置连接池、缓存与数据库查询,确保系统在大规模租户的情况下依然高效。特别是对于不同租户复用同一个数据库连接的情况,限制不同租户的连接资源限制尤为重要。
原创
发布博客 2024.12.24 ·
1149 阅读 ·
18 点赞 ·
0 评论 ·
16 收藏

金字塔原理+结构化表达

通过结论先行、以上统下、归纳分组和逻辑递进的方式,将信息组织成金字塔结构。
原创
发布博客 2024.10.14 ·
689 阅读 ·
23 点赞 ·
0 评论 ·
24 收藏

从零开始学架构

例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。一个学生信息管理系统,这个系统从逻辑的角度来拆分,可以分为“登录注册模块”“个人信息模块”、“个人成绩模块”;从物理的角度来拆分,可以拆分为Nginx、 Web服务器、 MySQL。框架关注的是“规范”,架构关注的是“结构”。框架的英文是Framework,架构的英文是Architecture。“基础结构”这个概念并没有明确说是从什么角度来分解的。
原创
发布博客 2024.09.30 ·
620 阅读 ·
28 点赞 ·
0 评论 ·
20 收藏

Elasticsearch技术解析与实战

启动发现当Elasticsearch节点启动时,它会尝试连接到配置中的种子节点列表中的每个节点。如果节点是首次启动或需要加入一个新的集群,它会通过种子节点列表来发现集群中的其他节点。Ping操作节点之间通过Ping操作来确认彼此的存在和状态。Elasticsearch会定期向集群中的其他节点发送Ping请求,以检测节点是否仍然在线。构建集群视图通过Ping操作,每个节点都能构建出集群的完整视图,包括集群中所有节点的信息。
原创
发布博客 2024.09.23 ·
1343 阅读 ·
25 点赞 ·
0 评论 ·
23 收藏

大数据技术生态

功能分别是分布式文件存储、资源调度和计算。这一套相当于用Yarn调度资源,读取HDFS文件内容进行MR计算。这一套的问题是使用比较麻烦,要写java代码。所以相当于这一套标准流程的SQL化。Hive可以简单理解为,Hadoop之上添加了自己的SQL解析和优化器,写一段SQL,解析为Java代码,然后去执行MR,底层数据还是在HDFS上。它的问题是运行速度慢,原因是MR,它需要频繁写读文件。这时基于内存的。
原创
发布博客 2024.07.29 ·
683 阅读 ·
15 点赞 ·
0 评论 ·
6 收藏

如何画好架构图

包括业务规划,业务模块、业务流程,对整个系统的业务进行拆分,对领域模型进行设计,把现实的业务转化成抽象对象。业务闭环:用户使用产品的闭环流程基于用户的某个需求或问题,梳理用户使用的业务流程,梳理参与此模块的用户、角色、场景,将核心流程完整的表述出来,形成闭环。技术架构:确定组成应用系统的实际运行组件(lvs,nginx,tomcat,php-fpm 等),这些运行组件之间的关系,以及部署到硬件的策略。技术架构主要考虑系统的非功能性特征,对系统的高可用、高性能、扩展、安全、伸缩性、简洁等做系统级的把握。
原创
发布博客 2024.05.23 ·
1158 阅读 ·
25 点赞 ·
0 评论 ·
13 收藏

kafka rabbitMq rocketMq

目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。
原创
发布博客 2023.10.17 ·
41 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分布式架构原理与实践+解构领域驱动设计

为了完成上面的订单业务流程,将分布式系统分为了四层。客户端:这是用户与系统之间的接口。了提升用户体验,会利用 HTTP 缓存手段将部分静态资源缓存下来,同时也可以将这部分静态资源缓存到 CDN 中,因为 CDN 服务器通常会让用户从比较近的网络节点获取静态数据。负载均衡器(以下称接入层):负载均衡器可以通过用户 IP 将用户的请求路由到不同的服务器集群。另外,在负载均衡这一层,还可以进行流量控制和身份验证等操作。
原创
发布博客 2023.10.07 ·
73 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

内存分析工具使用以及案例

要找到问题根因,可以从如下方面入手找到OOM的线程堆栈以及现场。
原创
发布博客 2023.09.02 ·
943 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

redis设计与实现阅读

redis设计与实现
原创
发布博客 2023.03.01 ·
31 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql调优

mysql进阶
原创
发布博客 2022.10.07 ·
251 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

nacos源码阅读

代码学习代码用法AtomicReference参考项目使用保存白名单配置,并在合适的时候更新配置public class AggrWhitelist { /** * 判断指定的dataId是否在聚合dataId白名单。 */ static public boolean isAggrDataId(String dataId) { if (null == dataId) { throw new IllegalArgumen
原创
发布博客 2022.05.02 ·
1171 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

高性能Mysql

Mysql的结构Mysql的逻辑架构如图是Mysql各组件的架构图。第一层是连接客户端。功能比如连接处理、授权认证、安全等。第二层是服务器。它包含了Mysql的核心功能,包括查询解析、分析、优化、缓存以及所有的内置函数,所有跨存储引擎的功能都在这一层:存储过程、触发器、视图等。第三层是存储引擎。存储引擎负责Mysql中数据的存储和提取。服务器通过API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对于上层的查询过程透明。这些接口函数,执行诸如“开始一个事务”、“根据主键
原创
发布博客 2022.03.21 ·
817 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java开发规约

编程规约命名风格【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO /PO / UID 等。正例:ForceCode / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion反例:forcecode / UserDo / HTMLDto / XMLService / TCPUDPDeal / TAPromotion【强制】抽象类命名使用 Abstract 或 Base
原创
发布博客 2022.03.06 ·
875 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HashMap细节及Map实践

结构从结构实现来说,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的下面简述一下hashmap的属性和重要方法put(k,v)和resize():属性默认初始容量为16默认负载因子为0.75桶中链表节点转化为红黑树节点的桶元素个数阈值为8桶中红黑树节点转化为链表节点的桶元素个数阈值为6链表节点转化为红黑树节点的最小元素个数为64,即如果桶内元素已经达到转化红黑树阈值,但是表元素总数未达到阈值,则值进行扩容,不进行树形化//默认初始容量为16,容量必须为2的幂
原创
发布博客 2021.08.26 ·
311 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java开发规约

编码规约命名规约【强制】类名使用UpperCamelCase风格,以下情形例外:DO / BO / DTO / VO / AO / UID等。正例:ForceCode / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion反例:forcecode / UserDo / HTMLDto / XMLService / TCPUDPDeal / TAPromotion【强制】常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚,不
原创
发布博客 2021.04.26 ·
326 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Java ms总结

小米服务器端1.hashMap扩容为什么是2的幂次?减小hash碰撞,方便扩容2.G1收集器介绍一下参考1⃣️并行与并发2⃣️分代收集3⃣️可预测的停顿G1把内存划分成很多小块, 每个小块会被标记为E/S/O中的一个,从而可以垃圾回收工作更彻底的并行化它回收的大致过程是这样的:在垃圾回收的最开始有一个短暂的时间段(Inital Mark)会停止应用(stop-the-world)然后应用继续运行,同时G1开始Concurrent Mark再次停止应用,来一个Final Mark (
原创
发布博客 2021.03.05 ·
487 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Hadoop Hbase Zookeeper Kafka

HadoopMapReducesplit分片hadoop将mapreduce的输入数据划分成等长的小数据块,称为输入分片。hadoop为每个分片构建一个map任务,并由该任务来运行用户自定义的map函数从而处理分片中的每条记录分片是并行处理的,分片小,那么整个处理过程将获得更好的负载平衡;然后分片切的太小,那么管理分片的总时间和构建map任务的总时间将决定作业的执行时间。通常,一个合理的分片大小趋于hdfs的一个块大小,默认128MB。因为它是确保可以存储在单个节点上的最大输入块大小。如果分片跨越
原创
发布博客 2021.01.25 ·
694 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏
加载更多