自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 nginx解决跨域问题的正确配置方式

server { #其他配置..... location / { add_header Access-Control-Allow-Origin '*'; add_header Access-Control-Allow-Methods 'GET, POST, PATCH, PUT, OPTIONS, DELETE'; add_header Access-Control-Expose-Headers '*'; add_header Acc.

2020-06-05 13:46:45 107

原创 作为技术负责人,我都干了些什么(持续更新中...)

2020-03-19忙乱中,似乎时间过得很快,近一个月的时间项目迭代了两个版本,不算快也不算慢的吧,节奏适中,加班情况也适中,结果也都是如期完成。这里,还是要给组员一个赞的,因为你们确实很棒,不管是前端还是后端,都一样。可能是眼里容不得沙子吧,行事说话方面,我确实有些不足的地方,比如看到某个人犯了一个很low的错误,或者是需求评审的时候低头玩手机不做笔记不认真听的情况,嘴上不说,其实心里已...

2020-03-19 11:15:46 167 1

转载 算法分析神器—时间复杂度

转载地址:https://mp.weixin.qq.com/s/070nYGokM96aorZn6MZTDA

2020-01-06 15:13:34 47

转载 必学十大经典排序算法,看这篇就够了

说明十大排序算法可以说是每个程序员都必须得掌握的了,花了一天的时间把代码实现且整理了一下,为了方便大家学习,我把它整理成一篇文章,每种算法会有简单的算法思想描述,为了方便大家理解,我还找来了动图演示;这还不够,我还附上了对应的优质文章,看完不懂你来砍我,如果不想砍我就给我来个好看。术语铺垫有些人可能不知道什么是稳定排序、原地排序、时间复杂度、空间复杂度,我这里先简单解释一下:1、稳...

2020-01-06 14:48:35 48

转载 初创公司5大Java服务困局,阿里工程师如何打破?

全文连接地址:https://mp.weixin.qq.com/s/UJ2yy7pb8EXZSlQVJIymBg

2019-11-06 08:58:28 41

转载 Java+Python+前端项目资料

资料地址:https://blog.csdn.net/xubuhui/article/details/102473827

2019-10-12 15:39:01 46

原创 Redis ---- Stream

Redis5.0 被作者 Antirez 突然放了出来,增加了很多新的特色功能。而 Redis5.0 最大的新特性就是多出了一个数据结构Stream,它是一个新的强大的支持多播的可持久化的消息队列,作者坦言 Redis Stream 狠狠地借鉴了 Kafka 的设计。Redis Stream 的结构如上图所示,它有一个消息链表,将所有加入的消息都串起来,每个消息都有一个...

2019-10-10 14:50:47 99

原创 基于 Docker 的 Jenkins 持续集成与持续部署

前言随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致。基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化。持续集成,持续部署,持续交付对于微服务开发来说,是提高团队整体效率不可或缺的一环。合理的使用CI,CD能够极大的提高了生产效率,也提高了产品的交互质量。本文主要介绍下基于Jenkins+dock...

2019-10-10 14:39:28 96

原创 别傻了,你还真相信世界上有技术驱动型公司?

0x00世界上没有技术驱动型公司世界上没有技术驱动型公司,不论Google、Facebook,还是腾讯、阿里,都不是技术驱动型公司。因为技术不是源头,需求才是。因此一切技术问题,都要服从产品交付和市场反馈。所以,任何公司都不可能以技术去驱动自身。人可以以技术驱动自己进步,但公司不行。一家公司可以以技术切入某个市场,但如果它想生存下去,就一定不能以技术为导向,坚持以技术为导向的公司的...

2019-10-10 14:04:10 535

原创 【Linux面试】命令篇

一、文件和目录1. cd命令(它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径)cd /home 进入 '/ home' 目录cd .. 返回上一级目录cd ../.. 返回上两级目录cd 进入个人的主目录cd ~user1 进入个人的主目录cd - ...

2019-10-10 10:31:28 52

原创 Kafka 基本原理

简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Kafka架构它的架构包括以下组件: 话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。 生产...

2019-09-24 21:08:56 34

转载 Java开发性能优化总结

35个java性能优化总结:https://www.oschina.net/question/2978416_2243019Java编程中“为了性能”需做的26件事:https://www.oschina.net/question/565065_81285

2019-09-24 10:20:11 64

原创 Java大牛分享关于 Redis 缓存的几道典型面试题

随着系统访问量的提高,复杂度的提升,响应性能成为一个重点的关注点。而缓存的使用成为一个重点。redis 作为缓存中间件的一个佼佼者,成为了面试必问项目。本文分享一下Redis几道常见的面试题:缓存雪崩1.1 什么是缓存雪崩?如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis...

2019-09-20 19:08:52 50

原创 Redis项目实战,一些经验总结

背景 Redis 是一个开源的内存数据结构存储系统。 可以作为数据库、缓存和消息中间件使用。 支持多种类型的数据结构。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence)。 通过 ...

