自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (4)
  • 收藏
  • 关注

原创 Go基础快速入门

go基础语法快速入门

2023-07-24 19:39:57 338

原创 SmartEngine流程引擎之Custom模式

BPMN全称Business Process Model And Notation,是一套符合国际标准的业务流程建模符号。基本上,BPMN规范定义流程该怎么做,哪些结构可以与其他进行连接等等。不符合BPMN的流程引擎使用效果将大打折扣。也就是说所有流程引擎都要遵循BPMN这一标准,好比所有浏览器都要遵循HTTP协议BPMN片段实例process,表示一个流程。,分别表示流程定义的id和版本。这两个字段唯一区分一个流程定义。startEvent,表示流程开始节点。

2023-04-30 23:44:05 2807 1

原创 初探Lua脚本

Lua初探,结合Redis+Lua Demo演示

2022-12-30 18:30:18 8122

原创 分布式解决框架之Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。因为Seata主推的是AT(Automatic (Branch) Transaction)模式,同时也是最常用的,所以这里主要对AT模式做一下讲解

2022-10-25 18:44:24 2800 2

原创 分布式事务理论以及解决方案

文章涵盖2PC,3PC刚性事务;TCC,本地消息表,可靠性消息,最大努力通知。本文将对其一一讲解,尽最大努力写的通俗易懂。

2022-08-06 16:20:46 318

原创 G1垃圾收集器

一、前言学习G1垃圾收集器之前需要对JVM有大概了结:JVM基础知识。二、G1简介G1是一个并行回收器,它把整个堆划分为2048个区域,这些区域物理上不连续,被称为reigon,每一个region的大小是1 - 32M不等,必须是2的整数次幂。使用不同的region可以来表示Eden区、survivor区、old区等虽然还保留有新生代和老年代的概念,但新生代和老年代不再是物理隔离的了,它们都是一部分region (不需要连续)的集合,通过region的动态分配方式实现逻辑上的连续。G1垃圾收集器还增加了一种

2022-07-11 14:16:33 425

原创 Kafka核心概念详解

1.生产者分区策略 2.消费者消费策略3.消息队列的两种模式4.生产者发送流程5.kafka高吞吐详解6.kafka如何解决数据重复性问题7.kafka消息有序性

2022-07-05 11:43:56 541

原创 Sentinel规则持久化到Nacos

Sentinel规则持久化到Nacos案例

2022-06-22 19:24:59 1497

原创 Sentinel 阿里开源流量防护组件

Sentinel入门+案例

2022-06-21 20:26:45 380

原创 阿里云MFA绑定Chrome浏览器

阿里云MFA绑定Chrome浏览器

2022-06-17 18:47:55 2155 1

原创 设计模式之建造者模式

建造者模式案例

2022-06-16 16:15:43 83

原创 设计模式之工厂模式

工厂模式案例

2022-06-16 14:15:59 99

原创 ShardingSphere-JDBC篇

sharding介绍+案例

2022-06-07 17:14:03 2702 3

原创 广告业务Bug复盘总结

因为公司业务调整,最近接手了公司的广告系统的业务,其中遇到这样的一个Bug,它的表象是这样:广告主账户里面没钱了,但是广告依然给他投放了出来。一、基本业务逻辑首先广告的计费方式有几种,CPA,CPT,CPC,CPM等,而CPM这种计费方式是按每1000次曝光收费x元,也就说如果单价为10元,那么单次曝光就是0.01元,每次曝光我们首先都会从广告系统的缓存余额里面扣对应的钱,扣完钱,会给账户系统发送一条事物消息,然后执行本地事物,将扣款订单落库,事物提交,然后账户系统那边也会在缓存里面记录扣款金额,如

2022-05-27 17:43:48 714

原创 Docker网络篇(二)

上篇Docker网络篇_dotaer-df的博客-CSDN博客讲到了Docker0的作用,它其实有局限性,因为容器会经常重启,重启后ip地址会变化,那么再用原来的ip进行通信,肯定是行不通了,有没有一种方法通过名字来进行通信了。有两种方案一种是容器启动时候制定--link,一种是自定义网络,下面详细的介绍一下这两种方案。一、--link--link list Add link to another container(1) 容器run...

