- 在文章最后作者推荐了一些不错的公众号,有兴趣的学者可以点击原文链接查看。 在文章最后作者推荐了一些不错的公众号,有兴趣的学者可以点击原文链接查看。
- 一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化... 一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化...
- 消息中间件选型分析 ——从Kafka与RabbitMQ的对比来看全局有很多网友留言:公司要做消息中间件选型,该如何选?你觉得哪个比较好?消息选型的确是一个大论题,实则说来话长的事情又如何长话短说。对此笔者专门撰稿一篇内功心法:如何看待消息中间件的选型,不过这篇只表其意未表其行,为了弥补这种缺陷,笔者最近特意重新撰稿一篇,以供参考。温馨提示:本文一万多字,建议先马(关注)后看。一、前言消... 消息中间件选型分析 ——从Kafka与RabbitMQ的对比来看全局有很多网友留言:公司要做消息中间件选型,该如何选?你觉得哪个比较好?消息选型的确是一个大论题,实则说来话长的事情又如何长话短说。对此笔者专门撰稿一篇内功心法:如何看待消息中间件的选型,不过这篇只表其意未表其行,为了弥补这种缺陷,笔者最近特意重新撰稿一篇,以供参考。温馨提示:本文一万多字,建议先马(关注)后看。一、前言消...
- 阅读本文,代表你将和 奎因 一起,从 0 开始快速入门 flask 开发以及 mongodb 的使用,打造一个稳定、健壮的分布式多机服务器资源监控平台在前面一篇文章《 Python 系统资源信息获取工具,你用过没?》中,我们学习了如何使用 Python 中的第三方库 psutil 来获取系统的资源信息,比如 cpu 占用率、内存使用情况、硬盘以及进程情况等。并且奎因在文章的末尾还大言不惭、信... 阅读本文,代表你将和 奎因 一起,从 0 开始快速入门 flask 开发以及 mongodb 的使用,打造一个稳定、健壮的分布式多机服务器资源监控平台在前面一篇文章《 Python 系统资源信息获取工具,你用过没?》中,我们学习了如何使用 Python 中的第三方库 psutil 来获取系统的资源信息,比如 cpu 占用率、内存使用情况、硬盘以及进程情况等。并且奎因在文章的末尾还大言不惭、信...
- 今天我们将编写功能模块,并在代码开始之前对功能模块进行分析,并通过流程图和 UML 类图的绘制将模块功能细化,接着从搭建骨架开始,逐步完成一个模块的编写。经过之前的学习 《 Python 系统资源信息获取工具,你用过没?》、《【一】从0开始,用flask+mongo打造分布式服务器监控平台》, 召唤师峡谷萌新 已经可以启动一个 Web 页面了,并且已经通过 MongoEngine 定义了一... 今天我们将编写功能模块,并在代码开始之前对功能模块进行分析,并通过流程图和 UML 类图的绘制将模块功能细化,接着从搭建骨架开始,逐步完成一个模块的编写。经过之前的学习 《 Python 系统资源信息获取工具,你用过没?》、《【一】从0开始,用flask+mongo打造分布式服务器监控平台》, 召唤师峡谷萌新 已经可以启动一个 Web 页面了,并且已经通过 MongoEngine 定义了一...
- 导读在之前的文章《基于SpringCloud的微服务架构演变史?》中我们介绍了分布式注册中心Consul集群中使用了Raft这种分布式一致性算法,那么在这一篇的内容中就给大家详细介绍下什么是Raft算法。我们知道进行微服务架构很重要的一个目标就是实现分布式提升整体系统的性能和可靠性。而提供系统可靠性的关键就是通过建立多个副本节点的方式来保证系统中一台或多台服务节点故障的情况下,系统仍然可用。... 导读在之前的文章《基于SpringCloud的微服务架构演变史?》中我们介绍了分布式注册中心Consul集群中使用了Raft这种分布式一致性算法,那么在这一篇的内容中就给大家详细介绍下什么是Raft算法。我们知道进行微服务架构很重要的一个目标就是实现分布式提升整体系统的性能和可靠性。而提供系统可靠性的关键就是通过建立多个副本节点的方式来保证系统中一台或多台服务节点故障的情况下,系统仍然可用。...
- 好了切入正题,一直在工作中会聊到很多锁的问题,今天跟大家一起闲聊一下,究竟什么是锁,为什么需要锁,以及分布式的情况下,怎么设计和实现锁。什么是锁?明·魏禧《大铁椎传》上是这样解释的:锁:置于可启闭的器物上,以钥匙或暗码(如字码机构、时间机构、自动释放开关、磁性螺线管等)打开的扣件,例如:柄铁折叠环复,如锁上练,引之长丈许。锁,就是要对一个可启闭的东西上,拥有者拥有着钥匙或者某些 Code ,... 好了切入正题,一直在工作中会聊到很多锁的问题,今天跟大家一起闲聊一下,究竟什么是锁,为什么需要锁,以及分布式的情况下,怎么设计和实现锁。什么是锁?明·魏禧《大铁椎传》上是这样解释的:锁:置于可启闭的器物上,以钥匙或暗码(如字码机构、时间机构、自动释放开关、磁性螺线管等)打开的扣件,例如:柄铁折叠环复,如锁上练,引之长丈许。锁,就是要对一个可启闭的东西上,拥有者拥有着钥匙或者某些 Code ,...
- 今天小蕉跟大伙一起聊聊分布式系统的架构的套路。在开始说套路之前,大家先思考一个问题,为什么要进行分布式架构?大多数的开发者大多数的系统可能从来没接触过分布式系统,也根本没必要进行分布式系统架构,为什么?因为在访问量或者QPS没有达到单台机器的性能瓶颈的时候,根本没必要进行分布式架构。那如果业务量上来了,一般会怎么解决呢?首先考虑的就是机器升级。机器配置的垂直扩展,首先要找到当前性能的瓶颈点,... 今天小蕉跟大伙一起聊聊分布式系统的架构的套路。在开始说套路之前,大家先思考一个问题,为什么要进行分布式架构?大多数的开发者大多数的系统可能从来没接触过分布式系统,也根本没必要进行分布式系统架构,为什么?因为在访问量或者QPS没有达到单台机器的性能瓶颈的时候,根本没必要进行分布式架构。那如果业务量上来了,一般会怎么解决呢?首先考虑的就是机器升级。机器配置的垂直扩展,首先要找到当前性能的瓶颈点,...
- 前言大家新年快乐!新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容。老读者应该还记得我在去年国庆节前分享过一篇《设计一个百万级的消息推送系统》;虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码;这么久了是时候把坑填上了。目录结构:本文较长,高能预警;带好瓜子板凳。于是在之前的基础上我完善了一些内容,先来看看这个项目... 前言大家新年快乐!新的一年第一篇技术文章希望开个好头,所以元旦三天我也没怎么闲着,希望给大家带来一篇比较感兴趣的干货内容。老读者应该还记得我在去年国庆节前分享过一篇《设计一个百万级的消息推送系统》;虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码;这么久了是时候把坑填上了。目录结构:本文较长,高能预警;带好瓜子板凳。于是在之前的基础上我完善了一些内容,先来看看这个项目...
- 这篇文章主要是对 Redis 官方网站刊登的 Distributed locks with Redis 部分内容的总结和翻译。什么是 RedLockRedis 官方站这篇文章提出了一种权威的基于 Redis 实现分布式锁的方式名叫 Redlock,此种方式比原先的单节点的方法更安全。它可以保证以下特性:安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都... 这篇文章主要是对 Redis 官方网站刊登的 Distributed locks with Redis 部分内容的总结和翻译。什么是 RedLockRedis 官方站这篇文章提出了一种权威的基于 Redis 实现分布式锁的方式名叫 Redlock,此种方式比原先的单节点的方法更安全。它可以保证以下特性:安全特性:互斥访问,即永远只有一个 client 能拿到锁避免死锁:最终 client 都...
- 目录:版本控制介绍什么是版本控制为什么要版本控制本地版本控制系统集中化的版本控制系统分布式版本控制系统认识 GitGit 简史Git 与其他版本管理系统的主要区别Git 的三种状态Git 使用快速入门获取 Git 仓库记录每次更新到仓库推送改动到远程仓库远程仓库的移除与重命名查看提交历史撤销操作分支推荐阅读版本控制什么是版本控制版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修... 目录:版本控制介绍什么是版本控制为什么要版本控制本地版本控制系统集中化的版本控制系统分布式版本控制系统认识 GitGit 简史Git 与其他版本管理系统的主要区别Git 的三种状态Git 使用快速入门获取 Git 仓库记录每次更新到仓库推送改动到远程仓库远程仓库的移除与重命名查看提交历史撤销操作分支推荐阅读版本控制什么是版本控制版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修...
- ByteTCC基于Try/Confirm/Cancel机制实现,可与Spring容器无缝集成,兼容Spring的声明式事务管理。提供对dubbo框架、Spring Cloud的开箱即用的支持,可满足多数据源、跨应用、跨服务器等各种分布式事务场景的需求。 ByteTCC基于Try/Confirm/Cancel机制实现,可与Spring容器无缝集成,兼容Spring的声明式事务管理。提供对dubbo框架、Spring Cloud的开箱即用的支持,可满足多数据源、跨应用、跨服务器等各种分布式事务场景的需求。
- 很多业务场景需要我们某一特定的时刻去做某件任务,定时任务解决的就是这种业务场景。一般来说,系统可以使用消息传递代替部分定时任务,两者有很多相似之处,可以相互替换场景。如,上面发货成功发短信通知客户的业务场景,我们可以在发货成功后发送MQ消息到队列,然后去消费mq消息,发送短信,但在一些情况下是不能进行转换的。 很多业务场景需要我们某一特定的时刻去做某件任务,定时任务解决的就是这种业务场景。一般来说,系统可以使用消息传递代替部分定时任务,两者有很多相似之处,可以相互替换场景。如,上面发货成功发短信通知客户的业务场景,我们可以在发货成功后发送MQ消息到队列,然后去消费mq消息,发送短信,但在一些情况下是不能进行转换的。
- 最近我搭建了一个基于Spring Boot的maven分布式项目框架,主要是用于后面的Spring Cloud微服务项目。我把它抽象出来,分享给大家。0. 项目介绍在微服务架构中,传统的 maven 项目已经无法满足,开始走向分布式架构,本项目主要搭建一个空的 maven 分布式架构,可以运用到实际项目中进行扩展。这里搭建的是基于 maven 的分布式工程,因为在一个项目中,多个微服务是属于... 最近我搭建了一个基于Spring Boot的maven分布式项目框架,主要是用于后面的Spring Cloud微服务项目。我把它抽象出来,分享给大家。0. 项目介绍在微服务架构中,传统的 maven 项目已经无法满足,开始走向分布式架构,本项目主要搭建一个空的 maven 分布式架构,可以运用到实际项目中进行扩展。这里搭建的是基于 maven 的分布式工程,因为在一个项目中,多个微服务是属于...
- 本文分析了各种生产分布式ID的算法的原理,以及他们的适用场景,相信你已经能为自己的项目选择好一个合适的分布式ID生成策略了。没有一个策略是完美的,只有适合自己的才是最好的。 本文分析了各种生产分布式ID的算法的原理,以及他们的适用场景,相信你已经能为自己的项目选择好一个合适的分布式ID生成策略了。没有一个策略是完美的,只有适合自己的才是最好的。
上滑加载中
推荐直播
热门标签