自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

君子敏于行而讷于言

我的架构师成长足迹

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

原创 云ES容灾方案

云ES容灾方案,可用性容灾,数据完整性容灾,应用访问限流,es限流,es监控告警

2023-11-16 21:58:41 402

原创 自建ES6.2.4切阿里云商业版ES(7.10)整体方案

自建ES6.2.4切阿里云商业版ES(7.10)整体方案

2023-11-16 19:50:57 786

原创 云ES高级监控告警

阿里云高级监控告警使用及指标配置

2023-11-16 21:46:20 368

原创 云ES使用集群限流插件(aliyun-qos)

aliyun-qos插件是阿里云Elasticsearch团队自研的插件,能够提高集群的稳定性。该插件能够实现集群级别的读写限流,在关键时刻对指定索引降级,将流量控制在合适范围内。例如当上游业务无法进行流量控制时,尤其对于读请求业务,可根据aliyun-qos插件设置的规则,按照业务的优先级进行适当的降级,来保护Elasticsearch服务的稳定性。

2023-11-16 21:26:24 501

原创 自建ES7.10集群,使用OSS快照恢复数据测试

云ES自动打es数据快照至OSS自建ES7.10集群,使用OSS快照恢复数据

2023-11-16 21:11:56 97

原创 切换阿里云ES方式及故障应急处理方案

自建切换阿里云ES方式及故障应急处理方案

2023-11-16 19:29:25 492

原创 使用阿里云Logstash,从自建es6.2.4迁移数据至云ES7.10测试

使用阿里云Logstash,从自建es6.2.4迁移数据至云ES7.10

2023-11-16 19:15:04 187

原创 自建es数据迁移阿里云方案

es数据迁移工具

2023-11-16 19:05:22 683

原创 ES7升级、jar包升级、工具类封装,代码改造

ES升级、jar包升级、工具类封装,代码改造

2023-11-16 18:02:51 134

原创 ES7.x 新特性与重大变化

es7.x新特性

2023-11-16 17:48:03 172

原创 烧开水理论-证明自己存在的三个过程

烧开水理论的提出者是廖泉文廖教授指出,人生证明存在的过程犹如“烧开水”,这一过程包含了三个过程第一个过程是“不断添柴”,即努力学习,不停顿地学习,不停顿地向社会和环境 学习的过程;第二个过程是耐得住寂寞,“不要频繁地掀锅盖”,也就是积累过程不能急于表现自己,这种积累既要求自己吃苦,还要求自己谦虚;第三个过程是 “水开了”,沸沸扬扬,证明你的存在,此时要注意保护它们,不要让烧开的水喷洒出来...

2018-08-19 21:21:18 8288 1

原创 Web服务器及性能优化

一、WEB服务器1.1 概述:1.2 区别:1.2.1 Apache1.2.2 Tomcat1.2.3 Jboss二、浏览器端,关于浏览器端优化2.1 压缩源码和图片2.2 选择合适的图片格式2.3 合并静态资源2.4 开启服务器端的Gzip压缩2.5 使用CDN2.6 延长静态资源缓存时间2.7 把CSS放在页面头部,把JavaScript放在页面底部...

2018-08-09 07:03:34 22731

原创 分布式-分布式锁

一、分布式锁的几种实现方式1.1 分布式锁的三种实现方式1.2 使用分布式锁要满足的条件二、基于数据库实现分布式锁2.1 基于数据库表2.2 基于数据库排他锁2.3 总结2.3.1数据库实现分布式锁的优点2.3.2 数据库实现分布式锁的缺点三、 基于缓存实现分布式锁3.1 Redis分布锁使用命令介绍3.2 实现思想3.3 实现代码3.4 总结3.4....

2018-08-08 16:20:48 13721

原创 分布式-分布式缓存Redis

一、Redis常用五大数据类型1.1 String(字符串)1.2 Hash(哈希)1.33 List(列表)1.4 Set(集合)1.5 zset(sorted set:有序集合)二、redis应用场景2.1 缓存——热数据2.2 计数器2.3 队列2.4 位操作(大数据处理)2.5 分布式锁与单线程机制2.6 最新列表2.7 排行榜三、redis使用规...

2018-08-08 10:40:14 15338

原创 Postgresql使用技巧

1.递归层次查询2.重复数据过滤3.COALESCE滤空处理4.日期、字符转换函数5.case when条件判断6.like模糊查询7.json中作为查询条件及只显示json中相应的key8.mybatis调用存储过程9.插入数组字段10.插入jsonb字段11.创建表序列技巧12.聚合函数string_agg与array_agg13.查询序列值14.增加修改列1...