2022-05-19 16:36:59 1178

原创 Docker网络篇

在学Docker网络之前,我们先来看一下一个安装了Docker的linux服务器中的网卡有哪些[root@iZbp1csuqi4s80m3g73awpZ ~]# ip addr这个命令显示了这台机器上所有的网卡。大部分的网卡都会有一个 IP 地址,当然也会遇到没有 IP 地址的情况。一、什么是Docker0Docker启动的时候会在主机上自动创建一个docker0网桥,实际上是一个Linux网桥,所有容器的启动如果在docker run的时候没有指定网络模式(-net这个参数)的情况

2022-05-18 19:11:39 568

原创 Docker之dockerfile

一、什么是DockerFileDockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明,有了Dockerfile,就可以很轻松通过docker bulid构建出自己的一个镜像。二、DockerFile基础知识每个保留关键字(指令)都是必须大写字母 执行从上到下顺序执行 #表示注释 每个指令都会创建提交一个新的镜像层,并提交!常用命令FROM # 基础镜像,一切从这里开始构建MAINTAINER # 镜像是谁...

2022-05-17 18:27:32 1391

原创 Docker容器卷挂载

数据都在容器中,那么我们容器删除,数据就会丢失,所以容器与宿主机之间需要有一个数据共享技术!Docker容器中产生的数据,同步到本地!通过docker的卷挂载,将我们容器内的目录挂载到linux目录上面,这就是券挂载技术。docker run -v 宿主机目录:容器目录docker run -it -v /home/test:/home centos /bin/bash通过这样的方式宿主机的/home/test就与容器/home目录建立了联系,这样不管当宿主机还是容器做了修改,互相都可见。并

2022-05-13 16:27:19 1424

原创 Docker 基础命令篇

docker官方命令文档帮助命令docker version # docker版本信息docker info # 系统级别的信息,包括镜像和容器的数量docker 命令 --help镜像命令 1、docker images (查看所有本地主机上的镜像)# 解释REPOSITORY # 镜像的仓库TAG # 镜像的标签IMAGE ID # 镜像的IDCREATED # 镜像的创建时间SIZE ...

2022-05-12 11:05:21 493

原创 Docker安装与卸载

1、安装之前要检查机器是否已经安装过docker(如何卸载干净Docker)2、安装必须软件包sudoyum install-yyum-utils \ device-mapper-persistent-data \ lvm23、使用以下命令来设置阿里云的仓库(默认采取国外的镜像)sudoyum-config-manager \ --add-repo\http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.rep...

2022-05-10 11:28:57 189

原创 @RefreshScope刷新配置文件原理(2)

接着上文@RefreshScope刷新配置文件原理前文提到:当配置中心更改配置之后,有两种方式可以动态刷新Bean的配置变量值向上下文发布一个RefreshEvent事件 Endpoint方式,Http访问/actuator/refresh(springboot2.0之前为/refresh,springboot2.0之后默认没有开启refresh端点,需配置)不管是什么方式,最终都会调用ContextRefresher这个类的refresh方法。现在我们通过第二种Endpoint方式来感

2022-04-14 22:47:23 1150 1

原创 @RefreshScope刷新配置文件原理

@RefreshScope注解详解

2022-04-13 21:41:24 3214 3

转载 聊聊同步,异步,阻塞与非阻塞

近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。一、同步与异步首先来解释同步和异步的概念,这两个概念与消息的通知机制有关。也就是同步与异步主要是从消息通知机制角度来说的

2022-02-25 18:55:55 146

原创 ribbon.EnableZoneAffinity配置失效问题

我们都知道ribbon.EnableZoneAffinity属性用来过滤出和zone相关的服务器,即:只留下指定zone下的Server们,但是当我设置ribbon.EnableZoneAffinity=false,经过测试发现此配置并不生效。只有指定单个 serviceId.ribbon.EnableZoneAffinity属性时才生效,无法做到全局的一个默认配置,那为什么失效呢?本文接下来会对其进行探讨。因为本文中整合了eureka,在eureka中发现对EnableZoneAffinity进行了初

