自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不积跬步无以致千里 不积小流无以成江海

Short step without a thousand miles, not small stream into the river and sea

  • 博客(36)
  • 收藏
  • 关注

原创 ShardingSphere-JDBC原理及分库分表实战

目录简介特点架构实现原理主要功能点主要核心概念实战集成ShardingSphere-JDBC自定义分片策略分库不分表分表不分库分表分库主从及读写分离与Mycat对比总结简介Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用

2021-03-31 18:04:27 1313 2

原创 分布式主键ID

目录分布式ID满足条件目前主流生成方式UUID实现方式基于数据库自增ID实现方式基于数据库集群模式实现方式基于数据库的号段模式实现方式基于Redis模式实现方式基于雪花算法(Snowflake)模式实现方式百度(uid-generator)实现方式美团(Leaf)号段模式snowflake算法模式实现方式滴滴(Tinyid)接入方式总结分布式ID一般在业务数据不大时,如mysql在100W以下时,单库单表

2021-03-30 18:12:24 1119

原创 ControllerAdvice全局异常运用

目录注解@RestControllerAdvice@ControllerAdvice说明全局处理实践自定义异常Controller层处理思考注解@RestControllerAdviceRestControllerAdvice = ControllerAdvice + ResponseBody 支持json返回@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented

2021-03-20 17:15:13 258

原创 工作流之网关

目录排他网关-ExclusiveGateway并行网关-ParallelGeteway包含网关-InclusiveGateway事件网关-EventGateway排他网关-ExclusiveGateway排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用来在流程中实现决策。 当流程执行到这个网关,所有分支都会判断条件是否为 true,如果为 true 则执行该分支。注意:经过排他网关必须要有一条且只有一条分支走 当排他网关中有多个条件同时满足,则走id最小的

2021-03-08 18:20:24 826

原创 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 1064

原创 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 15262 1

原创 工作流之监听器介绍及配置实现

类型流程监听器 执行监听器 事件监听器(全局监听器) 连线监听器 执行监听器 环节监听器 执行监听器 任务监听器(只有用户活动类型有) 执行监听器用途动态分配节点处理人 通过前一个节点设置的变量,在运行到下一个节点时设置对应的处理人; 当流程运行到某个节点时,发送邮件或短信给待办用户; 任务流转到当前的节点的时候,需要监控当前任务节点的一些信息或者其他的业务信息,统计流程处理时长,是否超时等; 业务层面数据处理。配置执行监听器则监听流程的所有节点和连线。主

2021-03-04 21:03:25 3346 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 3825 3

原创 ElasticSearch架构介绍及原理解析

目录简介架构原理基本概念与MySQL的对比分片机制document路由原理集群发现机制shard&replica规则避免脑裂负载均衡相关配置容错过程与选举机制扩容机制容错机制Lucene结构原理​Lucene索引实现DocValues关于ES索引与检索分片运行原理解析倒排索引说明检索倒排索引分词器Analyzer建立索引和类型分片内文档写入流程场景多个分片的文档写入场景确定文档存储位置同步

2021-03-02 17:10:54 5055 1

原创 Kinana介绍及实践

目录概况工作状态检查索引接入-Management索引文档查看-Discover索引数据可视化-Visualize&DashBoardELK监控大盘-MonitoringES日志-logs概况Kibana是一个开源的数据分析与可视化设计平台组件。可与elasticsearch组合, 高效对es中索引数据进行分析和查询,并可进行图标、表格和地图的形式可视化数据展示。工作状态检查启动后,通过ip:port/status查看Kibana工作状态。直接访

2021-03-02 16:58:03 2139

原创 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 1798

原创 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 2218

原创 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 8220

原创 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 325

原创 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 753

原创 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 792

原创 Zipkin原理及实践

概况Zipkin是Twitter开源而来。Zipkin官网:https://zipkin.io/pages/architecture.html基本思想:在服务调用的请求和响应中加入trace ID,标明上下游请求的关系。利用这些信息,可视化地分析服务调用链路和服务间的依赖关系,保存下来进行展示。整体架构组件说明• Instrumented client和Instrumented server需要集成在分布式系统的具体服务中,采集跟踪信息,调用Transport,把跟踪信息发送给.