2019-09-19 10:07:20 41

原创 Redis知识点总结

1.什么是redis?Redis 是一个基于内存的高性能key-value数据库。2.Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Va...

2019-09-19 10:05:44 38

原创 多账号统一登陆,账号模块的系统设计

现在几乎大部分的 App都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,我们把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。一、 自建的登陆体系1.1.1 手机号登陆注册该设计的思路是每个手机号对应一个用户,手机号为必填项。流程: 首先输入手机号,然后发送到服务端。先判断该手机号是否存在账号,如果没有,就会生成随机验证码,将手...

2019-09-17 09:05:46 360

原创 每秒100W请求,12306秒杀业务,架构如何优化?

三类业务的架构挑战不一样: QQ类业务,用户主要读写自己的数据,访问基本带有uid属性,数据访问锁冲突较小 微博类业务,用户的feed主页由别人发布的消息构成,数据读写有一定锁冲突 12306类业务,并发量很高,几乎所有的读写锁冲突都集中在少量数据上,难度最大 那么对于秒杀类业务,系统上和业务上分别能如何优化呢,这是本文要讨论的问题。系统层面,秒杀业务的优化...

2019-09-12 13:53:58 65

原创 Mybatis架构与原理

MyBatis功能架构设计功能架构讲解:我们把Mybatis的功能架构分为三层: API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。 基础支...

2019-09-12 11:54:34 34

原创 Mybatis常见面试题总结及答案

1、什么是Mybatis?1、Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的...

2019-09-11 13:56:16 111

原创 MyBatis中的$和#,用不好,准备走人!

这是一次代码优化过程中发现的问题,在功能优化后发现部分数据查不到出来了,问题就在于一条sql上的#和$。下图为两条sql:从图上可以看出 wwlr.LabelId in(${showLabels}) 和 wwlr.LabelId in(#{showLabels}),其中showLabels是传进来一个字符串类型的参数,参数的样子是这样的“4,44,514”,问题就出在这个参数传进来后#...

2019-09-11 13:48:13 23

原创 面试必问 —— Spring Boot 是如何实现自动配置的?

Spring Boot是Spring旗下众多的子项目之一,其理念是约定优于配置,它通过实现了自动配置(大多数用户平时习惯设置的配置作为默认配置)的功能来为用户快速构建出标准化的应用。Spring Boot的特点可以概述为如下几点: 内置了嵌入式的Tomcat、Jetty等Servlet容器,应用可以不用打包成War格式,而是可以直接以Jar格式运行。 提供了多个可选择的”start...

2019-09-09 14:04:41 176

原创 spring boot面试问题集锦

Q: 什么是spring boot?A:多年来,随着新功能的增加,spring变得越来越复杂。只需访问页面https://spring.io/projects,我们将看到所有在应用程序中使用的不同功能的spring项目。如果必须启动一个新的spring项目,我们必须添加构建路径或maven依赖项,配置application server,添加spring配置。因此,启动一个新的spring项目...

2019-09-09 14:00:23 50

原创 Spring Boot 实现定时任务的 4 种方式

定时任务实现的几种方式:Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说...

2019-09-09 13:53:42 23

原创 并发扣款,如何保证数据的一致性?

扣款的业务场景是怎样的?用户购买商品的过程中,要对余额进行查询与修改,大致的业务流程如下:第一步,从数据库查询用户现有余额:SELECT money FROM t_yue WHERE uid=$uid;不妨设查询出来的$old_money=100元。第二步,业务层实施业务逻辑计算,比如:(1)先查询购买商品的价格,例如是80元;(2)再查询产品是否有活动,以及活动折扣,例如...

2019-09-06 09:08:02 119

原创 16个超级实用的Java工具包

一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块 toString:转换IO流、 Uri、 byte[]为String copy:IO流数据复制,从输入流写到输出流中,最大支持2GB toByteArray:从输入流、URI获取by...

2019-09-05 13:55:30 735

转载 MySQL 索引失效与优化详解

