自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(480)
  • 收藏
  • 关注

原创 聊聊分布式

欢迎关注公众号:java4all↓↓↓分布式系列目录,点击直接进入文章↓↓↓,也可进入专栏:1.分布式锁系列–01分布式锁入门介绍2.分布式锁系列–02Redis实现分布式锁3.分布式锁系列–03关于分布式锁的选型分析014.分布式锁系列–04关于分布式锁的选型分析025.分布式事务系列–SpringCloud整合byteTCC框架0.4.x版本6.分布式事务系列–SpringClo...

2019-03-30 15:13:06 823 2

原创 SpringCloud系列教程目录

↓↓↓SpringCloud教程目录,点击直接进入文章↓↓↓,也可进入专栏:SpringCloud教程(Finchley版本)-00:什么是SpringCloudSpringCloud教程(Finchley版本)-01:服务注册与发现(Eureka)SpringCloud教程(Finchley版本)-02:服务消费者SpringCloud教程(Finchley版本)-03:负载均衡(Rib...

2018-12-15 11:17:36 2932 7

原创 SpringBoot教程目录

↓↓↓点击标题可直接查看↓↓↓(1)SpringBoot项目的创建(2)SpringBoot简介及常用注解(3)SpringBoot多环境配置与使用(4)SpringBoot获取配置文件常量值(5)SpringBoot使用JPA访问数据库(6)SpringBoot使用JPA访问数据库的常见问题(7)SpringBoot整合mybatis...

2018-04-03 16:05:18 3589 2

原创 零基础学习SpringBoot

注:本系列教程,又全部进行了更为深入的重写,可关注公众号:java4all,或进入SpringBoot教程,查看最新资料。本篇是零基础学习SpringBoot专栏的目录,随时更新,可直接点击相应链接: Spring Boot---(1)SpringBoot 项目的创建Spring Boot---(2)SpringBoot多环境配置和使用Spring Boot---(3)Spri...

2018-01-26 20:38:52 4162 2

转载 Seata Raft 存储模式详解及入门

目前Seata的分布式事务数据存储模式有file,db,redis,而本篇文章将Seata-Server Raft模式的架构,部署使用,压测对比,及为什么Seata需要Raft,并领略从调研对比,设计,到具体实现,再到知识沉淀的过程.

2024-04-13 22:30:49 12

原创 如何在seata中编写测试用例

随着 Seata 项目的不断发展和壮大,我们的贡献者群体也在持续扩大。项目的功能不断增强,对于代码质量的要求也在提高。在这个过程中,我们期望每一位贡献者在提交功能代码的同时,能够附带规范、完备的测试用例

2024-04-13 22:27:21 788

原创 Siddhi cep

本文介绍了Siddhi cep技术

2022-08-05 20:08:06 1231 2

原创 flink cep

本文详细的介绍了flink cep的概念与基础用法;

2022-08-05 20:00:57 5045 1

原创 lua记录

lua脚本的基础用法

2022-05-23 13:40:21 589

原创 SpringSecurity 403 forbidden

SpringSecurity 403 forbidden

2021-12-09 17:20:44 4247 1

原创 @ConditionalOnExpression多条件bean生效

@ConditionalOnExpression多条件bean生效

2021-12-08 19:41:38 3250

原创 Request header field x-xsrf-token is not allowed by Access-Control-Allow-Headers in preflight respon

设置下Access-Control-Allow-Headers@Component@WebFilterpublic class CorsFilter implements Filter { private final static String SPLIT = ";"; @Value("${roc.allow.origins:http://aa.aa.cn:8088}") private String allowOrigins ; private List<S

2021-10-09 19:17:25 1149

原创 ClickHouse系列--集群建表的坑

在集群建表时,如果多个节点都顺利,建表后提示如下:但是偶尔会出现超时情况,如下:由于108节点超时,导致节点未建表成功,而且根据观察,也没有重试机制。此时需要在任何一个节点,再重新执行一次ddl语句,才会成功。...

2021-09-01 11:59:50 1518

原创 ClickHouse系列--常用sql语句

1.删除表//删除本地表DROP table ti.java4al_base on cluster ck;//删除分布式表DROP table ti.java4al_base_all on cluster ck;2.添加字段-- 添加字段 本地表ALTER table ti.java4al_base ON CLUSTER ck add column IF NOT EXISTS `challengerType` Nullable(String) COMMENT '是否是挑战者' AFTER

2021-08-17 16:28:20 1482 1

原创 nc传输文件 从服务器传文件到本地

使用nc命令可以很快的在两台主机传递文件,且不需要在同一网段,只要设置好端口即可.1.接收方启动监听比如这里,监听7777端口,把接受到的文件写入到testjfr.jfr文件中。nc -l 7777 > testjfr.jfr2.发送方发送文件这里是接收方ip和监听的端口nc 10.57.241.129 7777 < batch10w.jfr 这样就可以把发送方的文件发送到接收方服务器了。3.安装如果没安装可以先安装yum install -y nc (需要root权限

2021-08-13 17:59:43 1061 1

原创 Code: 62, e.displayText() = DB::Exception: Syntax error (Multi-statements are not allowed): failed a

问题:clickhouse查询语句抛出一下异常:e.displayText() = DB::Exception: Syntax error (Multi-statements are not allowed):具体堆栈如下:### The error may involve defaultParameterMap### The error occurred while setting parameters### SQL: SELECT count(raba.id) FROM aabbccd.te

2021-08-12 13:58:54 8866 1

原创 ClickHouse系列--java ClickHouse map

如何在java中通过jdbc的方式向clickhouse中写入map类型?依赖版本: <dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.3.0</version>

2021-08-10 17:55:02 1324

原创 mybatis打印sql语句

springboot mybatis项目,想要打印sql语句,可以直接下载Mybatis Log Plugin插件,下载后重启下idea,然后配置文件中添加logging.level.cn=debug配置即可。注意,这里的cn,是个包名,如果你的包名是com开头的,换成com即可。然后debug项目时,就会看到执行的sql语句。...

2021-07-29 10:20:29 1666

原创 ClickHouse系列--Exception: Memory limit (total) exceeded: would use

批量写入clickhouse出错,内存溢出,报错信息如下:2021-07-20 13:59:14.291 INFO 12719 --- [pool-9-thread-1] c.t.r.c.c.consumer.ClickHouseConsumer : ------>>>>>>The 10 times write,Receive messages size is 745932021-07-20 13:59:24.401 INFO 12719 --- [pool

2021-07-20 14:06:36 5064

原创 ClickHouse系列--ClickHouse null值的处理与分析

clickhouse中对于null的处理和其他数据库有点差别。测试分析如下:1.建表语句CREATE TABLE default.testeasy( `sequenceId` UInt32, `tableaId` String, `eventOccurTime` DateTime, `abnormalTags` String COMMENT '标签', `isDeleted` UInt8 COMMENT '是否删除:1删除,0未删除.无boolean类

2021-07-16 15:01:56 11003 6

原创 ClickHouse系列--Too many partitions for single INSERT block (more than 100)

批量插入时,这一批数据是按照天分区的,一批数据里的日期跨度为一年,也就是单次插入可能产生365个分区,导致后台异步合并数据出现问题。解决方案:单批次写入数据,要控制分区数量。exception, code: 252, host: 10.58.10.243, port: 8123; Code: 252, e.displayText() = DB::Exception: Too many partitions for single INSERT block (more than 100). The limi

2021-07-14 11:31:00 2843

原创 ClickHouse系列--BalancedClickhouseDataSource实现

/** * 提供负载均衡能力的datasource实现 */public class BalancedClickhouseDataSource implements DataSource { private static final Logger log = LoggerFactory.getLogger(BalancedClickhouseDataSource.class); private static final Pattern URL_TEMPLATE = Pattern.co

2021-07-08 10:30:18 3311 2

原创 clickhouse时间处理问题纳秒

clickhouse写入时间后查询出来不对。差了上百年。场景:java中的long类型存入clickhouse中的long类型字段,作为时间。查询时,通过函数把long类型转化成时间格式。然后发现日期差了几十年。这是存入数据库的long值1625471075301。在数据库中查询时发现:这里成了2106年。问题原因:前面java中存入的long值,其实带了毫秒值。也就是long的后三位,是秒之后的,直接这么转,等于是时间戳多出来三位数。21.5.6.6版本目前转化函数中,还未发现能自

2021-07-05 16:07:17 1833

原创 ClickHouse系列--Mutations操作:数据的删除和修改

clickhouse提供了update和delete的删除能力,但是和常规的例如mysql,redis这种立即见效的能力不一样。在clickhouse中这种操作称为mutation操作。1.mutation操作有3个特点:1.mutation操作是一个很重的操作,适合批量删除或者修改,而不是一条一条的;2.不支持事务,请求提交执行后立即会产生影响(这个影响和立即生效是有区别的),无法回滚;3.是一个异步的生效过程,不会实施生效。所以修改完数据后想立即查询到最新的数据是不行的。2.示例ALTE

2021-06-20 15:03:12 6264

原创 ClickHouse系列--一级索引原理解读

MergeTree的主键使用PRIMARY KEY定义,主键定义好后,根据index_granularity间隔,为数据生成一级索引保存在primary.idx文件中,索引数据按照PRIMARY KEY排序。1.稀疏索引primary.idx文件中的一级索引采用稀疏索引实现。稀疏索引和稠密索引的区别是:稠密索引的每一行索引标记,都会对应到一行具体的数据记录,8192数据,就是8192行索引;稀疏索引的每一行索引标记,对应的是一段数据记录。比如8192行数据,可能对应的只有一行索引。优点:稀疏索

2021-06-05 09:43:19 1522

转载 同盾设备指纹

当谈论设备指纹时,我们到底在说什么? ( 丁杨 作者系同盾反欺诈研究院丁杨)“设备”和“指纹”作为独立名词存在时,其具有非常典型的硬件属性;一旦将他们结合起来变成“设备指纹”,就完全变成了一个软件层面的概念。近年来随着智能风控技术日益强大,很多风控系统都逐渐尝试加入这个重要的功能模块。2014年笔者刚加入同盾科技时即负责设备指纹1.0版本研发,随着产品的迭代升级以及无数次与客户现场的沟通,也逐渐积累了一些自己的思考。今天就让我们抛开具体的技术细节,从一个更高的视角来共同探讨设备指纹的发展。设备指纹诞生

2021-06-01 16:27:25 1209

原创 No macro ‘uuid‘ in config while processing substitutions in

clickhouse建表时出现以下异常:DB::Exception: No macro 'uuid' in config while processing substitutions in '/clickhouse/tables/{uuid}/{shard}' at '20' or macro is not supported here (version 20.8.3.18)DB::Exception: No macro ‘uuid’ in config while processing substi

2021-06-01 13:53:23 2378

原创 ClickHouse系列--分布式表写入流程

摘要:在向ck集群写入数据的过程,有2种方案,一种是直接写本地表,一种是通过Distributed表引擎写分布式表。本文介绍写分布式表的核心流程。先假定场景和统一命名:我们假设有cluster1,和cluster2两个集群。本地表log_local对应的分布式表为log_all。假设请求A进来后请求到cluster1的分布式表log_all,要写入100条数据。1.第一个分片写本地数据1)cluster1节点接收到请求后,会根据分片键/分片表达式计算这100条数据的分片划分,一部分应该到clus

2021-05-28 22:29:30 3130

原创 ClickHouse系列--分布式查询多副本的路由规则

简介:在集群情况下,数据写入可以有写本地表和写分布式表2种方案,但是面向集群查询时,只能通过Distributed表引擎实现。本文主要介绍分布式查询多副本的路由规则。该配置项为:load_balance=random/nearest_hostname/in_order/first_or_random1.多副本的路由规则查询数据时,如果一个分片shard有多个副本repIica,那么Distributed表引擎就需要面对副本选择的问题,选择查询究竟在哪个副本上执行。ck的负载均衡算法有以下四种:ra

2021-05-26 21:59:36 1214

原创 junit方法按顺序执行

选定版本,直接加注解即可

2021-05-25 19:46:05 277

转载 Cassandra数据库介绍

Cassandra 数据库,值得介绍的技术细节其实挺多的。因为它很多实现思路和关系型数据库或者其他的 NoSQL 数据库,是有一些不同的。这种不同是在数据库设计实现思路上也是根源上的。所以衍生开来的诸多特点,在介绍起来就不太容易和其他数据库去类比。那么 Cassandra 有这么大量的内容,本文只能选讲其中的一部分,这部分内容是如何挑选的呢?在《Cassandra The Definitive Guide》这本书里,有一段概括性的描述,即用 50 个 word 描述 Cassandra。它归纳了 .

2021-05-25 16:43:52 4144

原创 ClickHouse系列--数据读写方案

1.概念1.分布式表分布式表,是一个逻辑上的表,是一些本地表的逻辑视图。Distributed表引擎是分布式表的实现,它自身不存储任何数据,数据都分散存储在分片上,能够自动路由请求至集群中的各个节点,然后进行汇总后返回给用户,Distributed表引擎需要和其他数据表引擎一起协同工作。一张分布式表底层会对应多个本地分片数据表,由具体的分片表存储数据,分布式表与分片表是一对多的关系。2.本地表实际存储数据的表。2.读数据方案读数据一般都是直接读分布式表。1.分布式引擎会自动从集群中的多个服

2021-05-18 14:43:48 1877

原创 ClickHouse系列--项目方案梳理

1.整体流程三条路线:1.api–>kafka–>clickhouse问题:数据无法展平和清洗,难以加工,适合a.b等简单json格式。pass2.api展平–>kafka–>clickhouse问题:api需要改造,数据需要写两套格式,要额外写一套ck的格式,侵入大。pass2.kafka–>roc–>clickhouse优点:roc中进行数据清洗,展平,格式化等操作;积压数据,批量写入;对之前业务完全无侵入无影响;roc中需要实现

2021-05-17 20:13:38 443 4

转载 ClickHouse系列--ClickHouse特点

1.OLAP场景的特点读多于写不同于事务处理(OLTP)的场景,比如电商场景中加购物车、下单、支付等需要在原地进行大量insert、update、delete操作,数据分析(OLAP)场景通常是将数据批量导入后,进行任意维度的灵活探索、BI工具洞察、报表制作等。数据一次性写入后,分析师需要尝试从各个角度对数据做挖掘、分析,直到发现其中的商业价值、业务变化趋势等信息。这是一个需要反复试错、不断调整、持续优化的过程,其中数据的读取次数远多于写入次数。这就要求底层数据库为这个特点做专门设计,而不是盲目采用传统

2021-05-14 15:15:07 1163

转载 ClickHouse系列--消费kafka数据

1.使用方式主要是使用ClickHouse的表引擎。CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]( name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2], ...) ENGINE = Kafka()SETTINGS kafka_broker

2021-05-14 11:30:59 1211

原创 ClickHouse系列1--入门

1.配置文件服务器配置文件位于/etc/clickhouse-server/。config.xml中的<path>元素,它决定了数据存储的位置,因此它应该位于磁盘容量的卷上;默认值是/var/lib/clickhouse/。如果你想调整配置,直接编辑config是不方便的。考虑到它可能会在将来的包更新中被重写。建议重写配置元素的方法是在配置中创建config.d文件夹,作为config.xml的重写方式。2.启动clickhouse-server安装后不会自动启动,可以如下方式:sudo

2021-05-13 14:58:08 276

原创 jmc使用方法

使用jmc分析java应用

2021-04-26 16:00:14 2784

原创 Optional判断集合

集合判断还是用CollectionUtils,Optional有潜在的风险public static void main(String[] args) { //null不执行 List<User> list = null; Optional.ofNullable(list).ifPresent(ll -> System.out.println("数据1:"+ll.toString())); //不为null,但是这个用法

2021-03-17 14:05:35 3877 2

原创 maven打包配置

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav

2021-03-04 10:45:04 527 1

转载 防腐层(Anti-corruption layer)

微软:微服务设计模式2017年,微软AzureCAT模式和实践团队在Azure 架构中心发布了9 个新的微服务设计模式,并给出了这些模式解决的问题、方案、使用场景、实现考量等。微软团队称这 9 个模式有助于更好的设计和实现微服务,同时看到业界对微服务的兴趣日渐增长,所以也特意将这些模式记录并发布。下图是微软团队建议如何在微服务架构中使用这些模式:微软:微服务设计模式文中提到的9 个模式包括:外交官模式(Ambassador),防腐层(Anti-corruptio...

2021-02-08 17:09:41 6031 2

空空如也

空空如也

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

TA关注的人

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