Seata 0.8.1~1.0.0客户端启动过程分析
1. 加载registry配置
transactionServiceGroup默认为${spring.application.name}-fescar-service-group 可以通过spring.cloud.alibaba.seata.txServiceGroup指定
本文分析的是早期 Seata 版本,类名和启动流程可能已在新版本中调整。阅读时应结合对应标签源码,不要把旧版内部实现当成稳定 API。
transactionServiceGroup默认为${spring.application.name}-fescar-service-group 可以通过spring.cloud.alibaba.seata.txServiceGroup指定
本文分析的是早期 Seata 版本,类名和启动流程可能已在新版本中调整。阅读时应结合对应标签源码,不要把旧版内部实现当成稳定 API。
加载:查找并加载类的二进制
连接
JVM 知识应与具体 Java 版本和收集器实现对应。学习时可以围绕类如何加载、对象如何分配、方法如何执行、垃圾如何回收四条主线建立整体结构。
了解基本数据结构在java中很是重要,今天在这里我们来常用的List接口,以及不同的实现。
ArrayList
LinkedList
Vector
CopyOnWriteArrayList
etc...
环境:JDK1.8
阅读 List 源码应围绕随机访问、插入删除、迭代和并发修改展开。不同实现没有绝对优劣,选择时需要结合访问模式、数据规模和线程安全要求。
nacos 1.0.0-RC 伪集群部署 0. 准备机器 Nacos 同时承载注册中心和配置中心,集群故障会影响大量服务。部署时要避免节点共享同一故障域,并验证数据库、网络、鉴权和客户端重连行为。
服务端ip:192.168.1.101
下载canal 到/opt/softwares
wget https://github.com/alibaba/canal/releases/download/canal-1.0.26-preview-2/canal.deployer-1.0.26-SNAPSHOT.tar.gz
Canal 通过模拟 MySQL 从库协议读取 binlog,适合缓存更新、搜索索引同步和异构数据复制。搭建时需要同时检查 MySQL 日志格式、复制权限、位点和下游消费幂等性。
此问题的案发现场是测试环境,为了减少不必要的类,我们这里用一个简单的例子进行模拟。
lombok version:1.16.14
jdk version:1.8
上代码: Lombok 同时依赖构建工具的注解处理和 IDE 支持,IDE 能识别并不代表命令行一定能编译。排查时应以 Maven 或 Gradle 的干净构建结果为准。
java agent介绍
java agent是jvm插件或者叫做代理,她是运行在main方法之前,她内定的方法名称叫premain。
Java Agent 可以在类加载前后进行字节码增强,是监控、诊断和 APM 的基础能力。开发时要避免递归转换、类加载死锁和过高的运行时开销。
本文将告诉你如何使用spring的任务调度。主要使用@Scheduled注解 默认定时任务配置可能由单线程串行执行,一个长任务会阻塞后续任务。生产环境还要处理异常、超时、重复执行、错过执行和多实例竞争。
上一章讲解了rocketmq的消息发送与接收,那么这篇文章讲解如何安装rocketmq
上传apache-rocketmq.tar.gz至/opt目录
http://download.csdn.net/download/xxzblog/10124706
机器ip:192.168.1.101
消息队列集群不能只验证进程存活,还应测试生产、消费、Broker 故障、磁盘压力和消费积压。部署拓扑与复制能力取决于具体 RocketMQ 版本。
本文讲解前不久进入apache顶级项目的RocketMQ,几个简单的例子讲解如何搭建RocketMQ,以及发送消息,接受消息。
理解 RocketMQ 应先掌握路由发现与消息存储:生产者从 NameServer 获取路由后向 Broker 发送,消费者再按消费组和队列拉取或接收消息。