- 博客(17)
- 资源 (8)
- 收藏
- 关注

原创 网关 zuul 线程阻塞分析
网关 zuul 线程阻塞分析本文基于一个线上真实问题。在 Zuul 无任何安全防护措施时,若遇到较大流量(单个Zuul应用在默认配置下200并发即可),将产生非常严重的后果。本文主要是探寻下问题产生的原因,问题背景与处理先简述下问题背景网络拓扑:请求 -> nginx -> 容器编排工具的LB(Haproxy) -> 网关(Zuul) -> 具体服务现象...
2019-12-19 16:16:32
4697
2

原创 网关 zuul自定义SimpleHostRoutingFilter
网关 zuul自定义SimpleHostRoutingFilterzuul的SimpleHostRoutingFilter主要用来转发,是使用httpclient来转发请求的,但是有时候我们需要改动相关httpclient的配置,这个时候,就需要修改SimpleHostRoutingFilter了,这里讲一下如何扩展SimpleHostRoutingFilter。自定义SimpleHost...
2019-12-19 16:04:38
2255

原创 Spring Cloud Sleuth + zipkin 实现服务追踪
服务追踪Spring Cloud Sleuth实现了一种分布式的服务链路跟踪解决方案,通过使用Sleuth可以让我们快速定位某个服务的问题。官方文档地址如下:http://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.0.1.RELEASE/single/spring-cloud-sleuth.html基本...
2019-04-30 17:29:10
354

转载 Spring cloud Feign正确的使用方法和性能优化注意事项
Feign正确的使用方法和性能优化注意事项1. feign自定义Configuration和root 容器有效隔离。用@Configuration注解 不能在主@ComponentScan (or @SpringBootApplication)范围内,从其包名上分离 注意避免包扫描重叠,最好的方法是明确的指定包名2. Spring Cloud Netflix 提供了默认的Bean类型...
2018-07-25 15:37:15
5161

转载 Java 高并发解决方案(电商的秒杀和抢购)
电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整...
2018-07-25 14:08:08
56198
12
原创 源码调试 ElasticSearch 2.x
前言阅读Elasticsearch源码的第一步是搭建调试环境,在这个过程中遇到了问题所以记录下。1. 环境介绍windows10 Java 1.8 Maven 3.3.9 Intellij IDEA2. 步骤下载源码https://github.com/elastic/elasticsearch/tree/2.4 导入到IDEA,setting maven 在id...
2019-11-01 16:36:55
230
原创 分布式 ID 生成器
分布式 ID 生成器一个唯一 ID 在一个分布式系统中是非常重要的一个业务属性,其中包括一些如订单 ID,消息 ID ,会话 ID,他们都有一些共有的特性:全局唯一。 趋势递增。全局唯一很好理解,目的就是唯一标识某个次请求,某个业务。通常有以下几种方案:基于数据库可以利用MySQL中的自增属性auto_increment来生成全局唯一 ID,也能保证趋势递增。 但这...
2019-04-30 17:43:58
182
原创 分布式锁
数据库锁:优点:直接使用数据库,使用简单。缺点:分布式系统大多数瓶颈都在数据库,使用数据库锁会增加数据库负担。缓存锁:优点:性能高,实现起来较为方便,在允许偶发的锁失效情况,不影响系统正常使用,建议采用缓存锁。缺点:通过锁超时机制不是十分可靠,当线程获得锁后,处理时间过长导致锁超时,就失效了锁的作用。zookeeper锁:优点:不依靠超时时间释放锁;可靠性高;系统要求高...
2019-04-30 17:36:58
160
原创 Java mongodb 多主键(group)mapReduce
业务需求:统计商户下,专题,用户统计下单数量话不多说,直接上代码@Autowiredprivate MongoTemplate mongoTemplate;// 使用的是spring 的mongodb @Testpublic void test(){ //Query query = Query.query(new Criteria()); String map = "...
2018-07-31 15:17:26
1362
原创 数据库分库分表
分库分表 一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。 垂直切分的优点: 1) 拆分后业务清晰,拆分规则明确。 2) 系统之间整合或扩展容易。 3) 数据维护简单。...
2018-07-26 10:44:59
279
原创 ElasticSearch性能优化
ElasticSearch性能优化1) 防止脑裂discovery.zen.minimum_master_modes: 50% 节点最小数2) 设置memory_lock来锁定进程的物理内存地址 bootstrap.memory_lock: true 允许 JVM 锁住内存,禁止操作系统交换出去3) 设置分片数如果分片数过少或过多,都会导致检索比较慢。 分片数过多会导...
2018-07-25 19:59:31
415
原创 Redis持久化的几种方式
1.RDB RDB持久化:(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化)RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。 2.AOF AOF持久化:(append only file)持久化(原理是将Reids...
2018-07-25 19:58:22
180
转载 Spring cloud Hystrix 参数详解
hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKeyCommand PropertiesExecution相关的属性的配置: hystrix.command.default.execution.isolation.strategy 隔离策略,默认是Thread, 可选Thread|Semaph...
2018-07-25 15:22:14
234
转载 Spring cloud Zuul 参数调优
zuul 参数调优适用版本:spring-boot: 1.4.x.RELEASEspring-cloud:Camden.SR3Hystrix: 1.5.6spring-boot-tomcat 优化参数:主要只有2个,最大和最小worker线程: server.tomcat.max-threads=128 # Maximum amount of worker thread...
2018-07-25 15:20:04
10390
转载 Hystrix semaphore和thread隔离策略的区别及配置参考
Hystrix semaphore和thread隔离策略的区别及配置参考通用设置说明Hystrix所有的配置都是hystrix.command.[HystrixCommandKey]开头,其中[HystrixCommandKey]是可变的,默认是default,即hystrix.command.default;另外Hystrix内置了默认参数,如果没有配置Hystrix属性,默认参数就会被...
2018-07-25 15:17:48
9856
2
原创 JDBC如何开启事务
先看看一个标准的JDBC例子伪代码: Connection conn = DriverManager.getConnection(...);try{ con.setAutoCommit(false); Statement stmt = con.createStatement(); //1 or more queries or updates ...
2018-07-25 15:14:54
21000
1
转载 分布式限流的解决方案
业务背景介绍 对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。 在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢道来。 一般而言,对于推广营销类短信,它们针对某一群体(譬如注册会员)进行定点推送,有时这...
2018-07-25 14:31:56
13163
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人