南风

人生是一场修行


  • 首页

  • 归档

  • 分类

  • 标签

  • 留言板

  • 关于

  • 搜索

为什么你一上线平台页面就打不开?

发表于 2020-03-02 | 更新于: 2020-03-02 | 分类于 浮生六记 , 坎坷记愁 , 技术篇 , Redis | 阅读次数:
字数统计: 240 | 阅读时长 ≈ 1
一、问题背景 1、热点数据需要做Redis缓存,加快访问速度; 2、我们系统做了一个Redis连接池,目的是重复使用连接(阿里云系统连接上限200个左右); 二、问题分析 1、Redis连接跨度过长,引起连接堆积,不能及时释放连接,导致连接耗尽; 2、Redis中有一个区块数据量较大,导致本地测试没有问题,上线数据量变大直接拖慢连接的释放; 二、解决之道 1、去除Redis连接池,Redis本来就是单例,封装的连接池本质也是一个连接,只是交替等待连接而已,可以使用Spring Redistemplate进行改造; 2、我觉得最重要的原因就是Redis连接跨度太长,导致并发量大时Redis耗 ...
阅读全文 »

Mysql <>正确用法

发表于 2020-03-02 | 更新于: 2020-03-02 | 分类于 浮生六记 , 码海记历 , 技术篇 , MYSQL | 阅读次数:
字数统计: 120 | 阅读时长 ≈ 1
一、<>的用处<>等于!=号,就是用于判断不等于的条件,但是当字段值存在NULL,不可以使用<>判断,<>只对有值的字段有效,如你需要判断一个字段x,过滤出x不等于1的所有记录,但是x<>1却不能过滤出NULL的记录。那么如果需要达到这个效果,你需要使用x<>1 and x is null,或者你可以使用比较高端的写法IFNULL(x, '') <> 1
阅读全文 »

反思Spring Task定时任务没有等待Dubbo接口执行完成重复执行的问题

发表于 2020-03-01 | 更新于: 2020-03-02 | 分类于 浮生六记 , 坎坷记愁 , 技术篇 , Spring | 阅读次数:
字数统计: 431 | 阅读时长 ≈ 2
一、前情回顾        Long long ago,我记得有一个严重的线上BUG,前一天晚上上线了一个消息系统的改变需求,在一个宁静的周末,公司运营要用消息系统给平台客户发送消息,周五半夜收到数据库报警,早晨发现所有消息系统定时任务都卡住,没有继续执行,到了十二点,一下子将所有短信发送出去,直到短信账户欠费,然后系统恢复正常,最后发现一个用户重复发了十几条短信。 二、剧情分析 1、研究消息系统改版需求业务逻辑,并无大发现。 2、研究数据库告警,发现某一个慢SQL的问题引发了“蝴蝶效应”,大部分的SQL都是慢SQ ...
阅读全文 »

Spring MVC filter、interceptor、AOP区别

发表于 2018-10-26 | 更新于: 2018-10-26 | 分类于 Spring | 阅读次数:
字数统计: 840 | 阅读时长 ≈ 3
Filter过滤器过滤器拦截web访问url地址。 严格意义上讲,filter只是适用于web中,依赖于Servlet容器,利用Java的回调机制进行实现。 Interceptor拦截器拦截器拦截以 .action结尾的url,拦截Action的访问。 Interfactor是基于Java的反射机制(APO思想)进行实现,不依赖Servlet容器。 Spring AOP拦截器只能拦截Spring管理Bean的访问(业务层Service)。 具体AOP详情参照《Spring AOP详解》 AOP核心概念1、横切关注点对哪些方法进行拦截,拦截后怎么处理,这 ...
阅读全文 »

Container With Most Water(容器装更多的水)

发表于 2018-10-16 | 更新于: 2018-10-26 | 分类于 Algorithm , leetcode | 阅读次数:
字数统计: 205 | 阅读时长 ≈ 1
Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water. ...
阅读全文 »

Integer to Roman

发表于 2018-10-10 | 更新于: 2018-10-26 | 分类于 Algorithm , leetcode | 阅读次数:
字数统计: 354 | 阅读时长 ≈ 2
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol ValueI 1V 5X 10L 50C 100D 500M 1000For example, two is written as II in Roman numeral, just two one’s added together. Tw ...
阅读全文 »

桥接模式

发表于 2018-10-01 | 更新于: 2018-10-25 | 分类于 设计模式 | 阅读次数:
字数统计: 585 | 阅读时长 ≈ 2
桥接模式定义将抽象和实现放在两个不同的类层次中,使它们可以独立地变化。——《Head First 设计模式》将类的功能层次结构和实现层次结构相分离,使二者能够独立地变化,并在两者之间搭建桥梁,实现桥接。—— 《图解设计模式》 类的功能层次结构:父类具有基本功能,在子类中增加新的功能;类的实现层次结构:父类通过声明抽象方法来定义接口,子类通过实现具体方法来实现接口; 桥接模式中有四个角色: 抽象化角色:使用实现者角色提供的接口来定义基本功能接口。 持有实现者角色,并在功能接口中委托给它,起到搭建桥梁的作用;注意,抽 ...
阅读全文 »

MySQL索引类型

发表于 2018-10-01 | 更新于: 2018-10-25 | 分类于 MySQL | 阅读次数:
字数统计: 1,236 | 阅读时长 ≈ 5
索引的本质索引是帮助MySQL高效获取数据的数据结构。即可以理解为:索引是数据结构。目前大部分数据库系统及文件系统都采用B-Tree和B+Tree作为索引结构。 从数据结构角度1. B-Tree索引最常见的索引类型,基于B-Tree数据结构。B-Tree的基本思想是,所有值(被索引的列)都是排过序的,每个叶节点到跟节点距离相等。所以B-Tree适合用来查找某一范围内的数据,而且可以直接支持数据排序(ORDER BY)。但是当索引多列时,列的顺序特别重要,需要格外注意。InnoDB和MyISAM都支持B-Tree索引。InnoDB用的是一个变种B+Tree,而MyISAM为了节省空间对索引进行了 ...
阅读全文 »

Go项目不同系统下的可执行文件

发表于 2018-09-26 | 更新于: 2018-10-24 | 分类于 Golang | 阅读次数:
字数统计: 256 | 阅读时长 ≈ 1
Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。 1、Mac下编译Linux, Windows平台的64位可执行程序:12$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go 2、Linux下编译Mac, Windows平台的64位可执行程序:12$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go$ CGO_ENABLED=0 GOOS ...
阅读全文 »

Dubbo分布式调用链日志追踪

发表于 2018-09-24 | 更新于: 2018-10-24 | 分类于 Dubbo | 阅读次数:
字数统计: 670 | 阅读时长 ≈ 3
为了在分布式系统快速定位问题及进行性能问题定位,我们需要知道引起性能问题的具体操作,然而在分布式系统中,一个请求往往会调用很多的服务(service),如何快速的定位,这个时候我们就需要分布式链路跟踪系统,如ZipKin,它会帮助我们快速定位问题根源。然而,本文不使用zipkin作为链路跟踪,通过自己实现,从Nginx—>Tomcat—->Spring MVC Controller—>Dubbo consumer—->Dubbo provider的链路跟踪,通过TraceId将一次请求的服务器所有执行日志串起来,可以帮助我们快速的定位问题根源,一、Nginx每个请求生成 ...
阅读全文 »
12…5
南风

南风

46 日志
36 分类
32 标签
RSS
GitHub E-Mail 微博 知乎
个人博客
  • QuestCode【博客园】
  • Confidence_Surmount【CSDN】
0%
© 2018 — 2020 华仔 | Site words total count: 31.0k