- 博客(129)
- 资源 (5)
- 收藏
- 关注
转载 使用篇-sentinel的入门使用
简介Sentinel 可以简单的分为 Sentinel 核心库和 Dashboard。核心库不依赖 Dashboard,但是结合 Dashboard 可以取得最好的效果。这篇文章主要介绍 Sentinel 核心库的使用。如果希望有一个最快最直接的了解,可以参考新手指南来获取一个最直观的感受。我们说的资源,可以是任何东西,服务,服务里的方法,甚至是一段代码。使用 Sentinel 来进行资源保护,主要分为几个步骤: 定义资源 定义规则 检验规则是否生效 先把可能需..
2021-04-09 10:31:55 578
原创 线上故障 | 不良编码习惯引发的后果
事件反馈运维反馈有一台机器CPU异常, 登陆grafana查看,发现统一登录服务出现异常场景,异常如下:监控有一段时间出现空白,说明服务假死,直接没有响应,因此监控数据丢失,后续逐渐恢复,CPU飙升。通过查看接口耗时情况,发现有一个接口的耗时达到3.3215分钟, 这个耗时就很恐怖了,故障的解决方案:线上故障解决...
2020-12-11 09:22:35 322
原创 消息队列 | RocketMq某些队列阻塞不消费
公司小伙伴反馈自己负责的RocketMq集群忽然有两个队列不消费了,消息堆积达到了1万多条,这个肯定不正常。以下是当时的消费组的实际消费情况从上面的图中可以看出来,有两个队列严重阻塞了,好久没有上报过offset了。通过以往自己的经验,一般来说,RocketMq部分队列消费失败,主要有以下三个原因消费者的集群数量有问题,比如之前笔者有写过一篇文章,也是介绍RocketMq部分队列不能正常消费的,有兴趣的可以看看RocketMq 部分队列不能消费问题排查消费者的consumer group乱用,
2020-12-03 11:55:22 7134 1
原创 线上故障 | 一条 SQL引发的血案
欢迎关注公众号【sharedCode】致力于主流中间件的源码分析, 可以直接与我联系事故现场202-11-19 系统接收到大量的超时告警, 同时业务群里面也有很多客户反馈服务不可用。开始排查首先上grafana上面查看整体的服务状态,从图中可以看出一点问题来,CPU几乎没有波动, tomcat线程数急剧上升, 系统的ops急剧下降。 这种是比较典型的资源阻塞类问题,为了印证这个想法,我们再看下当时的系统的GC情况从上面的GC情况下,我们可以看出来,GC还是比较平稳的,整体的停顿市场也.
2020-11-23 10:02:35 5318 19
原创 RocketMq系列之消息重试及死信队列(十)
推荐关注公众号: sharedCode, 在这里可以直接联系我哦。前言上文中我们介绍的客户端普通消息和顺序消息的原理,在消息发送失败的时候会有一个重试的过程,接下来我们来看下消息重试的源码是什么样子的,以及重试到了最后是在什么情况下进入死信队列的sendMessageBackpublic void sendMessageBack(MessageExt msg, int delayLevel, final String brokerName) throws RemotingExce.
2020-11-21 09:38:13 2221 2
原创 spring事物失效的9大原因, 吊打面试官
欢迎关注我的个人网站:https://www.shared-code.com/添加链接描述1.spring事物实现方式及原理Spring 事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring 是无法提供事务功能的。真正的数据库层的事务提交和回滚是在binlog提交之后进行提交的 通过 redo log 来重做, undo log来回滚。一般我们在程序里面使用的都是在方法上面加@Transactional 注解,这种属于声明式事物。声明式事务本质是通过 AOP 功能,对方法前后进行
2020-11-19 10:31:10 370 3
原创 RocketMQ系列之Consumer-普通消息(九)
欢迎移步到我的个人博客网站查阅该文章RocketMQ系列之Consumer-普通消息(九)
2020-11-17 20:10:19 998 1
原创 RocketMQ系列之push(推)消息模式(六)
欢迎移步到我的个人博客上阅读该文章,谢谢!RocketMQ系列之push(推)消息模式(六)
2020-06-06 13:33:24 1525
原创 多线程篇-TransmittableThreadLocal解决池化复用线程的传值问题
文章首发在我的个人博客网站,本篇文章的地址在下面,欢迎!多线程篇-TransmittableThreadLocal解决池化复用线程的传值问题
2020-04-24 11:52:33 1369
原创 阿里java开发手册-泰山版发布
欢迎移驾我的个人博客网站: https://shared-code.com《Java开发手册》始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范。手册涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约七大维度。此次泰山版发布,将带来三大亮点:新增5条日期时间规约;新增2条表别名sql规约;新增统一错误码规约。下载方式:关注公众...
2020-04-22 11:57:46 1428
原创 RocketMQ系列之Consumer启动(五)
官方示例本文的示例是通过push的方式创建的消费者,push和pull的消费者在启动的流程上源码是差不多的public static void main(String[] args) throws InterruptedException, MQClientException { // 创建一个消费者对象 DefaultMQPushConsumer consumer =...
2020-03-20 15:45:29 290 2
原创 RocketMq系列之Producer顺序消息发送源码分析(四)
有序消息消息有序指的是可以按照消息的发送顺序来消费。RocketMQ可以严格的保证消息有序。但这个顺序,不是全局顺序,只是分区(queue)顺序。顺序消息生产者public static void main(String[] args) throws UnsupportedEncodingException { try { DefaultMQProd...
2020-01-06 12:09:20 193
原创 RocketMq系列之Producer顺序消息发送源码分析(四)
有序消息消息有序指的是可以按照消息的发送顺序来消费。RocketMQ可以严格的保证消息有序。但这个顺序,不是全局顺序,只是分区(queue)顺序。顺序消息生产者public static void main(String[] args) throws UnsupportedEncodingException { try { DefaultMQProd...
2019-10-10 14:23:14 430
原创 RocketMq系列之Producer普通消息发送(三)
普通消息发送下面是普通消息发送的示例public static void main(String[] args) throws MQClientException, InterruptedException { DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name"...
2019-10-08 17:48:30 367
原创 RocketMq系列之topic路由信息更新(二)
前言本文的主要是为了介绍,在生产者或者消费者启动的时候,需要实例化MqClientInstance,作为负责和borker通信的实例, 在这个里面初始化了很多定时任务,心跳,nameServer地址更新, topic路由信息更新源码入口org.apache.rocketmq.client.impl.factory.MQClientInstancepublic void start() th...
2019-09-29 21:36:29 1084
原创 RocketMq系列之Producer启动源码分析(一)
前言笔者写的rokcetMq的源码分析,都是基于4.5.1版本。源码入口下面是一个很简单的服务端启动的两行源码MQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");producer.start();启动源码的逻辑主要集中在start方法里面@Override public...
2019-09-21 11:54:59 326 2
原创 RocketMQ4.0.0单机版配置(试水篇)
前言时隔一年多,博客停更了一年多,这一年多也一直忙着做业务,天天跟产品,测试及其他部门扯皮,每天奔波于各个部门之间,处理一些团队上的事情, 回首再看看,忽然发现技术其实拉下了很多,希望后续可以继续坚持吧。一、安装与配置下载官网:http://rocketmq.apache.org/如:rocketmq-all-4.0.0-incubating-bin-release.zip解压文件之后...
2019-09-20 16:35:15 394
原创 spingboot整合sharding-sphere4.0.0.RC2分库分表
pom文件<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <version>4.0.0-RC2</versio...
2019-09-19 14:38:50 4238 1
原创 sleuth+zipkin+kafka+logstash链路追踪二次开发方案
系统架构方案方案一架构说明:1.应用接入zipkin客户端,将span的信息直接推送给kafka2.zipkin-server定kafka中订阅主体为sleuth的消息,将span中的信息推送到elasticsearch中3.zipkin-ui项目负责从elasticsearch读取信息,分析信息,呈现图标给用户。方案二架构说明:1.接入链路追踪的客户端,仅需对本地日志输出进行...
2019-07-01 14:31:27 2933 3
原创 ThreadLocalRandom随机数源码分析
ThreadLocalRandom介绍ThreadLocalRandom是JDK1.7以后提供出来的一个随机数生成工具类,性能比传统的Math.random()更高。性能比较ThreadLocalRandom和Math.random()的性能比较,测试步骤如下:public class Test { public static void main(String[] args) t...
2019-05-08 18:47:22 440
转载 一起了解一下微服务
版权声明:尊重博主原创文章,转载请注明出处 https://blog.csdn.net/eson_15/article/details/83651732 通常而言,微服务架构是一种架构模式或者说一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务之间互相协调、互相配合,为用户提供最终的价值。服务之间采用轻量级的通信机...
2018-11-04 15:07:48 1417
原创 dubbo系列之内核SPI-Protocol扩展类生成(九)
前文回顾上一篇文章我们讲到,扩展实现类的类上如果写上了@Adaptive注解,则可以直接取得扩展实现类对象,其他的需要通过字节码生成技术来生成对象,接着上文的代码讲解,调用createAdaptiveExtensionClass方法生成扩展实现类对象createAdaptiveExtensionClassprivate Class&amp;lt;?&amp;gt; createAdaptiveExtensi...
2018-11-01 11:12:28 778
原创 dubbo系列之内核SPI-资源解析&依赖注入(八)
前文回顾上文中,我们了解了dubbo的SPI机制,针对Protocol的SPI实现讲解了一半,讲到了Protocol生成好了ExtensionLoader以及其内部的ExtensionFactory , 本文继续讲解接下来的代码,建议没看过上一篇文章的朋友可以先去看下一,直接看本文会比较懵逼 。dubbo系列之内核SPI拓展机制初识(七)###源码入口com.alibaba.dubbo.c...
2018-10-26 10:12:35 1066
原创 dubbo系列之内核SPI拓展机制初识(七)
前言dubbo为了适应不同的注册中心,底层通讯协议等功能的扩展,采用SPI的思想,即Service Provider Interface , 也就是我们定义了服务接口标砖,让服务商去实现。 jdk通过ServiceLoader类实现了SPI机制的服务查找功能,有兴趣的可以去网上搜一下jdk的SPI思想, , 接下来我们会讲解一下dubbo是如何实现SPI机制,SPI机制一般来说,会提供一个接...
2018-10-24 10:22:32 460
原创 dubbo系列之ServiceBean介绍(六)
前言前面几篇文章中,我们了解了spring是如何解析@Service,@Reference注解的,今天主要讲的是服务暴露者的一个非常重要的类,ServiceBean , 每个暴露出去的服务都会生成一个ServiceBean.ServiceBean该类的继承实现关系如下public class ServiceBean&lt;T&gt; extends ServiceConfig&lt;T&...
2018-10-22 10:11:51 2884 2
原创 dubbo系列之@Reference注解解析原理(五)
前言上文中我们讲解了@Service注解的解析原理,了解到Dubbo默认支持两种方式进行解析,一种是通过springboot 自动配置来做的,另外一种是通过DubboComponentScan 注解来解析的,本文继续也是以DubboComponentScan 的方式来讲解的。源码入口com.alibaba.dubbo.config.spring.context.annotation.D...
2018-10-18 10:19:18 36119
原创 dubbo系列之@Service注解解析原理(四)
前言前面几篇文章,讲的是调试环境搭建,配置解析读取,本文讲的是dubbo如何解析@service注解的,了解这些东西对于真正使用dubbo来说,没有直接的东西,但是这个是我后面要写的dubbo核心功能源码解析的前提,前后连贯,这样才能了解的更加清晰一点。解析入口@service注解解析入口有两个地方,二者是二选一的第一种DubboAutoConfiguration 这个自动配置类中@...
2018-10-16 10:23:01 17665 1
原创 dubbo系列之spring boot核心配置读取(三)
版本说明springboot starter : 0.1.1dubbo版本: 2.6.2自动配置类@Configuration@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true, havingValue = "true")@ConditionalOnClass(Abs...
2018-10-15 10:15:46 7252
原创 dubbo系列之xml解析原理NamespaceHandler(二)
前言上一节中我们基于springboot搭建了dubbo的基本用例,能够使用dubbo的基本功能,在dubbo重新开源之前,大部分人都是通过spring的xml文件进行配置的,基于这个背景,有必要讲一下dubbo是怎么解析xml文件,生成代理对象的。版本说明springboot starter : 0.1.1dubbo版本: 2.6.2DubboNamespaceHandler这个是d...
2018-10-11 10:50:02 1536
原创 dubbo系列之springboot 调试环境搭建(一)
前言本文是dubbo系列的第一篇,在正式讲解dubbo的源码之前,需要搭建一套dubbo的样例,用于我们阅读源码以及理解dubbo的核心功能,本文是以springboot为基础的,其他的通过xml配置的太麻烦了。版本说明springboot starter : 0.1.1dubbo版本: 2.6.2新建项目新建项目dubbo-provider, dubbo-service,dubbo-...
2018-10-10 10:19:47 1856
sharding-jdbc按月分表样例
2018-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人