自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Just Do It!

努力到无能为力,拼搏到感动自己

原创 Spring AOP 实现日志记录功能

最近项目中需要记录日志,跟大家想的一样 ,利用spring aop去实现,之前也参考了一些代码,自己实现了一套设计,供大家参考。之前看到网上很多是基于切面类Aspect去实现了,在切面类中定义before after around等逻辑以及要拦截等方法。本文利用注解实现了一套可以扩展等日志记录模块...

2018-02-12 12:00:36 15658 8

原创 数据统计分析中Treemap 应用实战(排序以及查找离指定key最近的key)

1. 应用场景按天统计的逻辑利用hashmap进行存储,另外一篇文章已经提到。现在的问题是查询的交易记录表,如果当天没有交易记录,流量余额就是0,这个是不对的,应该是最近一笔交易记录时的流量余额。1.必须有序2.能够查询最近的一个key此时hashmap不能满足要求,试试treemap,map有序...

2018-01-30 19:14:02 588 0

原创 Mac OS 安装Homebrew,亲测有效,网上其他的都不靠谱

今天需要按照homebrew,网上搜了一大堆,都过时了,亲自看了一下,共享给大家,免得浪费时间。 第一步:按照xcode,这个简单,app store里面就有 第二步: 利用网上的命令 /usr/bin/ruby -e $(curl -fsSL https://raw.githubus...

2020-05-15 11:44:29 102 0

原创 Service mesh 总结

1 我们现在怎么做的 基于docker容器技术,我们K8s进行容器编排和调度管理。利用ingress controller进行负载均衡,主要是nginx。 最早以前,我们自己实现的服务发现,是新增的服务去报活,发送消息,nginx接受到消息后更新配置文件,后来我们利用consul去实现服务发现...

2020-02-12 10:40:06 245 0

原创 插入或者更新的并发情况处理

最近接收的代码经常出现并发问题。操作分为两步,第一步查询是否存在,如果不存在插入,存在更新。 关键是查询判断和后面的插入或者更新不是原子操作,如果判断之后,其他线程进行了插入操作,抛出唯一key异常。 private void insertOrUpdateCaseExpand(Rob...

2019-12-12 19:00:55 692 1

原创 mysql 优化总结

1 in 操作,如果是字符串,必须加上单引号或者双引号

2019-10-12 11:01:26 131 0

原创 学习笔记二

1. ArrayBlockingQueue原理 基于数组实现的、有界的(构造方法传入)阻塞队列 内部存储是数组,保证FIFO,阻塞利用notEmpty = lock.newCondition()实现 ReentrantLock 利用ReentrantLock加锁,保证线程安全。Re...

2019-08-02 15:27:09 1453 0

原创 学习笔记一

目录 1.@postconstruct @init-method @afterPropertiesSet 顺序 2. JVM常用命令 3.Xss攻击 4.CSRF 5.CORS 6. Mysql索引 7. Mysql事务隔离级别 8. Mysql调优注意事项 8.1 慢查询 9...

2019-05-29 15:57:03 905 0

原创 架构师进阶之NIO以及Netty

NIO 在讲解Netty之前,我们先复习一下基础,什么是NIO?网上很多文章,枯燥的讲解了什么是NIO,大家也看的一头雾水,下面我简单而不简洁的给大家解释一下NIO。 首先我们要明白一点,什么时候用多线程?多线程不是适用于所有场景,一般适用于cpu密集型任务。然后比如redis,netty,n...

2019-03-26 18:49:57 334 0

原创 架构师进阶之九Nginx架构分析

Nginx概述 简单复习一下什么是nginx,nginx是一个反向代理服务器,不同于我们平时为了访问某个网址设置对代理,那个是正向代理。反向代理,请求访问反向代理地址,反向代码寻址目的地址然后返回给请求方,但是请求方并不知道请求对处理方。这样设计的好处在于: 保护服务器隐私 实现负载均衡 ...

2019-03-24 16:51:21 182 0

原创 架构师进阶之Hibernate和Mybatis比较

Hibernate架构 Mybatis架构 分析架构 Hibernate 是一个ORM工具,java对象是mapping到数据库到一条记录,对java对象对修改,hibernate会在适当对时机flush到数据库,可以commit事务,也可以调用flush方法。Mybatis仅仅...

2019-03-22 18:42:03 126 0

原创 架构师进阶之九Consul+Openresty作为api gateway

什么是API gateway 确保客户端无法察觉应用程序是如何被拆分为多项微服务的。 确保客户端不受服务实例的位置的影响。 为每套客户端提供最优API。 降低请求/往返次数。举例来说,API网关能够确保客户端在单次往返中就从多项服务中检索出数据。请求数量更少意味着运行负担更低且用户体验...

2019-03-12 11:36:30 910 0

原创 架构师进阶之八一些问题

目录 1.jvm相关问题 1.1 JVM内存结构 1.2 JVM内存模型 1.3 类加载机制 1.4GC算法 1.5 垃圾回收器 1.6 调优命令 1.5 JDK1.8在jvm有什么优化 新增的 JVM 参数 2.并发与锁 2.1 countdownlatch和cycli...

2019-03-10 14:37:37 188 0

原创 架构师进阶之七Mysql数据库原理题

Redo Undo Mysql 非常重要的三个日志文件。我们一一分析讲解。 Redo log:顾名思义,防止操作丢失,记录数据的变动。为了保证数据持久化到磁盘。redo log记录的是新变更的操作语句。 数据修改写入data buffer之前,先持久化redo log到磁盘。 Undo l...

2019-03-08 11:36:15 115 0

原创 架构师进阶之六消息可靠性投递架构

消息可靠性投递背景 消息可靠性投递方案 两个重要监听: ConfirmCallback: 1. 判断消息是否到达exchange,exchange之后不负责。 2. 成功到达exchange并且持久化之后回调。或者没有到达exchange,持久化失败都会回调。ack为true或者fa...

2019-03-05 19:01:44 177 0

原创 架构师进阶之五常用的策略模式,太多if ese语句优化方案

引入 以前在编码中,遇到过下面的情况,根据设备类型,调用不同的Converter转换类。最初代码如下: if(type1){ convert1(); } else if(type2){ convert2(); } else if(type3){ convert3(); } ...

2019-02-27 13:27:27 178 0

原创 架构师进阶之四redis实现分布式锁redission

1. setNX实现方式 一般的setNX实现方式,在设置key之后,需要设置超时时间,防止死锁。另外设置key和设置超时必须是一个原子操作。 这种方式缺点: 1.1 Fail over  因为是把key写到master 节点,无论是主从结构还是cluster集群模式,存在failover...

2019-02-25 16:33:08 449 0

原创 架构师进阶之三Zookeeper,Mesos以及Marathon

1.Mesos Apache Mesos是一个集群管理器,可跨分布式应用程序或框架提供有效的资源隔离和共享。它位于应用程序层和操作系统之间,可以更加轻松地在大规模集群环境中更有效地部署和管理应用程序。它可以在动态共享节点池上运行许多应用程序 Apache Mesos将CPU,内存,存储和其他计算...

2019-02-20 18:09:36 592 0

原创 架构师进阶之二函数式编程和面向对象编程

什么是函数式编程 简单来说:面向对象编程各个模块之间相互依赖,好比流水线生产模式,互相依赖状态,共享数据等等。而FP编程则互相独立,没有任何依赖。 因此:FP编程,模块化程度更高,更容易测试,代码也更简洁,比如下面数组遍历的例子。因为模块化程度高,所以FP编程往往是声明式编程,调用现有的函数,...

2019-02-20 11:47:11 148 0

原创 架构师进阶之一消息中间件RabbitMQ和Kafka比较

为什么需要消息中间件 异步任务处理 系统解构,微服务直接解耦通信的一种方式,不关心系统语言编码实现 流量削峰 常用的MQ技术 1. RabbitMQ 1. 1 基于Erlang语言开发。 Erlang是一种面向并发(Concurrency Oriented),面向消息(Message ...

2019-02-15 12:11:58 227 0

原创 LeetCode总结二维矩阵问题

二维矩阵旋转90度 题目:https://leetcode.com/problems/rotate-image/ 武器:分解步骤 顺时针旋转90度: 交换对称元素,例子中以1 5 9 为轴交换,然后反转每一行 逆时针旋转90度: 交换对称元素,例子中以1 5 9 为轴交换,然后反转每一...

2019-01-24 17:48:16 543 0

原创 LeetCode总结动态规划类题目

爬楼梯 题目:https://leetcode.com/problems/climbing-stairs/ 武器: 分解问题,从1,2,3开始,写出转换方程dp[i]=dp[i-1]+dp[i-2]; 结果:一次通过 最大连续子数组和 题目:https://leetcode.com/pr...

2019-01-18 15:42:45 521 0

原创 LeetCode总结数学转换类题目

罗马字符转换为数字 题目:https://leetcode.com/problems/roman-to-integer/ 武器:抓住关键点,L,X,C三种减法的情况,其他都为加法 结果:一次通过 Excel列转换为数字 题目:https://leetcode.com/problems/e...

2019-01-17 14:15:01 204 0

原创 一片文章说明白分布式系统NRW,Paxos,Raft

引言 今天看到一篇文章提高分布式系统中service宕机的问题,其中作者提到了分布式系统中的一个基本问题。假如有两个service A和B,每个service当然有很多instance。如果A调用B进行数据更新操作,B在接受后未处理前宕机了,怎么办?数据丢失了怎么办? 我们从系统架构的演进来梳...

2019-01-17 11:39:42 205 0

原创 LeetCode总结单链表相关题目

反转单链表 题目:https://leetcode.com/problems/reverse-linked-list/ 武器:反转时候记录pre,nextTmp处理 结果:一次通过 合并两个有序链表 题目:https://leetcode.com/problems/merge-two-s...

2019-01-16 17:47:50 146 0

原创 LeetCode总结整型数组类题目

寻找唯一的单个数 题目:https://leetcode.com/problems/single-number/ 武器:利用map计算次数,线性时间。但是需要O(n)存储空间 结果:未通过 新武器:XOR操作 异或的运算方法是一个二进制运算: 1^1=0 0^0=0 1^0=1 ...

2019-01-16 16:52:47 151 0

原创 LeetCode总结二叉树类题目

二叉树最大深度 题目:https://leetcode.com/problems/maximum-depth-of-binary-tree/ 武器:二叉树,不是BST。思路一样。既然是深度,利用BFS,因为广度优先搜索是每层扫描的。 结果:一次通过 有序数组构建平衡二叉树 题目:http...

2019-01-16 16:29:11 366 0

原创 LeetCode总结字符串操作类题目

反转字符串 题目:https://leetcode.com/problems/reverse-string/ 武器:两个指针 二次结果:一次pass 判断是否互为变位词 题目:https://leetcode.com/problems/valid-anagram/ 武器:hashmap...

2019-01-16 16:21:15 713 0

原创 LeetCodeMedium篇Decode Ways

题目 A message containing letters fromA-Zis being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... &#...

2019-01-16 11:57:28 66 0

原创 LeetCodeMEDIM篇3Sum

题目 Given an arraynumsofnintegers, are there elementsa,b,cinnumssuch thata+b+c= 0? Find all unique triplets in the array which gives the sum of zero....

2019-01-15 11:44:59 85 0

原创 LeetCodeMEDIM篇Validate Binary Search Tree

题目 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contai...

2019-01-14 16:17:43 62 0

原创 LeetCodeMedium篇Maximum Product Subarray

题目 Given an integer arraynums, find the contiguous subarray within an array (containing at least one number) which has the largest product. Example...

2019-01-11 18:52:19 82 0

原创 LeetCodeMedium篇Coin Change

题目 You are given coins of different denominations and a total amount of moneyamount. Write a function to compute the fewest number of coins that you...

2019-01-11 17:33:22 68 0

原创 LeetCodeMEDIM篇word search

题目 Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cell, where ...

2019-01-11 15:49:45 78 0

原创 LeetCodeMEDIM篇Evaluate Reverse Polish Notation

题目 Evaluate the value of an arithmetic expression inReverse Polish Notation. Valid operators are+,-,*,/. Each operand may be an integer or another ...

2019-01-09 20:01:26 58 0

原创 LeetCodeMEDIM篇Basic Calculator II

题目 Implement a basic calculator to evaluate a simple expression string. The expression string contains onlynon-negativeintegers,+,-,*,/operators an...

2019-01-09 19:38:19 71 0

原创 LeetCodeMEDIM篇Search in Rotated Sorted Array

题目 Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e.,[0,1,2,4,5,6,7]might become[4,5,6,7,0,1,2])...

2019-01-09 18:48:33 52 0

原创 LeetCodeMEDIM篇 Find First and Last Position of Element in Sorted Array

题目 Given an array of integersnumssorted in ascending order, find the starting and ending position of a giventargetvalue. Your algorithm's runt...

2019-01-08 15:20:25 71 0

原创 LeetCodeMEDIM篇Course Schedule II

题目 There are a total ofncourses you have to take, labeled from0ton-1. Some courses may have prerequisites, for example to take course 0 you have to...

2019-01-08 12:16:38 83 0

原创 LeetCodeMEDIM篇 Sort List

题目 Sort a linked list inO(nlogn) time using constant space complexity. Example 1: Input: 4->2->1->3 Output: 1->2->3->4 Exampl...

2019-01-08 11:18:39 76 0

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