摘要:
一、应用场景 在需求开发过程中,我们经常会遇到一些类似下面的场景:1)外卖订单超过15分钟未支付,自动取消2)使用抢票软件订到车票后,1小时内未支付,自动取消3)待处理申请超时1天,通知审核人员经理,超时2天通知审核人员总监4)客户预定自如房子后,24小时内未支付,房源自动释放 那么针对这类场景的需 阅读全文
摘要:
原理 一致性哈希算法(Consistent Hashing)最早在论文《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》中 阅读全文
摘要:
如何提高 Flink 任务性能 一、Operator Chain 为了更高效地分布式执行,Flink 会尽可能地将 operator 的 subtask 链接(chain)在一起形成 task,每个 task 在一个线程中执行。将 operators 链接成 task 是非常有效的优化:它能减少线程 阅读全文
摘要:
一、简介 开源流式处理系统在不断地发展,从一开始只关注低延迟指标到现在兼顾延迟、吞吐与结果准确性,在发展过程中解决了很多问题,编程API的易用性也在不断地提高。本文介绍一下 Flink 中的核心概念,这些概念是学习与使用 Flink 十分重要的基础知识,在后续开发 Flink 程序过程中将会帮助开发 阅读全文
摘要:
一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per 阅读全文
摘要:
本文简单介绍下后端服务开发中常用的一些性能优化策略。 1、代码 优化代码实现是第一位的,特别是一些不合理的复杂实现。如果结合需求能从代码实现的角度,使用更高效的算法或方案实现,进而解决问题,那是最简单有效的。 2、数据库 数据库的优化,总体上有3个方面: 1) SQL调优:除了掌握SQL基本的优化手 阅读全文
摘要:
什么是Apache Storm Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过Apache ZooKeeper管理分布式环境和集群状态。通过Storm可以并行地对实 阅读全文
摘要:
版本配置: ES版本:7.16 OS内存64G。 一、安装部署 1.ES jvm内存31G,预留一半的物理内存给文件系统缓存(file system cache)。 2.禁止内存交换: 修改/etc/sysctl.conf 中 vm.swappiness = 1 elasticsearch.yml中 阅读全文
摘要:
1、简介 Elasticsearch在5.3版本中引入了Cross Cluster Search(CCS 跨集群搜索)功能,用来替换掉要被废弃的Tribe Node。类似Tribe Node,Cross Cluster Search用来实现跨集群的数据搜索。 2、配置Cross Cluster Se 阅读全文
摘要:
一、索引管理1、创建索引 PUT test-2019-03 { "settings": { "index": { "number_of_shards": 10, "number_of_replicas": 1, "routing": { "allocation": { "include": { "t 阅读全文
摘要:
ES版本:6.2.4 集群环境:7台机器,每台部署一个master节点。其中3台部署2个hot节点,另外4台部署2个warm节点。共21个节点。 1. 挂盘 按实际情况分盘,一个机子上的2个data节点均分数据磁盘。 通过UUID挂盘,以防止以后换盘,盘符移动(这里拿3个盘举例)。 mkdir -p 阅读全文
摘要:
一 分布式系统特点 现今互联网界,分布式系统和微服务架构盛行。业界著名的CAP理论也告诉我们,在设计和实现一个分布式系统时,需要将数据一致性、系统可用性和分区容忍性放在一起考虑。 1、CAP理论 在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容忍性(Par 阅读全文
摘要:
背景 前几个月,使用Vertx重构了公司的一个子系统,该系统负责公司核心数据subscriber的采集、处理、存储和搜索。这里介绍下重构该系统时的一些关键点。 架构 重构前系统部署图: 重构前系统主要有2部分组成,这2部分都会对Subscriber数据操作: Java APP: 是个定时任务触发的A 阅读全文
摘要:
什么是ThreadLocal变量 ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意: 因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal 阅读全文
摘要:
Vertx Vert.x is a tool-kit for building reactive applications on the JVM.(Vertx是运行在JVM上用来构建reactive application的工具集) Vertx Design 响应式的(Responsive):一个响 阅读全文
摘要:
环境安装: Flask 是一个Python的微服务的框架,基于Werkzeug, 一个 WSGI 类库。 Flask 优点: Written in Python (that can be an advantage); Simple to use; Flexible; Multiple good de 阅读全文
摘要:
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 s 阅读全文
摘要:
Elasticsearch虽然定位为Search Engine,但是因其可以持久化数据,很多时候,我们把Elasticsearch当成Database用,但是Elasticsearch不支持SQL,就需要把SQL逻辑转换成代码实现对应的功能。 以下列举了一些常用的SQL转换成对应的Java代码。 1 阅读全文
摘要:
简介 Spark的 RDD、DataFrame 和 SparkSQL的性能比较。 简介 Spark的 RDD、DataFrame 和 SparkSQL的性能比较。 2方面的比较 单条记录的随机查找 aggregation聚合并且sorting后输出 使用以下Spark的三种方式来解决上面的2个问题, 阅读全文
摘要:
当你开始编写 Apache Spark 代码或者浏览公开的 API 的时候,你会遇到各种各样术语,比如transformation,action,RDD(resilient distributed dataset) 等等。 了解到这些是编写 Spark 代码的基础。 同样,当你任务开始失败或者你需要 阅读全文