- 博客(13)
- 资源 (12)
- 收藏
- 关注
原创 Error reactor.netty.ReactorNetty$InternalNettyException: java.nio.channels.ClosedChannelException
现象使用Spring Cloud Gateway时,在线上偶尔出现异常,但是很少且很难复现。在压测的最后几条日志也会出现,当时没有放在心上,线上是不是会有error告警,故此花时间研究一番。[4eee5339] Error [reactor.netty.ReactorNetty$InternalNettyException: java.nio.channels.ClosedChannelException] for HTTP GET "/xxx", but ServerHttpResponse
2020-05-30 18:51:48 4179
原创 Nginx状态码499原因分析和处理
nginx日志如下:request_time:单位ms,请求处理时间,指nginx从客户端接受第一个字节开始,到把请求结果数据全部发送给客户端,并写入ngnix日志后为止到全部处理时间。(request processing time in seconds with a milliseconds resolution; time elapsed between the first bytes were read from the client and the log write after the
2020-05-30 18:46:03 10761 1
原创 TOMCAT原理
1 - Tomcat Server的组成部分1.1 - ServerA Server element represents the entire Catalina servletcontainer. (Singleton)1.2 - ServiceA Service element represents the combination of one ormore C
2020-05-29 18:47:19 113
原创 技术名词:零拷贝
https://blog.51cto.com/12182612/2424692?source=dra传统读操作JAVA用传统方式进行读操作时,整体流程如上图,具体如下:1、应用程序发起读数据操作,JVM会发起read()系统调用。2、这时操作系统OS会进行一次上下文切换(把用户空间切换到内核空间)3、通过磁盘控制器把数据copy到内核缓冲区中,这里的就发生了一次DM...
2020-05-29 18:22:53 247
原创 技术名词:脑裂
脑裂(brain-split):脑裂是指在主备切换时,由于切换不彻底或其他原因,导致客户端和Slave误以为出现两个active master,最终使得整个集群处于混乱状态。解决脑裂问题,通常采用隔离(Fencing)机制,包括三个方面: 共享存储fencing:确保只有一个Master往共享存储中写数据。 客户端fencing:确保只有一个Master可以响应...
2020-05-29 18:18:28 2028
原创 JMeter结果报告分析说明
聚合报告聚合报告参数详解:Label:sampler样本名称,不清楚测试结果时,修改样本测试后,会显示不同的样本名称 #Samples:样本数,执行的次数,100表示执行了100次,users(用户并发请求数) * loopCount(循环次数) Average:平均响应时间,默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller...
2020-05-29 18:13:32 1295
原创 SpringCloud:Eureka访问权限配置
一、场景当需要连接eureka server不在同一个内网时,需要通过外网访问,这时为了防止外人看到相关信息,需要对其增加访问限制。即可通过spring security组件进行安全控制。二、实现1.eureka server1.1.引入jar包在eureka server中引入security组件。<dependency> <group...
2020-05-29 18:02:58 5130
原创 Spring Cloud Gateway中uri和path一样时路径被删除,导致返回404
源码如下:默认情况下会对eureka上的所有服务创建path=/service_id/**的路由匹配public class GatewayDiscoveryClientAutoConfiguration {public static List<PredicateDefinition> initPredicates() { ArrayList<Pre...
2020-05-29 17:54:40 2619
原创 WebFlux(reactor)中获取完整response body数据
场景@Componentpublic class LogRespFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpResponse originalResponse = exchange.getResponse();
2020-05-23 18:39:32 12722 7
转载 服务监控工具prometheus和zabbix的对比
一、两种监控工具的历史简介:prometheus: Kubernetes自从2012年开源以来便以不可阻挡之势成为容器领域调度和编排的领头羊,Kubernetes是Google Borg系统的开源实现,于此对应Prometheus则是Google BorgMon的开源实现。Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库。从字面上理解,Prometheus由两个部分组成,一个是监控报警系统,另一个是自带的时序数据库(TSDB)。2016年,由Google发起的...
2020-05-23 15:26:07 2079
原创 Spring Cloud:APM工具Zipkin+Sleuth、pinpoint、SkyWalking、CAT
简介 Zipkin 由Twitter公司开源,开放源代码分布式的跟踪系统,用于收集服务的定时数据,以解决微服务架构中的延迟问题,包括:数据的收集、存储、查找和展现。 pinpoint pinpoint是韩国人开源的 APM (Application Performance Management/应用性能管理)工具 - Pinpoint。它基于google Dapper开发,目标就是为n(n>=1)层架构开发新的跟踪平台,为n层架构的系统提供解决方案。pinpoint能够对基于jav
2020-05-23 14:52:14 7496
原创 反应式编程Reactor: 环境搭建
ps:基于Spring Boot最近版本号https://projectreactor.io/docs放入项目pom中 <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-core</artifactId> <version>3.2.3.RELE
2020-05-14 18:04:48 961
转载 反应式编程响应式reactive基本概念
反应式编程 (reactive programming) 是一种基于数据流 (data stream) 和 变化传递 (propagation of change) 的声明式 (declarative) 的编程范式。反应式编程是在命令式编程、面向对象编程之后出现的一种新的编程模型,是一种以更优雅的方式,通过异步和数据流来构建事务关系的编程模型。本文包括反应式编程的概述和 RxPy 实战,以及怎样去理解反应式编程才能更好的把它融入到我们的编程工作中,把反应式编程变成我们手中的利器。使用异步数据流进行编
2020-05-09 09:35:34 1904
微服务网关入门.zip
2020-05-30
solarized.zip
2020-04-30
敏捷开发中如何编写设计文档,大到系统,小到功能
2023-06-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人