- 博客(36)
- 收藏
- 关注
原创 ShardingSphere-JDBC原理及分库分表实战
目录简介特点架构实现原理主要功能点主要核心概念实战集成ShardingSphere-JDBC自定义分片策略分库不分表分表不分库分表分库主从及读写分离与Mycat对比总结简介Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用
2021-03-31 18:04:27
1431
2
原创 分布式主键ID
目录分布式ID满足条件目前主流生成方式UUID实现方式基于数据库自增ID实现方式基于数据库集群模式实现方式基于数据库的号段模式实现方式基于Redis模式实现方式基于雪花算法(Snowflake)模式实现方式百度(uid-generator)实现方式美团(Leaf)号段模式snowflake算法模式实现方式滴滴(Tinyid)接入方式总结分布式ID一般在业务数据不大时,如mysql在100W以下时,单库单表
2021-03-30 18:12:24
1174
原创 ControllerAdvice全局异常运用
目录注解@RestControllerAdvice@ControllerAdvice说明全局处理实践自定义异常Controller层处理思考注解@RestControllerAdviceRestControllerAdvice = ControllerAdvice + ResponseBody 支持json返回@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented
2021-03-20 17:15:13
288
原创 工作流之网关
目录排他网关-ExclusiveGateway并行网关-ParallelGeteway包含网关-InclusiveGateway事件网关-EventGateway排他网关-ExclusiveGateway排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用来在流程中实现决策。 当流程执行到这个网关,所有分支都会判断条件是否为 true,如果为 true 则执行该分支。注意:经过排他网关必须要有一条且只有一条分支走 当排他网关中有多个条件同时满足,则走id最小的
2021-03-08 18:20:24
892
原创 activiti工作流架构介绍及集成实现
目录介绍架构原理整体结构流程引擎逻辑描述架构组件说明表结构说明工作机制实现过程设计器集成实践官网:https://www.activiti.org/documentationgit:https://github.com/Activiti/Activiti介绍Activiti项目是基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,以JAVA编程实现的工作流引擎。BPMN(Business Process Mo
2021-03-06 21:32:48
1177
原创 Java内存溢出OOM之dump分析
目录内存泄露内存溢出1.Java堆内存异常报错方式原因2.Java栈内存异常报错方式原因3.方法区内存异常报错方式原因解决思路生成dump文件三种方式dump生成jvisualvm本地方式1.启动jvisualvm2.应用程序启动3.从jvisualvm控制台,进入监控应用程序面板4.模拟OOM线上模式1.查找到进程相关:top -c2.查看堆gc每秒相关信息3.查找栈相当问题4.有必要时,使用命令生成jmap文
2021-03-06 20:51:25
16953
2
原创 工作流之监听器介绍及配置实现
类型流程监听器 执行监听器 事件监听器(全局监听器) 连线监听器 执行监听器 环节监听器 执行监听器 任务监听器(只有用户活动类型有) 执行监听器用途动态分配节点处理人 通过前一个节点设置的变量,在运行到下一个节点时设置对应的处理人; 当流程运行到某个节点时,发送邮件或短信给待办用户; 任务流转到当前的节点的时候,需要监控当前任务节点的一些信息或者其他的业务信息,统计流程处理时长,是否超时等; 业务层面数据处理。配置执行监听器则监听流程的所有节点和连线。主
2021-03-04 21:03:25
3625
1
原创 flowable工作流架构介绍及集成实现
目录发展历程架构结构表结构命名规则说明表说明在线设计器设计方案方案一方案二功能实践官网:https://flowable.com/open-source/中文文档:https://tkjohn.github.io/flowable-userguide/Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历
2021-03-04 20:56:45
4229
3
原创 ElasticSearch架构介绍及原理解析
目录简介架构原理基本概念与MySQL的对比分片机制document路由原理集群发现机制shard&replica规则避免脑裂负载均衡相关配置容错过程与选举机制扩容机制容错机制Lucene结构原理Lucene索引实现DocValues关于ES索引与检索分片运行原理解析倒排索引说明检索倒排索引分词器Analyzer建立索引和类型分片内文档写入流程场景多个分片的文档写入场景确定文档存储位置同步
2021-03-02 17:10:54
5170
1
原创 Kinana介绍及实践
目录概况工作状态检查索引接入-Management索引文档查看-Discover索引数据可视化-Visualize&DashBoardELK监控大盘-MonitoringES日志-logs概况Kibana是一个开源的数据分析与可视化设计平台组件。可与elasticsearch组合, 高效对es中索引数据进行分析和查询,并可进行图标、表格和地图的形式可视化数据展示。工作状态检查启动后,通过ip:port/status查看Kibana工作状态。直接访
2021-03-02 16:58:03
2293
原创 Logstash原理解析及实践
目录Logstash概念Logstash工作过程Logstash简单实践Logstash配置语法数据类型条件判断Logstash插件Input模块标准输入File插件Http插件Redis插件Filter模块Date插件Grok插件Dissect插件Mutate插件Json插件Geoip插件Output模块标准输出redis插件elasticsearch插件Logstash配置实例FlumeFlume的外
2021-03-02 16:53:37
1920
原创 filebeat原理解析及配置实践
目录一、filebeat概述1.1 filebeat是什么1.2 filebeat和beats的关系1.3 filebeat和logstash的关系二、filebeat结构原理2.1 filebeat的构成2.1.1 采集器Harvester2.1.2 查找器Prospector2.2 filebeat如何保存文件的状态2.3 filebeat何如保证至少一次数据消费2.4 Filebeat如何保证在日志文件被切割(或滚动rolling)时依然正确读取文件?三
2021-03-02 16:10:28
2398
原创 xxl-job原理及介绍
目录概况源码目录介绍数据库配置一、 整体设计1 架构设计1.1 设计思想1.2 系统组成1.3 架构图2 调度模块剖析2.1 quartz的不足2.2 自研调度模块2.3 调度中心HA(集群)2.4 调度线程池2.5 并行调度2.6 过期处理策略2.7 日志回调服务2.8 任务HA(Failover)2.9 调度日志2.10 任务依赖2.11 全异步化 & 轻量级2.12 均衡调度3 任务 “运行模式” 剖析
2021-02-18 17:12:33
8464
原创 Docker+jenkins+maven自动化部署
目录概况基础流程实践概况最简单方案,最少一台vm就搞定!当然也可用流水线部署多个应用。基础vm上部署docker vm上部署jenkins(镜像版方便) jenkins上配置jdk、git、maven、ssh 注册dockerHub用户:https://hub.docker.com/ 制作基础镜像 基于镜像制作应用Dockerfile流程实践1.gitHub提交代码:https://github.com/huhua1990/jenkins-t.
2021-02-08 15:45:51
354
原创 Docker-Compose安装使用及配置实践
目录概况简介安装常用命令docker-composedocker-compose up 创建和启动容器docker-compose down 停止和删除容器、网络、卷、镜像docker-compose ps 列出容器docker-compose start 启动服务docker-compose stop 停止服务docker-compose restart 重启服务docker-compose logsdocker-compose builddocke
2021-02-08 10:57:17
797
原创 Docker原理分析及Dockfile实践
目录概况用途架构原理NamespaceCgroupUnion FS总体架构Docker 组件Docker 存储驱动Docker 数据共享与持久化Docker 网络模式Docker 状态转化制作基础镜像DockerHub常用docker命令Docker与虚拟机区别概况Docker 官网:https://www.docker.comGithub Docker 源码:https://github.com/docker/docker-c
2021-02-07 14:24:38
829
原创 Zipkin原理及实践
概况Zipkin是Twitter开源而来。Zipkin官网:https://zipkin.io/pages/architecture.html基本思想:在服务调用的请求和响应中加入trace ID,标明上下游请求的关系。利用这些信息,可视化地分析服务调用链路和服务间的依赖关系,保存下来进行展示。整体架构组件说明• Instrumented client和Instrumented server需要集成在分布式系统的具体服务中,采集跟踪信息,调用Transport,把跟踪信息发送给.
2021-02-05 17:26:39
1244
1
原创 SkyWalking原理及实践
目录概况应用场景架构分析目录结构部署应用服务端配置部署客户端部署配置本地idea配置linux接入使用look Strong appearance!概况国产开源,Apache孵化器产品。支持非侵入式埋点,是一款基于分布式跟踪的应用程序性能监控系统。官网:https://skywalking.apache.org/官方文档:https://github.com/apache/skywalking/tree/master/docs.
2021-02-04 18:26:31
1990
2
原创 分布式链路追踪技术
目录概况产生背景APMOpenTracing主流组件概况分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪产生背景随着微服务架构和容器技术的兴起,一个看似简单的应用,后台可能有几十个甚至几百个服务在支撑;一个前端的请求可能需要多次的服务调用最后才能完成;当请求变慢或者不可用时,我们无法得知是哪个后台服务引起的,这时就需要解决如何快速定位服务故障点,分布式跟踪系统就能很好的解决这样的问题,帮助我们快速发现错误以及监控分析每
2021-02-04 18:17:29
497
1
原创 Eureka + Ribbon源码解析
目录概况RibbonEurekaAutoConfiguration类EurekaRibbonClientConfiguration类DiscoveryEnabledNIWSServerList-ribbon返回serviceList列表实现概况版本2.1.2.RELEASE从spring-cloud-netflix-erurka-client:2.1.2.RELEASSE的META-INF/spring-factories中发现RibbonEurekaAutoConfigurat
2021-01-28 18:31:31
520
原创 Eureka Client客户端源码解析
目录概况@EnableEurekaClientEnableDiscoveryClientImportSelector类SpringFactoriesLoader类spring.factoriesAutoServiceRegistrationConfiguration类EurekaClientAutoConfiguration类-Eureka相关bean实例化CloudEurekaClient类DiscoveryClient类-初始化instance&任务执行器
2021-01-27 15:03:57
954
原创 Eureka Server服务端源码解析
目录概况@EnableEurekaServer-启动入口EurekaServerMarkerConfiguration类spring.factoriesEurekaServerAutoConfiguration类-所有bean实例化EurekaServerInitializerConfiguration类-eureka初始化&事件publishEurekaServerBootstrap类-eureka env & context 初始化PeerAwareIns
2021-01-26 15:51:10
456
原创 AOP动态代理源码解析-EnableAspectJAutoProxy
目录概述AOPJDK动态代理Cglib动态代理相关术语SpringBoot配置动态代理@EnableAspectJAutoProxy-初始化AspectJAutoProxyRegistrar类AopConfigUtils类AnnotationAwareAspectJAutoProxyCreator结构整体原理注册流程(Spring加载bean流程)Spring创建AOP代理解析代理调用逻辑实现解析MethodBeforeAdviceIntercep
2021-01-22 14:07:38
763
原创 Gateway源码解析
目录概况pom解析spring.factories解析GatewayClassPathWarningAutoConfiguration类GatewayAutoConfiguration类GatewayHystrixCircuitBreakerAutoConfiguration类GatewayLoadBalancerClientAutoConfiguration类GatewayNoLoadBalancerClientAutoConfiguration类GatewayMetr
2021-01-21 19:42:05
5117
原创 Zuul源码解析
目录版本说明入口@EnableZuulProxyZuulProxyMarkerConfiguration类spring.factoriesZuulServerAutoConfiguration类ZuulProxyAutoConfiguration类ZuulFilterInitializer类FilterRegistry类-Filters存储FilterLoader类-Filters封装ZuulServlet类-路由控制器FilterProcessor类-路由实现
2021-01-20 19:32:43
727
原创 Seata
目录概况发展历程架构分析一、分布式事务产生的背景1.1 分布式架构演进之 - 数据库的水平拆分1.2 分布式架构演进之 - 业务服务化拆分二、分布式事务理论基础2.1 两阶段提交协议2.2 TCC2.3 Saga三、Seata 及其三种模式详解3.1 分布式事务 Seata 介绍3.2 分布式事务 Seata 产品模块3.3 分布式事务 Seata 解决方案集成实战方案对比概况Spring Cloud Alibaba Git:https
2021-01-20 18:53:31
1731
原创 Sentinel
目录概况特性规则控制台面板集成方式Spring Cloud Feign集成RestTemplate集成Spring Cloud Zuul集成配置与Hystix对比概况官方文档:https://github.com/alibaba/Sentinel/wiki/Sentinel Git:https://github.com/alibaba/SentinelSentinel,哨兵,为微服务提供流量控制、熔断降级、系统负载保护等功能。目前Hystxi进入维护期
2021-01-20 12:58:12
324
原创 Nacos
概况官方文档:https://nacos.io/en-us/Spring Cloud Alibaba Git:https://github.com/alibaba/spring-cloud-alibabaGit:https://github.com/alibaba/nacos服务端可以在官网下载安装客户端pom:<dependency> <groupId>com.alibaba.cloud</groupId> <artifa
2021-01-19 18:44:00
1385
2
原创 OpenFeign
概况Git:https://github.com/spring-cloud/spring-cloud-openfeignfeign:https://github.com/OpenFeign/feignFeign,一个http请求调用的轻量级框架,通过Java接口注解的方式调用http请求。核心注解:@EnableFeignClients(basePackages={"xxx.service"})<dependency> <groupId>org.spri
2021-01-18 19:08:49
256
原创 Gateway
概况Git:https://github.com/spring-cloud/spring-cloud-gateway在Spring Cloud 2.0以上版本中,不再对Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 2.0之前的非Reactor模式的老版本。因些为提升网关的性能,基于WebFlux框架实现了SpringCloud Gateway组件,WebFlux框架底层使用了高性能的Reactor模式Netty通信框架。<dependency> <
2021-01-18 19:07:31
397
原创 Hystrix
概况Git:https://github.com/Netflix/Hystrix为保护服务的稳定性,作为的客户端熔断和断路器<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId></dependency>核心注解@EnableHys
2021-01-18 19:04:23
393
原创 Ribbon
概况Git:https://github.com/Netflix/ribbonRibbon为netflix开源的基本客户端的负载均衡组件,一般与feign搭配使用。内部框架Spring集成Ribbon框架:集成方式Ribbon服务配置方式。每一个服务配置都有一个Spring ApplicationContext上下文,用于加载各自服务的实例,各个客户端的配置相互独立,彼此不收影响 Feign集成模式。在使用Feign作为客户端时,最终请求会转发成 http://<服务名称
2021-01-18 19:01:19
347
原创 Eureka
目录概况内部架构工作原理自我保护机制Eureka集群源码分析CAP理论BASE理论主流注册中心对比概况Git:https://github.com/Netflix/eurekaEureka为服务注册与发现中心。pom:<dependencies> <!--eureka-server服务端 --> <dependency> <groupId>org.springframew
2021-01-18 19:00:07
273
原创 Zuul
目录概况内部架构工作原理1、过滤器机制2、过滤器生命周期源码分析应用概况Git:https://github.com/Netflix/zuul官方文档:https://docs.spring.io/spring-cloud-netflix/docs/2.2.5.RELEASE/reference/html/#router-and-filter-zuulZuul是netflix开源的一个API Gateway服务器,本质为web servlet应用,但在Spring
2021-01-18 18:57:20
258
原创 微服务专栏概况
SpringCloud版本 SpringBoot版本 Dalston 1.5.x 1.5x Edgware 1.5.x 1.5x Finchley 2.0.x 2.0x Greenwich 2.1.x 2.1x ...
2021-01-18 18:36:15
177
2
原创 xxl-job源码解析
考照v2.3.0 Release源码一、调度中心xxl-job-admin1 Scheduler实例化启动时通过XxlJobAdminConfig对XxlJobScheduler进行实例化@Override public void afterPropertiesSet() throws Exception { adminConfig = this; xxlJobScheduler = new XxlJobScheduler(); .
2021-01-18 14:33:41
765
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人