- 博客(274)
- 资源 (6)
- 收藏
- 关注
原创 SpringBoot-引入Quartz并进行微服务隔离
Quartz 是 Java 领域最著名的开源任务调度工具。在上篇文章中,我们详细的介绍了 Quartz 的单体应用实践,如果只在单体环境中应用,Quartz 未必是最好的选择,例如一样也可以实现任务调度,并且与SpringBoot无缝集成,支持注解配置,非常简单,但是它有个缺点就是在集群环境下,会导致任务被重复调度!而与之对应的 Quartz 提供了极为广用的特性,如任务持久化、集群部署和分布式调度任务等等,正因如此,基于 Quartz 任务调度功能在系统开发中应用极为广泛!
2023-05-10 10:55:43
1127
1
原创 SpringCloud灰度发布设计和实现
什么是灰度发布呢?要想了解这个问题就要先明白什么是灰度。灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本。但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一方面,如果新版本有BUG,升级失败,回滚起来也非常麻烦,容易造成更长时间的服务不可用。
2023-04-18 11:35:47
504
原创 Linux-搭建DNS服务器
操作系统:CentOS 7IP地址:10.27.106.201测试域名:aec.testuc.com作用:主要提供解析aec.testuc.com域名的服务。
2023-04-10 09:37:03
1146
原创 vpp-agent的REST API使用及其原理
NB API:外部客户端与 VPP Agent 进行交互的接口,客户端可以完成 VPP configuration management。SB API:VPP Agent 与 VPP Data Plane 进行交互的接口。完成 VPP Data Plane 的 Events、Notifications 和 Configuration Dumps 操作。...
2022-08-30 08:49:09
982
原创 FD.IO VPP安装与启动
告诉 FD.io VPP 如何以不同于默认的方式为您的 VPP 实例命名 /dev/shm/ 中的文件。在下面的示例中,“名称”或“前缀”是“vpp1”。在生产环境中,您通常会使用 DPDK 运行它以连接到真实的 NIC 或使用 vhost 来连接到 VM。在生产环境中,通常会使用 DPDK 运行它以连接到真实的 NIC 或使用 vhost 来连接到 VM。通常,将修改 /etc/vpp/startup.conf 中的 startup.conf 文件。使用我们刚刚创建的文件,我们现在将启动并运行 VPP。.
2022-08-30 08:45:52
663
原创 github项目如何下载历史版本
假设查到的历史版本的id为f907618715fff2111bc930cacd3a52691c5115a0。那么使用以下命令就能够将当前版本回退到指定个历史版本了。
2022-08-16 14:18:30
1058
原创 Java-打开文件数过多错误
Linux设置最大打开文件数(句柄)## 在 /etc/security/limits.conf 文件的末尾加入以下内容### nofile为用户能够打开的文件数sudo vim /etc/security/limits.conf* soft nofile 65536* hard nofile 65536## 在 /etc/security/limits.d/20-nproc.conf 文件的末尾加入以下内容sudo vim /etc/security/limits.d/20-nproc.c
2022-04-15 17:05:17
2108
原创 Java-文件上传报错 the request was rejected because its size exceeds the configured maximum (10485760)
SpringBoot 上传文件报错,请求大小超过了配置的最大值springboot 默认 multipart.max-file-size大小是1M,max-request-size默认大小是10M解决方案:在application.yml文件中追加配置:spring: servlet: multipart: max-file-size: 300MB max-request-size: 500MB注意:一定要带单位(KB,MB,GB…)...
2022-02-23 10:49:51
3511
原创 Hadoop-HA高可用集群部署
Hadoop HAHA 概述(1)所谓 HA(High Availablity),即高可用(7*24 小时不中断服务)。(2)实现高可用最关键的策略是消除单点故障。HA 严格来说应该分成各个组件的 HA机制:HDFS 的 HA 和 YARN 的 HA。(3)NameNode 主要在以下两个方面影响 HDFS 集群➢ NameNode 机器发生意外,如宕机,集群将无法使用,直到管理员重启➢ NameNode 机器需要升级,包括软件、硬件升级,此时集群也将无法使用HDFS HA 功能通过配置多个
2022-01-25 16:47:29
743
翻译 Z3-Api In Python Basics模块内容
Python 中的 Z3 APIZ3 是微软研究院开发的高性能定理证明器。 Z3 用于许多应用,例如:软件/硬件验证和测试、约束求解、混合系统分析、安全性、生物学(计算机分析)和几何问题。本教程演示了 Z3Py 的主要功能:Python 中的 Z3 API。 阅读本教程不需要 Python 背景。 但是,在某些时候学习 Python(一门有趣的语言!)很有用,并且有许多优秀的免费资源可以学习(Python 教程)。Z3 发行版还包含 C、.Net 和 OCaml API。 Z3Py 的源代码在 Z3
2022-01-20 15:39:35
889
原创 Java-获取某天、某小时的最小时间、最大时间、时间格式
/** * 获得某天最大时间 2020-11-11 23:59:59 * @param date * @return */ public static Date getEndOfDay(Date date) { if (date == null) date = new Date(); LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpo...
2022-01-07 14:53:45
2216
原创 Spark-SparkSql在Idea中开发、用户自定义函数、数据的加载和保存
IDEA中开发SparkSQL实际开发中,都是使用 IDEA 进行开发的。添加依赖<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.12</artifactId> <version>3.0.0</version></dependency>object TestSQLBasic {
2022-01-06 13:59:52
2229
2
原创 Spark-SparkSql基础、DataFrame、DataSet
Spark-SQL概述Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。对于开发人员来讲,SparkSQL 可以简化 RDD 的开发,提高开发效率,且执行效率非常快,所以实际工作中,基本上采用的就是 SparkSQL。Spark SQL 为了简化 RDD 的开发,提高开发效率,提供了 2 个编程抽象,类似 Spark Core 中的 RDD:DataFrameDataSetSparkSQL 特点易整合无缝的整合了 SQL 查询和 S
2022-01-06 13:57:14
1598
原创 Keepalived-自定义Keepalived日志路径
Keepalived日志默认日志存放在系统日志:/var/log/messages下将keepalived的日志写到自定义目录下## 1、修改/etc/sysconfig/keepalived,把KEEPALIVED_OPTIONS="-D" 修改为:KEEPALIVED_OPTIONS="-D -d -S 0"# Options for keepalived. See `keepalived --help' output and keepalived(8) and# keepalived.con
2021-12-20 17:59:49
2231
2
原创 ClickHouse-Spark集成
Spark集成ClickHouseClickHouse的JDBC驱动目前通过JDBC写ClickHouse一共有三种驱动,除了官方的,还有两种第三方驱动。分别如下:官方的JDBC Driver:8123端口基于HTTP实现,整体性能不太出色,大量数据写入时有可能出现超时的现象housepower的ClickHouse-Native-JDBC:9000端口基于TCP协议实现,支持高性能写入,数据按列组织并有压缩Clickhouse4j基于HTTP,但是相比官方进行了大量优化,更加轻
2021-12-13 14:50:34
3310
1
原创 ClickHouse-SpringBoot集成
SpringBoot集成ClickHousepom文件<?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://mave
2021-12-10 17:58:50
1317
原创 ClickHouse-常见问题排查
常见问题排查分布式 DDL 某数据节点的副本不执行(1)问题:使用分布式 ddl 执行命令 create table on cluster xxxx 某个节点上没有创建表,但是 client 返回正常,查看日志有如下报错。<Error> xxx.xxx: Retrying createReplica(), because some other replicaswere created at the same time(2)解决办法:重启该不执行的节点。数据副本表和数据不一致(1)问
2021-12-10 16:31:41
2123
原创 ClickHouse-MaterializeMySQL引擎
MaterializeMySQL 引擎概述MySQL 的用户群体很大,为了能够增强数据的实时性,很多解决方案会利用 binlog 将数据写入到 ClickHouse。为了能够监听 binlog 事件,我们需要用到类似 canal 这样的第三方中间件,这无疑增加了系统的复杂度。ClickHouse 20.8.2.3 版本新增加了 MaterializeMySQL 的 database 引擎,该 database 能映射到MySQL 中 的 某 个database , 并 自 动 在ClickHouse
2021-12-10 16:30:55
759
原创 ClickHouse-物化视图
物化视图ClickHouse 的物化视图是一种查询结果的持久化,它确实是给我们带来了查询效率的提升。用户查起来跟表没有区别,它就是一张表,它也像是一张时刻在预计算的表,创建的过程它是用了一个特殊引擎,加上后来 as select,就是 create 一个 table as select 的写法。“查询结果集”的范围很宽泛,可以是基础表中部分数据的一份简单拷贝,也可以是多表 join 之后产生的结果或其子集,或者原始数据的聚合指标等等。所以,物化视图不会随着基础表的变化而变化,所以它也称为快照(snaps
2021-12-10 16:30:14
1916
原创 ClickHouse-数据一致性
数据一致性查询 CK 手册发现,即便对数据一致性支持最好的 Mergetree,也只是保证最终一致性:我们在使用 ReplacingMergeTree、SummingMergeTree 这类表引擎的时候,会出现短暂数据不一致的情况。在某些对一致性非常敏感的场景,通常有以下几种解决方案。准备测试表和数据(1)创建表CREATE TABLE test_a( user_id UInt64, score String, deleted UInt8 DEFAULT 0,
2021-12-10 16:29:44
1649
原创 ClickHouse-查询优化
查询优化本机执行环境为:3G内存,2个CPU核,配置都是默认配置总原则:能够提前过滤,一定要提前过滤。单表查询Prewhere 替代 wherePrewhere 和 where 语句的作用相同,用来过滤数据。不同之处在于 prewhere 只支持*MergeTree 族系列引擎的表,首先会读取指定的列数据,来判断数据过滤,等待数据过滤之后再读取 select 声明的列字段来补全其余属性。当查询列明显多于筛选列时使用 Prewhere 可十倍提升查询性能,Prewhere 会自动优化执行过滤阶段的
2021-12-10 11:05:45
4828
原创 ClickHouse-语法优化规则
ClickHouse 语法优化规则ClickHouse 的 SQL 优化规则是基于 RBO(Rule Based Optimization),下面是一些优化规则准备测试用表1)上传官方的数据集将 visits_v1.tar 和 hits_v1.tar 上传到服务器,解压到 clickhouse 数据路径下## 解压到 clickhouse 数据路径sudo tar -xvf hits_v1.tar -C /var/lib/clickhousesudo tar -xvf visits_v1.ta
2021-12-10 11:04:52
679
2
原创 ClickHouse-建表优化
建表优化数据类型时间字段的类型建表时能用数值型或日期时间型表示的字段就不要用字符串,全 String 类型在以 Hive为中心的数仓建设中常见,但 ClickHouse 环境不应受此影响。虽然 ClickHouse 底层将 DateTime 存储为时间戳 Long 类型,但不建议存储 Long 类型,因为 DateTime 不需要经过函数转换处理,执行效率高、可读性好。create table t_type2( id UInt32, sku_id String, total
2021-12-10 11:04:19
1212
原创 ClickHouse-使用Explain 查看执行计划
Explain 查看执行计划在 clickhouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能可以看到,并且只能真正执行 sql,在执行日志里面查看。在 20.6 版本引入了原生的执行计划的语法。在 20.6.3 版本成为正式版本的功能。本文档基于目前较新稳定版 21.7.3.14。基本语法EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [setting = value, ...]SELECT ... [FORMAT .
2021-12-10 11:03:41
2728
原创 gRPC-Java实现各种服务类型
gRPC实现借助gRPC,我们可以在一个.proto文件中定义一次服务,并以gRPC支持的任何语言生成客户端和服务器,而这又可以在从大型数据中心内的服务器到电脑的各种环境中运行– gRPC为您处理不同的语言和环境。还获得了使用协议缓冲区的所有优点,包括有效的序列化,简单的IDL和轻松的接口更新。grpc中有四种服务类型:简单rpc:这就是一般的rpc调用,一个请求对象对应一个返回对象服务端流式rpc:一个请求对象,服务端可以传回多个结果对象客户端流式rpc:客户端传入多个请求对象,服务端返回一个响
2021-12-08 16:15:38
872
原创 ClickHouse-集群部署以及副本和分片
副本副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从其他服务器获得相同的数据。https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/副本只支持合并数家族,支持的引擎如下:副本写入流程clickhouse集群没有主从之分配置步骤(1)启动 zookeeper 集群(2)在 hadoop113 的/etc/clickhouse-server
2021-12-07 17:44:31
3083
原创 ClickHouse-SQL 操作
SQL 操作基本上来说传统关系型数据库(以 MySQL 为例)的 SQL 语句,ClickHouse 基本都支持,但是也有一些不同之处。Insert基本与标准 SQL(MySQL)基本一致(1)标准insert into [table_name] values(...),(....)(2)从表到表的插入insert into [table_name] select a,b,c from [table_name_2]Update 和 Delete(不建议用)ClickHouse 提供了
2021-12-07 17:42:00
2272
原创 ClickHouse-表引擎
表引擎表引擎的使用表引擎是 ClickHouse 的一大特色。可以说, 表引擎决定了如何存储表的数据。包括:数据的存储方式和位置,写到哪里以及从哪里读取数据,可以集成外部的数据库,例如Mysql、Kafka、HDFS等。支持哪些查询以及如何支持。并发数据访问。索引的使用(如果存在)。是否可以执行多线程请求。数据复制参数。表引擎的使用方式就是必须显式在创建表时定义该表使用的引擎,以及引擎使用的相关参数。特别注意:引擎的名称大小写敏感需要用到是可以去官网查看https://clickh
2021-12-07 15:51:53
603
原创 ClickHouse-数据类型
数据类型整型固定长度的整型,包括有符号整型或无符号整型。整型范围(-2的n-1次方到2的n-1次方-1):Int8 - [-128 : 127] ,对应java的byteInt16 - [-32768 : 32767],对应java的shortInt32 - [-2147483648 : 2147483647],对应java的intInt64 - [-9223372036854775808 : 9223372036854775807],对应java的long无符号整型范围(0~2的n次方-1
2021-12-07 15:50:41
1097
原创 ClickHouse-入门及Linux单机安装
ClickHouse 入门ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++语言编写,主要用于在线分析处理查询(OLAP)(适合一次写入多次读写的操作,是分析性数据库,对增删改操作支持没那么优秀),能够使用 SQL 查询实时生成分析数据报告。OLAP:联机查询处理,擅长一次插入多次查询分析OLTP:联机事务处理,代表是Mysql、Oracle等关系型数据库,擅长增、删、改、查(CRUD)ClickHouse 的特点列式存储以下面的表为例
2021-12-07 10:44:16
1963
原创 Shell-入门、变量、以及基本的语法
ShellShell是一个命令行解释器,它接受应用程序和用户命令,然后调用操作系统内核。Linux提供的Shell解析器有[bd@localServer ~]$ cat /etc/shells /bin/sh/bin/bash/sbin/nologin/bin/dash/bin/tcsh/bin/cshbash和sh的关系,调用sh时实际调用的就是bash,它们是软连接的关系Centos默认的解析器是bash[bd@localServer ~]$ echo $SHELL/bin/
2021-12-06 11:05:07
652
2
原创 Shell-sort命令的使用
sortsort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。基本语法sort (选项) (参数)选项说明-n依照数值的大小排序-r以相反的顺序来排序-t设置排序时所用的分隔字符-k指定需要排序的列参数:指定待排序的文件列表案例实操## 数据准备[bd@localServer ~]$ touch sort.sh[bd@localServer ~]$ vim sort.sh bb:40:5.4bd:20:4.2
2021-12-06 11:04:15
535
原创 Shell-awk命令的使用
awk一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。基本用法awk [选项参数] 'pattern1{action1} pattern2{action2}...' filenamepattern:表示AWK在数据中查找的内容,就是匹配模式action:在找到匹配内容时所执行的一系列命令只有匹配了pattern的行才会执行action;匹配了pattern1就执行action1,匹配了2就执行action2。常用选项参数说明选项
2021-12-06 11:03:39
230
原创 Shell-sed命令的使用
sedsed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。基本用法sed [选项参数] 'command' filename选项参数说明选项参数功能-e直接在指令列模式上进行sed的动作编辑。常用命令功能描述命令功能描述a新增,a的
2021-12-06 11:03:02
96
原创 Shell-cut命令的使用
cutcut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。cut之后并没有改变原来的值基本用法cut [选项参数] filename说明:默认分隔符是制表符(\t)选项参数说明选项参数功能-f列号,提取第几列-d分隔符,按照指定分隔符分割列案例实操##数据准备[bd@localServer ~]$ touch cut.txt[bd@localServer ~]$
2021-12-06 11:02:31
7746
原创 Elasticsearch-原理总结
Elasticsearch其他Elasticsearch 中的集群、节点、索引、文档、类型的概念集群是一个或多个节点(服务器)的集合,它们共同保存您的整个数据,并提供跨所有节点的联合索引和搜索功能。群集由唯一名称标识,默认情况下为“elasticsearch”。此名称很重要,因为如果节点设置为按名称加入群集,则该节点只能是群集的一部分。节点是属于集群一部分的单个服务器。它存储数据并参与群集索引和搜索功能。索引就像关系数据库中的“数据库”。它有一个定义多种类型的映射。索引是逻辑名称空间,映射到一个或
2021-12-03 11:29:30
594
原创 Elasticsearch-Flink框架集成
Flink 框架集成Flink 框架介绍Apache Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Apache Spark 掀开了内存计算的先河,以内存作为赌注,赢得了内存计算的飞速发展。但是在其火热的同时,开发人员发现,在 Spark 中,计算框架普遍存在的缺点和不足依然没有完全解决,而这些问题随着 5G 时代的来临以及决策者对实时数据分析结果的迫切需要而凸显的更加明显:数据精准一次性处理(Exactly-Once)乱序数据,迟到数据低延迟,高吞吐,准确性容错性A
2021-12-03 11:25:02
437
原创 Elasticsearch-优化策略
Elasticsearch 优化硬件选择Elasticsearch 的基础是 Lucene,所有的索引和文档数据是存储在本地的磁盘中,具体的路径可在 ES 的配置文件…/config/elasticsearch.yml 中配置,如下:#----------------------------------- Paths ------------------------------------## Path to directory where to store the data (separate
2021-12-03 10:36:55
252
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人