自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (2)
  • 收藏
  • 关注

原创 redis的使用和问题的解决策略

Redis(RemoteDictionaryServer(远程数据服务))缓存Redis是基于内存的高速缓存key-value数据库(C语言开发)优点:1.基于内存读写速度快,可以支持高性能的业务场景2.支持丰富的数据结构(String,hash,set,list,sort)3.QPS可以达10万+缺点:数据不一致 缓存雪崩 缓存穿透 缓存并发 数据库容量受...

2019-07-07 18:24:29 239

原创 MQ 选型以及使用中的问题和解决方案

MQ(Message Queue)消息队列MQ:是一种应用程序对应用程序传递消息的中间件,是通过读写出入队列来通信。三种通讯模式 1.点对点,2.多点广播,3.发布和订阅(一般用这个)优点:1.异步:执行失败重试,提高接口的性能(失效策略;数据回补)2.解耦:利用MQ降低系统的耦合性(系统重构)3.削峰:将一些无需及时返回且耗时的操作提取出来,进行异步处理,从而节省服务器的...

2019-05-27 23:19:13 437

原创 MySQL服务器逻辑架构

为什么要删除查询缓存模块,表中任何一条记录有更新就会清空该表的所有查询缓存第一层,每个客户端连接都会在服务器进程中拥有一个线程,服务器会缓存这些线程,所以不需要为每个连接创建或者销毁线程;(连接处理,身份验证,安全性)。第二层,mysql的核心服务都在这一层,包括连接器,查询解析,分析,优化,缓存以及内置函数等等。第三层,存储引擎负责mysql中数据的存储和提取。连接管...

2018-09-11 10:29:39 226

原创 发现动态热点数据

发现动态热点数据我们可以通过卖家报名或者大数据预测这些手段来提前预测静态热点数据,但这其中有一个痛点,就是实时性较差,如果我们的系统能在秒级内自动发现热点商品那就完美了。能够动态地实时发现热点不仅对秒杀商品,对其他热卖商品也同样有价值,所以我们需要想办法实现热点的动态发现功能。这里我给出一个动态热点发现系统的具体实现。构建一个异步的系统,它可以收集交易链路上各个环节中的中间件产品的...

2019-12-28 17:33:30 1398

原创 算法学习笔记

复杂度分析1.只关注循环次数最多的一行代码2.总复杂度等于量级最大代码的复杂度3.嵌套代码的复杂度等于嵌套代码内外复杂度的乘积单链表结构和顺序存储结构的优缺点 存储分配方式 时间性能 空间性能 单链表结构 用一组任意的存储单元存放线性表元素 查找:O(n) 插入和删除:找到某位置的指针后,插入和删除的时间为O(1) ...

2019-12-10 20:19:27 131

原创 Java 生产者消费者实现

