15 冯立彬

尚未进行身份认证

我要认证

每天前进一步

等级
TA的排名 55

阿波罗使用注意事项

1.引入客户端依赖<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.5.1</version></depend...

2020-03-13 14:24:28

基于Sentinel的高可用限流系统设计及实现

一、背景说明1、为什么要限流拿旅游景点举个示例,每个旅游景点通常都会有最大的接待量,不可能无限制的放游客进入,比如故宫每天只卖八万张票,超过八万的游客,无法买票进入,因为如果超过八万人,景点的工作人员可能就忙不过来,过于拥挤的景点也会影响游客的体验和心情,并且还会有安全隐患;只卖N张票,这就是一种限流的手段。软件架构中的服务限流也是类似,也是当系统资源不够的时候,已经不足以应...

2020-01-02 19:17:51

Elasticsearch索引的基本操作(9)-索引的强制合并

强制合并的功能为强制合并一个或多个索引,目的是通过索引合并达到减少段的数量,通过POST方法执行_forcemerge API。强制合并请求在没有执行完成之前,请求会一直被阻塞,直到执行完成才会返回,如果期间该HTTP请求由于网络或者其它原因被断开,合并请求将继续在后台执行,直到完成或发生异常结束。如果已经有强制合并正在执行,后续发起的强制合并请求将被会阻塞,直到当前正在执行的合并请求执行完后...

2019-12-25 06:38:15

Async-profiler介绍

1、介绍Async-profiler是一个对系统性能影响很少的Java采样分析器,它的实现是基于HotSpot特有的API,通过这些特有的API收集堆栈跟踪和跟踪内存分配,因而其可以和OpenJDK、Oracle JDK和其他基于HotSpot JVM的Java应用在运行时协同工作。Github项目链接地址:https://github.com/jvm-profiling-tools/as...

2019-12-15 16:34:59

DynamicDatabaseSource,在应用端支持数据库的主从

说明通过AOP的方式,根据当前操作的读写类型,自动切换数据源为主库还是从库,配置和使用都很简单,减少支持读写分离中间的引入,避免性能损失。项目地址:https://gitee.com/laofeng/DynamicDatabaseSource一、介绍生产环境下,单个MySQL在小业务量下,支持读写是没有问题的,但是随着业务量的增加,至少此时需要做的就是将数据库的读写进行分离,以便于...

2019-12-05 11:03:20

Redis中的Multi事务

一、概述Redis中的Multi和Pipleline都可以一次性执行多个命令,但是Pipeline只是把多个redis指令一起发出去,redis并没有保证这些指令执行的顺序,且减少了多次网络传递的开销,因而其执行效率很高;Multi相当于一个redis的transaction,保证整个操作的有序性,通过watch这些key,可以避免这些key在事务的执行过程中被其它的命令修改,从而导致得的到结...

2019-12-02 22:51:49

Linux中Python应用CPU占用高问题排查

公司购买了一套由外部供应商提供的呼叫中心系统,在使用的过程中发现其LOAD和CPU占用偏高,由于没有源代码也不太清楚其内部的实现逻辑,只能够通过观察系统资源的消耗来排除其问题,以下记录的是问题排查的过程。1、通过top命令查看其CPU占用可以看到其load占用为“20.14, 16.42, 19.16”,三个数字分别表示cpu在1分钟、5分钟及15分钟的load,cpu的使用率也偏高,...

2019-11-20 16:21:03

Elasticsearch索引的基本操作(8)-索引缓存、refresh、flush等操作

1、缓存清理通过缓存清理的API _cache/clear,需要使用POST方法执行,可以清理指定索引或整个集群的缓存。清除单个索引的缓存,操作如下: POST /new_index/_cache/clear {} 清除多个索引的缓存,操作如下: POST /new_index,new_index_2/_cache/clear {} ...

2019-06-22 09:53:00

Elasticsearch索引的基本操作(7)-索引模板

1、说明创建索引模板使用PUT方法,索引模板用于定义在创建新的索引时自动应用的模板,可以创建普通索引模板,也可以创建别名索引模板等,索引模板中的信息主要包括以下部份:可套用该索引模板的索引名称格式,名称支持通配符,也可以配置多个名称格式匹配格式; 索引的基本设置(settings); 索引的字段映射(mapping)信息; 别名(alias); ...模板创建语句语法如下所示:...

2019-06-21 08:15:09

Elasticsearch索引的基本操作(6)-索引设置