2018-08-07 19:32:55 9679 1

原创 JDKProxy与CGlibProxy

一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP 2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP 3、如果目...

2018-08-06 18:30:35 9111

原创 详解PV、UV、VV、IP及其关系与计算

通过kafka进行日志收集一、什么是PV?PV即Page View,网站浏览量,指页面浏览的次数,用以衡量网站用户访问的网页数量。 用户每次打开一个页面便记录1次PV,多次打开同一页面则浏览量累计。一般来说,PV与来访者的数量成正比,但是PV并不直接决定页面的真实来访者数量,如同一个来访者通过不断的刷新页面,也可以制造出非常高的PV。具体的说,PV值就是所有访问者在24小时(...

2018-08-05 17:37:26 14275

原创 TCP的三次握手与四次挥手

https://blog.csdn.net/qzcsu/article/details/728618911. OSI七层和TCP/IP四层的关系1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。1...

2018-08-04 10:48:50 12725

原创 Servlet

Servlet是单实例多线程运行方式,所以对象变量线程不安全,局部变量线程安全。Servlet 生命周期、工作原理Servlet的生命周期由Servlet容器管理; Servlet 生命周期: - Servlet 加载—>实例化—>服务—>销毁。 - init() 在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet

2018-08-03 16:31:30 13222

原创 Mybatis插件原理(拦截器)

MyBatis拦截器原理探究MyBatis拦截器介绍MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢? 我们进入官网看一看: MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query,...

2018-08-02 07:59:44 14772

转载 客户端与服务器端防重复提交

一、客户端防表单重复提交1.1 实现方式、思路为了防止用户在客户端重复提交表单,要分析从客户端和服务端对重复提交的表单就行处理,首先是客户端处理重复提交表单,使用JavaScript方法第一种是只允许表单提交一次,后来的不能再提交第二种是提交一次后按钮变成不可用1.2 实现代码下面是代码的实现<html> <head&

2018-08-01 07:02:48 14218

转载 Dubbo高级篇_14_Filter实现Dubbo接口黑白名单

微服务背景下,一个web应用都可能不再service依赖,而是通过RPC调用远端服务器上的服务。这些服务里,就包括了一些不能轻易暴露的后台功能接口。暴露出去的dubbo接口注册到某一个zk上后,该dubbo接口对注册到该zk上的消费者都是可见的。对公司内部而言,通常不会有人蓄意去调用一些敏感的接口,但也存在人为误用的可能呀。为此,考虑通过白名单机制来控制dubbo接口的访问。扩展F...

2018-07-31 15:14:14 16945

原创 Dubbo高级篇_13_Dubbo缓存

结果缓存,用于加速热门数据的访问速度, Dubbo提供声明式缓存,以减少用户加缓存的工作量。按照SPI的要求,我们从配置文件中可以看到dubbo提供的三种缓存接口的入口:threadlocal=com.alibaba.dubbo.cache.support.threadlocal.ThreadLocalCacheFactorylru=com.alibaba.dubbo.cache...

2018-07-30 22:28:15 23378

转载 并发_02_JAVA并发机制的底层实现原理

一、并发编程中的三个概念1.原子性原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。2.可见性可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。3. 有序性有序性:即程序执行的顺序按照代码的先后顺序执行二、Volatile它是轻量级的synchro...

2018-07-29 09:18:43 13462

原创 分布式-消息中间件介绍

一、消息队列概述消息队列中间件是分布式系统中重要的组件 主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性(分布式事务)架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等 二、消息队列作用主要解决应用耦合,异步消息,流量削...

2018-07-26 16:01:46 18659

转载 胡雪岩启示

胡雪岩是中国晚清时期的一位传奇人物,我们今天讲胡雪岩,并不是把他当作一个历史人物来研究,因为胡雪岩死前被抄家,留下的资料很少。但是关于胡雪岩的传奇故事,却在民间口耳相传,流传甚广。胡雪岩出身贫寒,却在短短十几年的时间里迅速发迹,成为当时富可敌国的巨商富贾;他替清朝政府向外国银行贷款,帮助左宗棠筹备军饷,收复新疆,慈禧太后赐他黄袍马褂,官封极品,被人们称为红顶商人;他奉母命建起一座胡庆余堂,真不...

2018-07-25 18:01:35 13536

原创 某金服银行存管分布式架构设计

1架构总览此架构支撑的业务是 一天10G的日志处理,100个左右的QPS##业务流业务订单表设计CREATE TABLE `biz_order` ( `tid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `biz_id` varchar(100) NOT NULL DEFAULT '' COMMENT...

2018-07-24 15:58:13 15871 2

原创 Nginx负载均衡策略

nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。nginx的upstream目前支持的5种方式的分配1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream backserve...

2018-07-24 07:39:45 13959

原创 分布式-微服务架构选型

微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。 系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。微服务主要的优势降低复杂度将原来耦合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累。 每一个微服务专注于单一功...

2018-07-23 17:06:31 17436 1

原创 分布式-缓存防穿透 、雪崩

一、缓存穿透预防及优化缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中,但是出于容错的考虑,如果从存储层查不到数据则不写入缓存层,如图 11-3 所示整个过程分为如下 3 步:1.缓存层不命中2.存储层不命中,所以不将空结果写回缓存3.返回空结果缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端存储的意义。 缓存穿透模型缓存穿透...

2018-07-23 06:27:14 13961

原创 分布式-分布式事务

分布式事务- 二阶段协议一、前言在单个数据库实例时候,我们可以在一个数据源的事务(本地事务)内做多步数据库操作,在事务内的多个操作要么全部执行生效,要么全部不生效。在多数据实例节点时候,我们对多个实例的数据源进行操作时候就没办法把多个操作放到一个大的事务内来保证原子性了,因为多个实例操作的是不同的数据源,而数据库自带的事务是针对单个数据源来说的。二、二阶段协议单个数据库实例...

2018-07-22 18:04:00 14286

原创 分布式-接口幂等性设计

在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景:一个订单创建接口,第一次调用超时了,然后调用方重试了一次在订单创建时,我们需要去扣减库存,这时接口发生了超时,调用方重试了一次当这笔订单开始支付,在支付请求发出之后,在服务端发生了扣钱操作,接口响应超时了,调用方重试了一次一个订单状态更新接口,调用方连续发送了两个消息,一个是已创建,一个是已付款。但是你先接收到已付款,然...

2018-07-22 07:52:42 14273

原创 分布式-SOA服务化接口设计

服务模块的设计方式模块调用链:controller->facade->biz->dao服务模块的接口类型简单的数据查询接口:controller.facade、dao(例根据Id查询记录) 带业务逻辑的数据查询接口:controller、facade、biz、dao(复杂的查询,带业务逻辑) 简单的数据写入接口:controller、facade、da

2018-07-21 20:41:54 15091 1

原创 分布式-全局唯一id

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1.数据库自增长序列或字段最常见的方式。利用数据库,全数据库唯一。优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者...

2018-07-20 18:14:29 14454

原创 并发_05_ThreadLocal

ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量...

2018-07-20 06:50:43 13349

转载 并发_04_Java中的线程池

1111

2018-07-19 18:20:02 13464

转载 并发_03_JAVA中的锁

基础及框架容器

2018-07-19 07:20:59 13447

原创 并发_01_并发性与多线程介绍

在过去单 CPU 时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 CPU,并交由操作系统来完成多任务间对 CPU 的运行切换,以使得每个任务都有机会获得一定的时间片运行。随着多任务对软件开发者带来的新挑战,程序不在能假设独占所有的CPU时间、所有的内存和其他计算机资源。...

2018-07-18 08:20:26 13548

原创 java虚拟机_05_JVM故障处理分析

JVM中到底哪些区域是共享的?哪些是私有的?Heap和Method Area是共享的,其他都是私有的为什么不建议在程序中显式的生命System.gc()?因为显式声明是做堆内存全扫描,也就是Full GC,是需要停止所有的活动的(Stop  The World Collection),你的应用能承受这个吗?为什么会产生OutOfMemory

2018-07-17 19:08:30 13760

原创 java虚拟机_04_性能监控工具

系统性能监控- linuxuptime - 系统时间 - 运行时间 - 例子中为7分钟 - 连接数 - 每一个终端算一个连接 - 1,5,15分钟内的系统平均负载 - 运行队列中的平均进程数top同uptime可以知道哪个程序占CPU最多 vmstat可以统计系统的CPU,内存,swap,io等情况 CPU占用率很高,...

2018-07-17 07:12:21 13526

elasticsearch索引模板

es索引模板

2023-11-16

空空如也

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

TA关注的人

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