2022-02-08 18:53:44 676

原创 自定义ILoadBalancer

一、需求背景业务中遇到这样一个场景,网关需要将不同项目环境的域名路由到对应的项目环境中,做到隔离。环境共有五种环境:生产环境(real) 预发环境(pre) 公共环境(stable) 项目环境(dev) 本地环境(local)项目环境域名类似这样的格式http://alter-xxx.com,而我就是获取url上的alter-xxx标识,进行路由,而Ribbon当中也有一个Zone的概念,也就是区域,不同的项目环境就是不同的分区。本文采用于Spring cloud Ribbon和Eur

2022-02-03 19:09:43 1543

原创 OAuth协议入门之授权码模式

最近在业务中接触到了OAuth协议,之前没有遇见过,记录一下一、什么是OAuth协议OAuth(开放授权)是一个开放授权标准,即用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要用户提供自己的账号密码,只需提供一个令牌。...

2022-01-22 20:48:52 3440

原创 Redis各个版本重要更新说明

Redis 2.6(1)键的过期时间支持毫秒级(2)从节点支持只读功能Redis 2.8(1)可以用bind命令绑定多个ip地址(bing命令类似黑白名单功能,谁可以访问这个Redis服务)(2)发布订阅增加了pub/sub模式(3)Redis Sentinel 性能优化,相比于2.6的Sentinel,此版本生产可用Redis 3.0(1)最大的改动添加了Redis的分布式实现Redis ClusterRedis 3.2(1)添加GEO相关功能(2)新的List

2022-01-15 13:56:17 1094

原创 Kafka之Partition

先来看看Kafka中的一些相关术语Producer 消息生产者,就是向 kafka broker 发消息的客户端 Consumer 消息消费者,向 kafka broker 取消息的客户端 Consumer Group (CG) 消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者 Broker 一台 kafka 服务

2021-12-14 20:19:28 5921

原创 RocketMq存储结构(CommitLog、ConsumeQueue、IndexFile)

RocketMq存储结构(CommitLog、ConsumeQueue、IndexFile)

2021-12-07 17:31:01 3853 1

原创 RuleEngineListener和RuleListener区别

RuleEngineListener和RuleListener区别详解

2021-11-25 12:32:56 693

原创 WebFlux粗体验

一、概念(1)Spring WebFlux和Spring MVC区别Spring WebFlux 是一个异步非阻塞式 IO 模型,通过少量的容器线程就可以支撑大量的并发访问,所以 Spring WebFlux 可以有效提升系统的吞吐量和伸缩性,底层是采用的Netty容器。相反Spring MVC就是我们传统同步阻塞IO模型,底层是采用的是Servlet。(2)使用Spring WebFlux 能提高接口响应时间吗Spring WebFlux不能提高接口响应时间,而是提高了系统的吞吐量,为什么提高了吞

2021-09-24 14:38:23 920 2

转载 redission分布式对象

公共讲解RedissonClient(同步异步)、RedissonReactiveClient(反射式Reactive)和RedissonRxClient(RxJava2)实例本身和Redisson提供的所有分布式对象都是线程安全的1.首先先进行一步简单的配置redis的步骤Config config = new Config();SingleServerConfig singleServerConfig = config.useSingleServer() .setA

2021-09-10 10:25:49 1330

原创 业务中遇到的时间窗口

系统中在需要统计一段时间窗口内的曝光量,并绘制成x轴为时间,y轴为曝光量的图表,但是查询条件需要针对不同纬度(分钟,小时,天)如按1天纬度查询2021-09-05 00:00 至 2021-09-08 00:00,那么图表x轴就应该显示为 09-05 00:00,09-06 00:00,09-07 00:00。如按1分种纬度查询2021-09-05 00:00 至 2021-09-0500:15,那么x轴应该显示为09-05 00:01,09-05 00:02 等等。那么如何做呢?计算公式:...

2021-09-09 15:05:35 124