1、索引设置的查看查看索引的设置通过_settings API,使用GET方法操作。1.1、查看单个索引的设置查看索引new_index的设置,操作如下: GET /new_index/_settings 响应如下: { "new_index" : { "settings" : { "index" : {...

2019-06-20 15:32:32

Elasticsearch索引的基本操作(5)-别名设置

1、别名Elasticsearch中的别名,可以分为索引别名、过滤器别名、路由别名等,不同的别名适用于不同的应用场景:索引别名就是给一个或几个索引重新定义一个名字,操作索引别名时会转化为对真实索引的操作,定义索引别名时不可以与真实的索引同名; 过滤器别名提供了一种创建同一索引的不同“视图”的简便方法,可以使用Query DSL定义过滤器,并使用此别名将其应用于所有“搜索”,“计数”,“按...

2019-06-19 20:22:40

Spring中使用atomikos+druid实现经典分布式事务

经典分布式事务,是相对互联网中的柔性分布式事务而言,其特性为ACID原则,包括原子性(Atomictiy)、一致性(Consistency)、隔离性(Isolation)、持久性(Durabilit):原子性:事务是一个包含一系列操作的原子操作。事务的原子性确保这些操作全部完成或者全部失败。 一致性:一旦事务的所有操作结束,事务就被提交。然后你的数据和资源将处于遵循业务规则的一直状态。 隔...

2019-06-18 21:13:08

分布式事务中使用RocketMQ的事务消息机制优化事务的处理逻辑

1、事务消费介绍我们经常支付宝转账余额宝,这是日常生活的一件普通小事,但是我们思考支付宝扣除转账的钱之后,如果系统挂掉怎么办,这时余额宝账户并没有增加相应的金额,数据就会出现不一致状况了。上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事...

2019-06-16 22:29:26

Docker中RocketMQ的安装与使用

搜索RocketMQ的镜像,可以通过docker的hub.docker.com上进行搜索,也可以在Linux下通过docker的search命令进行搜索,不过最近防火墙升级后,导致国外的网站打开都很慢,通过命令搜索反而会更加方便,操作Docker命令一定要是root用户或者具有root权限的用户。查询操作如下:dockersearchrocketmq可以得到如下的结果:镜像倒是蛮...

2019-06-16 11:34:32

Elasticsearch索引的基本操作(4)-Mapping设置

1、Mapping设置Mapping设置API _mapping ,允许增加新的字段到指定索引中,或在满足一定的条件下修改已经存在的字段,需要使用PUT方法。1.1增加新的字段到索引中增加一个new_name到已经存在的索引new_index中,操作如下: PUT /new_index/_mapping { "properties":{ ...

2019-06-16 09:53:10

Ubuntu Linux下修改docker镜像源

在国内访问国外的Docker镜像源通常都是非常慢的,特别是最近GFW升级后,就变得更加慢了,因为要使用Docker中的镜像,这个时候最好就是将镜像指向国内的资源。国内亲测可用的几个镜像源:Docker 官方中国区:https://registry.docker-cn.com网易:http://hub-mirror.c.163.com中国科技大学:https://docker.mirr...

2019-06-15 15:51:29

Elasticsearch索引的基本操作(3)-索引的滚动操作

1、说明笔者的工作场景中,每天需要使用Elasticsearch处理数亿的日志记录,这些数据之间不会有直接的关系,只是用于记录以及用作后续的分析处理以及报表输出。如果都将这些数据所有的数据都放到相同的索引中,那随着时间的堆积,这无疑将会是非常庞大的数据,并且随着索引数量的增加,后续数据的插入和查询,都将会变得越来越慢。Elasticsearch中提供了对滚动索引(rollover inde...

2019-06-15 10:49:04

Java中的SPI(Service Provider Interface)介绍及示例

一个服务(service)通常指的是已知的接口或者抽象类,服务提供方就是对这个接口或者抽象类的实现,然后按spi标准存放到资源路径META-INF/services目录下,文件的命名为该服务接口的全限定名。如有一个服务接口com.test.Service,其服务实现类为com.test.ChildService,那此时需要在META-INF/services中放置文件com.test.Se...

2019-06-15 00:27:48

交易系统高并发下的幂等性设计原则

一、介绍幂等性就是针对同一个请求,不管该请求被提交了多少次,该请求都将被视为同一个请求,服务端不应该将同一个请求进行多次处理,以确认处理逻辑的正确性,针对交易性系统幂等性的设计尤为重要,否则由于网络或服务器处理超时等问题,就会造成交易混乱,最严重的后果就是乱扣用户的钱,造成投诉満天飞。二、客户端设计原则系统设计时,一定是要从最坏的角度上去考虑,如网络问题、服务器问题,甚至于包括人...

2019-06-15 00:20:52

集群环境中使用Zookeeper实现分布式幂等控制

一、什么是Zookeeper?Zookeeper(业界简称zk)是一种提供配置管理、分布式协同以及命名的中心化服务,这些提供的功能都是分布式系统中非常底层且必不可少的基本功能,但是如果自己实现这些功能而且要达到高吞吐、低延迟同时还要保持一致性和可用性,实际上非常困难。因此zookeeper提供了这些功能,开发者在zookeeper之上构建自己的各种分布式系统。虽然zookeeper的实现比...

2019-06-14 14:49:12

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享精英
    分享精英
    成功上传11个资源即可获取