- 博客(25)
- 收藏
- 关注
原创 传统商城的秒杀设计简单实现
*秒杀的实现一.秒杀的特点1.秒杀的特点是在规定时间内,用户在同一时间进行抢购,网站流量激增。2.秒杀的请求量远远大于库存量。3.抢购支付成功从数据库减少库存。二.秒杀的设计限流:由于有很多个线程抢夺资源,只有少数线程抢成功,所以要对大部分线程进行分流处理,只允许少数的线程进入秒杀的服务器端。削峰:队友秒杀系统会有大量的线程涌入,所以在抢购一开始的时候会有很高的峰值,可能会对系统产生巨大的冲击力,把高流浪峰值变成平稳的流量也是秒杀系统很重要的思路,实现削峰的常用方法利用缓存技术和消息中间件(m
2020-05-26 01:33:20 948
原创 MySQL 数据库 - SQL 优化
一.结构图MySQL 数据库 - SQL 优化1.1ISAM(Indexed Sequential Access Method)ISAM是一个定义明确且定义明确的数据表格管理方法,在设计时就考虑到数据库的查询次数远远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个不足点:1.ISAM不支持事务;2.不能够容错。如果你的硬盘崩溃了,那...
2019-11-07 17:13:26 333
原创 超详细的JVM优化方案
一.概念理解1.1堆与栈栈是运行时单位,解决程序的运行问题,即程序如何执行,或说如何处理数据堆是数据的存储单位,堆是jvm中管理内存中最大一块。它是被共享,存放对象实例。也称为“gc堆”。垃圾回收的主要管理区域在java中一个线程就会有一个线程栈与之对应,不同的线程执行逻辑不同,因此需要一个独立的线程栈。而堆是所有线程共性的。栈因为是运行单位,因此里面存储的信息都是跟当前线程相关信息...
2019-11-06 21:24:45 2312 1
原创 Spring Cloud高可用集群搭建
一.集群搭建架构图每个区域一个Eureka集群区域,负责该区域内的服务实例。每个区域至少有一台Eureka服务器来处理区域故障服务注册Eureka,然后发送心跳每30s更新一次租约,...
2019-11-04 17:11:39 251
原创 Spring Cloud Eureka入门配置
一.Spring Cloud Eureka和Zookeeper的区别?CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。CAP原则的精髓之处就是要么AP,要么AC,要么CP,但是不存在CAP。Zk注重数据的一致性...
2019-11-04 10:47:13 415
原创 单体架构和微服务架构的优缺点
单体架构:单体架构就是把所有的业务模块编写在一个项目中,最终会打包成一个war,然后进行部署运行单体架构的优点:1.由于是完整的
2019-11-01 18:04:20 19321
原创 Mybatis的一级缓存,二级缓存过期时间分析
Mybatis的缓存级别Mybatis提供了查询缓存来查询数据,使在项目开发中提高性能。 Mybatis的缓存分为一级缓存和二级缓存,一级缓存是SqlSession级别的缓存,二级缓存是mapper级别的缓存,二级缓存是多个SqlSession共享的。Mybatis通过缓存机制减轻数据压力,提高数据库的性能。一.一级缓存没有过期时间,只有生命周期(1).Mybatis在开启一个数据库会话时,...
2019-10-25 19:50:16 5319
原创 Mysql优化
一.Mysql的存储引擎MyISAM的特点:不支持完整的事务,奔溃恢复能力差.frm:表结构信息.MYD:数据文件.MYI:表的索引信息(比innodb多的文件)InnoDB 特点:1)、支持事务2)、数据多版本读取(InnoDB+MyISAM+ISAM)3)、锁定机制的改进4)、实现外键2. innodb 与 myisam 区别InnoDB 支持事务,MyISAM 不支...
2019-10-24 18:18:06 209
原创 Spring Cloud Eureka和Zookeeper的区别
一.CPA原则CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。一致性(C):在分布式系统的所有数据备份,在同一时刻是否同样的值(等同于所有节点访问同一份最新的数据副本))可用性(A):在集群中一部分...
2019-10-15 22:32:08 1308
原创 微信小程序登录流程及登录
一.登录流程1.微信小程序端发起请求并携带主要参数;2.java后台接收到登录请求后,根据临时凭证code去调用微信接口获取用户唯一标识openId和sessionKey;3.使用openId去查询数据库(openId是会员的的唯一标识)a.若openId存在,直接登录成功;b.若openId’不存在,我们把openId写入到数据库,并且让他登录4.根据openId查询redis数据...
2019-10-14 21:53:17 3134
原创 ActiveMQ入门学习
一.ActiveMQ的简介Activemq : 是一个实现了JMS的消息中间间。该中间可跨平台,java ,c++ python ,.net都能使用,最近流行websocket ,mqtt 也能实现,但是activemq 是java写的,实现jms的规范写的!特点:1、支持多种语言编写客户端2、对spring的支持,很容易和spring整合3、支持多种传输协议:TCP,SSL,NIO,U...
2019-09-19 17:18:32 209
原创 BloomFilter布隆过滤器的实现解决缓存击穿问题
什么是缓存的击穿缓存穿透是指缓存和数据库中都没有的数据,缓存每次都无法命中,因为我们默认不会缓存null 值,导致用户访问 id=-1 这样的数据时,一直都无法命中,这时的用户很可能是攻击者,攻击会导致数据库压力过大。解决方法:A.在redis缓存null, 当它再次查询id = -i ,在缓存里面有值,可以不在访问数据库但是缺点缓存了null 值B.使用BloomFilterBloo...
2019-09-19 14:45:00 1247
原创 Linux下安装Zookeeper
1,系统要求ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境。ZooKeeper支持的运行平台:ZooKeeper是用Java编写的,运行在Java环境上,因此,在部署zk的机器上需要安装Java运行环境。为了正常运行zk,我们需要JRE1.6或者以上的版本。对于集群模式下的ZooKeeper部署,3个ZooKeepe...
2019-08-30 22:12:45 348
原创 redis的集群
1,为什么要使用profiles在开发中,一般有两种环境1,生产环境 [项目上线,客户在使用中,就是生产环境]2,开发环境[就是开发环境,不解释]有时候开发环境和生产环境的配置方法是不一样的,那么如何快速的切换呢,这里就要使用profiles文件2,使用方法[文件]1,创建applicatin-dev.propertiesserver.port=88882,创建applicati...
2019-08-05 22:03:12 180
原创 spring简介及代理模式
1.创建student类2.在pom文件中加入配置文件提示的依赖创建appliccation.propproperties,里面不能写中文@Component之后,ioc容器里就有一个student对象,能匹配到@ConfigurationProperties(prefix=“stu”)里面的"stu"前缀,来匹配到application.properties,跟applicatio...
2019-08-05 21:49:10 292
原创 Springboot学习(一)Springboot介绍与入门程序
一.springboot的介绍1.springboot简介Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapidapplication deve...
2019-08-03 17:11:17 272
原创 springboot学习(五)自动配置原理及@Conditional派生注解
概述SpringMVC是spring提供的一个强大而灵活的web框架。借助于注解,SpringMVC提供了几乎是POJO的开发模式,是的控制器的开发和测试更加简单。这些控制器一般不直接处理请求,二回将其委托给Spring上下文中的其他的bean,通过spring的依赖注入功能,这些bean被注入到控制器中。SpringMVC主要有DsipatcherServlet,处理器映射,处理器(控制器)...
2019-08-03 09:07:52 2002 1
原创 maven从入门学习(一)之maven概述与入门配置
标题 一. maven概述1,Maven 作为 Apache 的一个开源项目,旨在给项目管理提供更多的支持,它最早的意图只是为了给 apache 组织的几个项目提供统一的开发、测试、打包和部署,能让开发者在多个项目中方便的切换。2,Maven 中最值得称赞的地方就是使用了标准的目录结构和部署。3,在多个开发团队环境的情况下,Maven可以设置标准。由于大部分的项目设置简单可重复使用,使使M...
2019-07-30 22:26:48 192
原创 MYSQL数据库安装 图解以及无法连接问题
前言POST请求和GET请求是HTTP协议中的两种方法,最基本的方法有四种,除了POST请求和GET请求之外,还有PUT,DELETE请求。URL全称是资源描述符,一个url地中,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应对这个资源的查,改,曾,删。POST与GET提交表单方式页面通过表单(form)想服务器提交数据的时候有两种形式,一个是POST...
2019-07-16 21:34:19 754
原创 SSM整合的小项目(简单单表CRUD操作)
标题Spring+SpingMVC+Mybatis的集成1.创建项目这个小项目是简单的单表的CRUD,没用到vo包,它只是继承了domian里面的类。2.导包log4jmybatis以及mysql驱动包3.创建springmvc.xmlspring+springmvc集成配置<?xml version="1.0" encoding="UTF-8"?><...
2019-07-13 11:48:08 706
原创 什么是AOP,AOP的底层实现原理
什么是AOP?AOP的底层实现1.什么是AOPAOP(Aspect Oritented Programing) 面向切面编程。AOP采取横向抽取机制,取代了传统的继承纵向继承体系的重复性代码(性能监视,事务管理,安全检查,缓存)。Spring的AOP采用了纯java实现,不需要专门的编译过程和类加载器,在运行期间通过动态代理的方式向目标类注入增强代码。2.AOP应用场景说明对程序进行增...
2019-07-11 11:25:51 9443
原创 HTTP协议与TCP协议的区别
什么是http?HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。 HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给P...
2019-07-11 11:21:26 6721
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人