import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;public class ConsumerAndProduct { protected static final ThreadPoolExecutor executor = new ThreadPoolExecutor(10...

2019-08-31 12:29:18 196

原创 Java 线程

线程池的作用好处:1.重用存在的线程,减少线程的创建和销毁2.可以有效的控制最大并发线程数,提高系统资源的使用率,同时避免过多的资源竞争和避免堵塞3.提供定时执行,定期执行,单线程,并发数控制等功能Java通过Executors(接口)提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若...

2019-08-11 16:15:34 103

原创 Java 基础总结

Http和Https(区别)HTTP:超文本传输协议,是浏览器和服务端的请求和响应的标准TCP(网络传输协议),特点:无状态HTTPS:是以安全为目的的HTTP通道是HTTP的安全版,在HTTP中间增加了SSL层传输的安全 区别 HTTP HTTPS 证书 无 需要申请,收...

2019-08-11 15:12:19 74

转载 了解Jvm类加载机制

类加载流程(七个生命周期阶段)一、类的加载我们平常说的加载大多不是指的类加载机制,只是类加载机制中的第一步加载。在这个阶段,JVM主要完成三件事:1、通过一个类的全限定名(包名与类名)来获取定义此类的二进制字节流(Class文件)。而获取的方式,可以通过jar包、war包、网络中获取、JSP文件生成等方式。2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。这里只是...

2019-07-18 20:40:59 91

原创 对秒杀系统和有损服务的思考

秒杀系统设计思路用户量不大的策略队列+redis全局计数器即可用户量大的策略(柔性服务策略)前端处理95%的请求直接返回已经售光(前端随机数,矩阵,离散等概率算法) 全局计数处理 降级跳过非关键逻辑 中间错误异步修复 业务流程上可以通过:抢购预约码有损服务的策略(列表页)第一种策略 列表页分为三块,同时发起三个异步请求后端进行处理第...

2019-07-12 14:46:15 189

原创 HTTP/1,HTTP/2,HTTPS 之间的区别

HTTP:超文本传输协议,是浏览器和服务端的请求和响应的标准TCP(网络传输协议),特点:无状态HTTPS:是以安全为目的的HTTP通道是HTTP的安全版,在HTTP中间增加了SSL层传输的安全Http 与 Https的区别 区别 HTTP HTTPS 证书 无 需要申请,...

2019-07-07 18:11:35 2366

原创 MySQL -- 理想的索引

•频1: 索引长度直接影响索引文件的大小,影响增删改的速度,并间接影响查询速度(占用内存多)解决方案:针对列中的值,从左往右截取部分,来建索引①: 截的越短, 重复度越高,区分度越小, 索引效果越不好②: 截的越长, 重复度越低,区分度越高, 索引效果越好,但带来的影响也越大--增删改变慢,并间影响查询速度区分度 + 长度 两者上,取得一个平衡select count(d...

2018-09-11 10:40:23 132

原创 Java 算法之插入排序

public class InsertSort { public static void main(String[] args) { int[] array = new int[]{1, 4, 2, 5, 7, 6}; int in, out; // 从第二个元素开始比较 for (out = 1; out < arr...

2018-05-31 16:46:22 221

原创 MYSQL数据库设计规范与原则

1.数据库中的库名,表名和字段名的命名规则    采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;    命名简洁明确(长度不能超过30个字符);    例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个前缀;    每个表中必须有自增主键,create_time(系统时间)    表与表之间的...

2018-05-17 11:20:07 266

原创 java 算法之快速排序

public static int partition(int []array,int lo,int hi){ //固定的切分方式 int key=array[lo]; while(lo<hi){ while(array[hi]>=key&&hi>lo){//从后半部分向前扫描 hi--; ...

2018-03-24 15:58:54 132

原创 java 算法之 递归求2的次幂

// 2的次幂public static int check(int num) { if (num % 2 == 0) { int count = num / 2; if (count > 0 && count != 1) { count = check(count); } re...

2018-03-24 14:52:26 1832

转载 springmvc常用注解标签详解

springmvc常用注解标签详解1、@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对...

2018-03-07 16:31:30 230

转载 spring各个包的作用

spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。   除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可

2018-03-07 14:18:10 505

原创 idea 集成github并上传项目

1.先申请github帐号,密码,配置github2.下载并安装git,然后集成git3.上传项目到github

2018-01-23 15:20:14 456

原创 Java排序之:升级版的冒泡排序

冒泡排序是一种基础的算法排序普通的冒泡排序就是相邻两个元素进行比较,符合条件进行交换,每一轮比较找出最大值或是最小值,其复杂度为n的平方int arr[]={23,12,46,24,76};// 冒泡排序for (int i = 0; i for (int j = i; j if (arr[j] int t = arr[j];arr[j] = arr[j + 1];

2018-01-21 23:34:02 739 1

原创 RPC

RPC是什么 RPC是远程过程调用(Remote Procedure Call)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。RPC 起源RPC 这个概念术语在上世纪 80 年代由Bruce Jay Nelson提出。这里我们追溯...

2017-05-13 15:10:42 290

转载 Java三大特性之多态

什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的

2017-03-22 09:54:59 364

转载 实现开发环境、测试环境、生产环境配置自动切换

在项目部署中,总是手动修改三套配置环境,过于繁琐,通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换,让我倍感轻松。第一步:定义 profile现在就可以通过定义 profile 来将开发和生产环境的数据源配置分开,这里我们定义两个 profile,一个名称是 development,另一个名称是 production   

2017-02-25 15:37:56 6858

原创 MySQL主从服务器的配置与读写分离实现

MySQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力。

2016-07-26 21:13:12 2460

JAVA宝典.docx

面试的问题总结,还有个人工作多年的技术总结和心得,里面包含了java基础,redis,rpc等大厂需要的基本技能

2019-08-11

系统架构设计师 课程大纲

软考课程大纲,软考课程大纲,软考课程大纲,软考课程大纲,软考课程大纲!

2018-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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