2021-02-05 17:26:39 1104 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 1905 2

原创 分布式链路追踪技术

目录概况产生背景APMOpenTracing主流组件概况分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪产生背景随着微服务架构和容器技术的兴起,一个看似简单的应用,后台可能有几十个甚至几百个服务在支撑;一个前端的请求可能需要多次的服务调用最后才能完成;当请求变慢或者不可用时,我们无法得知是哪个后台服务引起的,这时就需要解决如何快速定位服务故障点,分布式跟踪系统就能很好的解决这样的问题,帮助我们快速发现错误以及监控分析每

2021-02-04 18:17:29 469 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 483

原创 Eureka Client客户端源码解析

目录概况@EnableEurekaClientEnableDiscoveryClientImportSelector类SpringFactoriesLoader类spring.factoriesAutoServiceRegistrationConfiguration类EurekaClientAutoConfiguration类-Eureka相关bean实例化CloudEurekaClient类DiscoveryClient类-初始化instance&任务执行器

2021-01-27 15:03:57 925

原创 Eureka Server服务端源码解析

目录概况@EnableEurekaServer-启动入口EurekaServerMarkerConfiguration类spring.factoriesEurekaServerAutoConfiguration类-所有bean实例化EurekaServerInitializerConfiguration类-eureka初始化&事件publishEurekaServerBootstrap类-eureka env & context 初始化PeerAwareIns

2021-01-26 15:51:10 410

原创 AOP动态代理源码解析-EnableAspectJAutoProxy

目录概述AOPJDK动态代理Cglib动态代理相关术语SpringBoot配置动态代理@EnableAspectJAutoProxy-初始化AspectJAutoProxyRegistrar类AopConfigUtils类AnnotationAwareAspectJAutoProxyCreator结构整体原理注册流程(Spring加载bean流程)Spring创建AOP代理解析代理调用逻辑实现解析MethodBeforeAdviceIntercep

2021-01-22 14:07:38 723

原创 Gateway源码解析

目录概况pom解析spring.factories解析GatewayClassPathWarningAutoConfiguration类GatewayAutoConfiguration类GatewayHystrixCircuitBreakerAutoConfiguration类GatewayLoadBalancerClientAutoConfiguration类GatewayNoLoadBalancerClientAutoConfiguration类GatewayMetr

2021-01-21 19:42:05 4972

原创 Zuul源码解析

目录版本说明入口@EnableZuulProxyZuulProxyMarkerConfiguration类spring.factoriesZuulServerAutoConfiguration类ZuulProxyAutoConfiguration类ZuulFilterInitializer类FilterRegistry类-Filters存储FilterLoader类-Filters封装ZuulServlet类-路由控制器FilterProcessor类-路由实现

2021-01-20 19:32:43 671

原创 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 1687

原创 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 302

原创 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 1270 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 236

原创 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> &lt

2021-01-18 19:07:31 365

原创 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 363

原创 Ribbon

概况Git:https://github.com/Netflix/ribbonRibbon为netflix开源的基本客户端的负载均衡组件,一般与feign搭配使用。内部框架Spring集成Ribbon框架:集成方式Ribbon服务配置方式。每一个服务配置都有一个Spring ApplicationContext上下文,用于加载各自服务的实例,各个客户端的配置相互独立,彼此不收影响 Feign集成模式。在使用Feign作为客户端时,最终请求会转发成 http://<服务名称

2021-01-18 19:01:19 318

原创 Eureka

目录概况内部架构工作原理自我保护机制Eureka集群源码分析CAP理论BASE理论主流注册中心对比概况Git:https://github.com/Netflix/eurekaEureka为服务注册与发现中心。pom:<dependencies> <!--eureka-server服务端 --> <dependency> <groupId>org.springframew

2021-01-18 19:00:07 257

原创 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 241

原创 微服务专栏概况

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 154 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 725

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除