原创 规则引擎easyRule详解

规则引擎有许多种:Drools,Aviator,Mvel,EasyRule,这里主要讲解一下EasyRule。easyRule集成了Mvel,而Mvel表达式非常强大,我们可以自己写一些表达式,交给mvel进行解析计算,得到这个表达式计算的值。...

2021-08-26 16:16:32 11613 2

原创 redission分布式锁种类

基于Redis的Redisson分布式可重入锁实现了java.util.concurrent.locks.Lock接口锁的种类有以下几种:可重入锁,公平锁,联锁,红锁,读写锁,接下来我们详细介绍一下每一种锁。可重入锁 一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法,则该线程可以直接执行调用的方法,而无需重新获得锁。 public void method1() { RLock lock = redissonClient.getLock("...

2021-08-20 18:50:54 1834

原创 SpringCloud-gateway之RoutePredicateFactory

SpringCloud早期整合了Netflix 公司的开源项目Zuul 1.0作为网关,但后期Zuul 推出了2.0,但 Spring Cloud 貌似没有整合计划,看了下spring-cloud-netflix-zuul引用的还是1.0的Zuul,Spring Cloud 后面推出了自己的服务网关:Spring Cloud Gateway,使用起来比 Zuul 更简单,配置更方便。而作为一个网关,应当具备以下功能:性能:API高可用,负载均衡,容错机制。安全:权限身份认证、脱敏,流量清洗,.

2021-08-18 18:56:20 430

原创 redission看门狗实现机制一看就懂

某次偶然听到redission看门狗,感觉比较有趣,于是就想看看它长啥样。。。。废话不多说,直入正题。什么是看门狗?用官方文档的话来说就是:大家都知道,如果负责储存这个分布式锁的Redisson节点宕机以后,而且这个锁正好处于锁住的状态时,这个锁会出现锁死的状态。为了避免这种情况的发生,Redisson内部提供了一个监控锁的看门狗,它的作用是在Redisson实例被关闭前,不断的延长锁的有效期。默认情况下,看门狗的检查锁的超时时间是30秒钟,也可以通过修改Config.lockWatchdogT.

2021-08-06 11:34:12 16939 9

原创 redission扣库存demo

在分布式场景中,要实现锁如果仅仅通过Synchronized关键字是不行的,因为Synchronized只是在此java进程中进行了上锁。要想实现分布式锁即可采用redission。本文采用nginx反向代理+redission实现扣库存demo。引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st...

2021-08-03 10:57:30 779 1

原创 httpclient默认配置导致rt飙高

功能上线后,运行平稳过一段时间(也许新功能上线后,访问量不大)也就没引起注意。事故发生后,也立即做了补救措施,但部分现场也没有及时保留,从告警日志中发现,rt飙高的接口都指向了同一个接口。该接口是通过httpclient来调用微信的接口,因为微信为了方便用户对接其接口,对httpclient进行了封装,提供了一个sdk,代码如下: // 加载商户私钥(privateKey:私钥字符串) PrivateKey merchantPrivateKey = null; ...

2021-07-27 15:24:11 1157

转载 mysql重要配置参数整理

本文基于mysql5.7,不同版本mysql,配置参数有些许不同。client:1)character_set_client推荐设置:utf8mb4作用:字符集设定,如果前台有连social mobile application一类包括wechat,并且允许有使用emoji表情的,请开启成utf8mb4如果不配的后果:mysql不支持前端app存表情等字符配置实例:character_set_client=utf8mb4mysqld域:1)server-id推荐设置:如果没有做任

2021-07-23 15:58:53 818

sentinel控制台源代码

sentinel开源框架全套源代码,包含控制台

2022-06-22

sentinel控制台jar包

sentinel控制台jar包

2022-06-21

rocketmq4.7.1以及console

包含目前最新版rocketmq4.7.1以及其控制台包含目前最新版rocketmq4.7.1以及其控制台

2020-11-25

jol-core-0.9.jar

openjdk的一个工具,他可以很方便的让我看到一个对象的布局

2020-04-14

空空如也

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

TA关注的人

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