案例所用的表结构、索引、与数据如下: 索引失效与优化1、全值匹配我最爱2、最佳左前缀法则(带头索引不能死,中间索引不能断)如果索引了多个列,要遵守最佳左前缀法则。指的是查询...

2019-08-07 16:01:19 40

转载 redis总结

redis 简介简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。为什么要用 redis/为什么要用缓存...

2019-08-06 16:01:27 44

转载 redis----string用法

一、引言 redis五大数据类型基本的赋值和取值,其实每一种数据类型都有很多命令需要我们去学习,小编也会分几章去给大家讲解以及演示。之后的文章演示的部分,小编可能不会再截图,因为图片展示的时候有问题,这个小编也和csdn客服人员反馈过了。那么今天就先从String基本数据类型开始讲吧,希望大家跟着小编一起动...

2019-08-06 10:03:16 23

转载 redis----hash用法

Redis hash 是一个String 类型的field和value的映射表 hash特别适合用于存储对象Re...

2019-08-06 09:49:03 70

转载 redis----list用法

1、简单介绍   redis的list类型其实就是一个每个元素都是string类型的双向链表。所以lpus...

2019-08-06 09:44:04 277

转载 redis----set用法

简介redis的set类型是string类型数值的无序集合。set元素最大可以包含2的32次方减1个元素。由于set类型是通过hash table实现(旧版本是这样,新版本不确定是不是改用了skip list来实现),所以添加/删除/查找的时间复杂度都是O(1)。hash table有个问题,就是添加或删除的时候,伴随着长度的变化的是需要同步(获取写锁)会阻塞其他读写操作。如果当前版本不是s...

2019-08-06 09:36:35 121

转载 redis----Zset用法

简介 和set类型一样,sorted set也是string类型元素的集合,不同的是每个元素都会关联一个double类型的score。sorted set的实现是skip list和hash table的混合体。当元素被添加到集合中时,一个元素到score的映射被添加到hash table中,所以给定一个元素获取score的开销是O(1),另外就是score到元素的映射是被添加到...

2019-08-06 09:18:04 78

转载 什么是架构师

于是,小灰去向大黄请教这是有关未来的故事:从前,有一个赶路的人路过一片工地,看到三个年轻人在工地上搬砖。于是,他问其中一个人:于是,他又问了第二个人:...

2019-08-05 14:04:04 50

原创 java常见的5种单例模式

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例注:Spring源码的版本4.3.4Spring依赖注入Bean实例默认是单例的,我们由此展开。Spring的依赖注入(包括lazy-init方式)都是发生在AbstractBeanFactory的getBean里。getBean的doGetBean方法调用get...

2019-07-25 09:49:02 57

转载 Spring IoC有什么好处呢?

要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则?假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依赖底盘,底盘依赖轮子。...

2019-07-25 09:08:30 38

原创 java系列学习资料

参考博客:https://www.fangzhipeng.com/

2019-07-22 15:27:19 119

转载 汇总:1. Java基本功

23种设计模式http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html提升Java代码性能和安全性https://blog.csdn.net/Amen_Wu/article/details/81164273【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。https://gi...

2019-07-11 16:01:54 327

转载 在阿里一年,我颠覆了曾经坚信不疑的技术思维

2018.5.31~2019.5.31,一段精彩的旅程,渡过了在阿里一年的时光,这段时光有快乐、有焦虑、有迷茫、更有思考,思考的是自己过去的种种不足、思考的是一些现在看来之前错误的想法、思考的是如何成为一个更好的技术人,将这一些思考分享给看到这些文字的每个人,共勉。一、应当如何面对线上的异常/故障看起来毫无意义的一个问题,碰到线上异常/故障如何面对,排查解决了不就好了,但是这真的只是第一层...

2019-07-11 09:19:17 60

转载 java判断中文汉字工具类

package com.wlkj.util;import java.util.regex.Matcher;import java.util.regex.Pattern;import net.sourceforge.pinyin4j.PinyinHelper;public class ChineseUtil { /** * 判断中文字符 * @param c * @re...

2019-07-10 11:40:17 173

转载 Java知识体系-温故知新

目录一 数据类型1.1 8种基本数据类型1.2 引用数据类型1.3 java内存机制 1.3.1 寄存器1.3.2 栈1.3.3 堆1.3.4. 静态区/方法区1.3.5. 运行时常量池(Runtime Constant Pool)1.3.6 直接内存(Dir...

2019-07-10 11:16:20 50

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