能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
掘金平台-优秀创作者 专注Java后端、中间件、架构方向
RocketMQ结合实际场景顺序消费,它是如何保证顺序消费的?
动态修改RocketMQ线程池,那我们如何才能够通过管理页面对不同消费者组的线程池进行管理自由的随着业务波动进行平滑修改,降低线程池参数修改的成本。 另外,从功能性以及健壮性而言还有许多值得我们思考的地方,科宇通过查看线程池运行时指标、负载报警、配置日志管理来提高我们对线程池的管理。
RocketMQ 官方提供的基本最佳实践第一条,分享自己的一点心得,有问题欢迎大家指出~ > 一个应用尽可能用一个Topic,而消息子类型则可以用tags来标识。tags可以由应用自由设置,只有生产者在发送消息设置了tags,消费方在订阅消息时才可以利用tags通过broker做消息过滤:message.setTags("TagA")。
IO是我们日常开发中经常使用到的技能,但是一不小心我们就会踩坑,今天梳理了我在工作中遇到的一些问题
统计数据的需求在我们日常开发中是非常容易遇到了,MySQL也支持多种的计算的函数,
在平时的业务开发中,空指针是我们经常遇到的问题,
在当下的分布式服务中,消息队列中间件是一个解决服务之间耦合的利器,今天我们来瞧一瞧开源的RocketMQ消息中间件,他的消费端是如何启动的,以及在使用他的过程中有哪些配置。
在当下的分布式服务中,消息队列中间件是一个解决服务之间耦合的利器,今天我们来瞧一瞧开源的RocketMQ消息中间件,他的消费端是如何启动的,以及在使用他的过程中有哪些配置。
最近更新了mac的系统之后,因为无法连接到远程仓库,导致代码拉不下来了,在这里给大家提供一下我的解决方法,希望能给大家一些帮助。
今天主要来聊一聊如何优雅的停下线程
今天主要梳理一下API接口设计需要注意的问题
最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。
最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。
最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。
最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。
最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。
在工作中我们经常需要考虑对资源的使用,避免资源被过度使用或者资源没有被利用到而造成的问题,那我们该如何去限制访问某些资源的线程数目,从而对完成资源的保护。
在日常开发中,如果你是一名后端开发人员,想必应该非常清楚在应用系统运行期间,打印日志有多么重要。
前分享一一些关于RocketMQ的源码文章,认识到RocketMQ里面真的非常丰富
今天我们主要来说一说List操作在实际使用中有哪些坑,以及面对这些坑的时候我们要怎么解决。
这段时间在写业务代码的时候用到了Spring容器关闭执行销毁方法来关闭正在执行中的业务。
前段时间使用了CountDownLatch来做并发流程的控制,在生产上碰到了一些问题,最终问题是解决了,但是那篇文章的评论大家让我用CompletableFuture来试一试,改造完之后,发现CompletableFuture这东西真强大,有种相见恨晚的感觉。
我们知道用来控制并发流程的同步工具,主要的作用是为了等待多个线程同时完成任务后,在进行主线程任务。
今天的这一篇主要就来说一下,我们工作中常用的一些命令,我们可以利用这些命令来进行实时情况的查看,在遇到问题的时候能够快速排查。
前在Docker下安装了RocketMQ以及他的管理平台,但是管理平台在运维的时候只能满足我们部分的需求,所以为了在集群运维时能够的得心应手,研究了下mqadmin的使用,没想到一开始就遇到了报错,在这里和大家分享下解决的方法。
之前,我们在开发的时候总是惯性思维的以某张业务表的维度进行三层结构的功能开发,没有去思考他们功能模块间的关系,只是为了完成目标而进行开发。
最近在看程序员向架构师转型这本书,同时也做了思维导图的笔记,确实也是有一些收获,在为做好一个架构师而做准备,通过学习架构设计的原则到设计架构的过程来对架构师的工作有更大而全的认识。
软件行业的人才结构是金字塔,我们的目标就是向塔尖走去,从程序员到技术经理或者程序员到架构 师,都是我们职业路上所追求的。
通常我们都会利用并行来优化性能,但是对于串行化的业务,可能需要按顺序执行,那我们怎么才能处理呢?
今天主要为大家提供一条龙服务,从Mongo DB的简介到实战使用,使我们面对技术选型的时候可以得心应手。
今天主要为大家提供一条龙服务,从Mongo DB的简介到实战使用,使我们面对技术选型的时候可以得心应手。
今天我们就开始学习下默认消息发送流程,学习他的实现思路,也帮助我们工作中,遇到了问题不会手足无措。
上一篇文章,主要介绍了RocketMQ消息发送-请求与响应,了解了消息发送的请求参数和响应结果,今天我们主要来学习默认消息发送者的源码,看看消息发送主要是做了那哪些事情。
通过前面的学习,知道了线程的利与弊,正确的使用多线程,会尽最大的可能去压榨我们系统的资源,从而提高效率,但是如果不合理使用线程,可能会造成副作用,给系统带来更大的压力,进一步的思考,如何才能防止多线程操作一个资源?
每次业务功能中总有按操作时间排序,或者按其他字段排序的需求,一想到排序我们就会想到MySQL中的ORDER BY,那在使用的过程中,我们是否会存在不合理的使用导致查询的速度下降呢?
前面的文章介绍了,RocketMQ的搭建,以及RocketMQ的NameServer,接下来我们配合着官方提供的demo,进行实际的消息发送学习,主要学习发送方式、发送参数的含义,以及发送中的一些问题
最近在工作中遇到了需求,主要是为了完成对Binlog日志的监听和消费,做了一些数据同步的技术选型,最后选择了Canal。
那什么时候就要开始考虑搭建主备架构呢, 一方面是随着业务增长,读写请求已经到达了一定的瓶颈时,我们需要考虑,另一方面为了保证数据的完整性,以保证主宕机的时候,可以快速切换。
接下来主要从五个方面学习NameServer,分别是架构设计、启动流程、路由注册、故障删除、路由发现。
在学习消息中间件-RocketMQ之前,先来准备一下学习环境的搭建,下面分享一下Docker环境中安装RocketMQ和RocketMQ-Console。
当系统出现大量用户请求时,我们主要从负载均衡、流量控制、故障隔离三个角度去思考如何提高系统高可用,以避免处理能力的上线,导致系统崩溃。
知其然知其所以然,学习分布式的过程中,对于理论知识是必不可少的,主要是分布式互斥、分布式选举、分布式共识、分布式事务、分布式锁。
什么是分布式数据库? 他在为系统提高可用性优点的同时,也带来了哪些缺点?
分布式通信主要内容 远程调用:一个服务调用另外一个服务 发布订阅:生产者发布消息到消息中心,消费者从消息中心获取消息 消息队列:消息队列的思想就是基于队列实现的,按照FIFO顺序消费信息
在学习分布式存储之前,那我们需要对CAP理论、原则、数据分布方法有一定的认识。
通过学习《分布式技术原理与算法解析》课程,对分布式理论有一个整体的认识,利用思维导图将内容整理出来。
为什么要用建造者模式?在我们看来他和工厂模式的目的是一样的,就是为了获取对象。
在业务开发中,我们最经常使用到的判断就是if...else,只要涉及到多种策略的实现方式,我们脑海中就会使用这个判断。
在业务需求研发工作中,根据产品来进行设计表是必须的,但是我们可能对字段类型常常认识模拟两可,知道时间类型使用TIMESTAMP和DATETIME,但是却不知道TIMESTAMP的上限快到了,到时候需要涉及表字段的修改,下面通过梳理一些字段类型的坑,让我们在涉及表中,更清楚知道为什么要用这个字段类型,他的好处是什么。
无论何时,只要讨论到多个数据之间同一时间修改数据的问题,都要讨论如何控制并发。