- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 第七章 读【MySql高级特性——分区】有感
高级特性:分区、视图、外键、存储过程(触发器、存储函数和事件)、绑定变量、插件、字符集、全文索引、XA事务(分布式事务)、查询缓存。一、分区对用户来说,分区表是一张逻辑表,但是底部由多个物理子表组成。意味着索引也按照分区子表定义,没有全局索引。1、分区的作用表数据非常多,无法全部加载到内存中,或者有热点数据,其他的是历史数据。 分区表的数据更加容易维护。(对单独一个分区进行CURD) 分区表的数据可以分布到不同的物理设备上,高效利用硬件设备。2、分区的限制一张表最多有1
2021-08-23 14:28:48 239
原创 第五章 读【创建高性能索引】有感
一、索引的类型索引有很多种类型,为不同的场景提供更好的性能。不同存储引擎的索引工作方式也不一样,也并不是所有的存储引擎都支持所有类型的索引。1、B-Tree索引https://www.cs.usfca.edu/~galles/visualization/BTree.htmlB-Tree是满足下列条件的数据结构:d为大于1的一个正整数,称为B-Tree的度。h为一个正整数,称为B-Tree的高度。每个非叶子节点由n-1个key和n个指针组成,其中d<=n<=2d。..
2021-08-11 11:39:09 199
原创 第四章 读【schema与数据类型优化】有感
一、选择优化的数据类型整数类型:为整数类型指定宽度,如:int(11),它不限制值的合法范围,只是规定了显示字符的个数。整数类型有UNSIGNED属性,如果不需要负数范围,最好使用该属性以提高存储数据上线。字符串类型:VARCHAR:存储可变字符串CHAR:存储定长字符串,Mysql会自动删除末尾的空格日期和时间类型:DATATIME的时间范围从1001年到9999年,精度为秒,使用8位字节存储;TIMEATAMP的时间范围从1970年到2038年,使用4位字节存储;比较
2021-08-09 17:16:43 146
原创 记:印象深刻的开发经历
一、有个需求:将PDF文件转图片上传到腾讯云。之前一直没有做过pdf转图片的功能,在网上搜了一下,发现有三种方法:icepdf、pdfbox、jedal。对比一下:1、使用icepdf转换,会带官方水印,还需要专门的方法去水印,技术复杂;2、使用pdfbox转换,能识别大部分内容,部分内容无法识别;3、使用jedal转换,对中文不友好,而且官方很久不维护了。最终选择使用pdfbox。第一步:引入jar包 <dependency>
2021-06-29 10:28:42 275
原创 个人对Servlet的理解
它定义了开发java项目的一套规范。这个规范有什么内容:1、首先这个规范有两种实现方式:web.xml和注解;2、定义了servlet容器、定义了servlet对象的创建方式、以及servlet处理具体业务service方式;3、如何创建管理servlet对象,servlet实例的生命周期,如何处理Http协议请求与响应,会话跟踪与web.xml为例,实现servlet规范,步骤如下:1、加载初始化信息:applicationContext.xml;2、servlet规范规.
2021-04-20 17:35:17 205
原创 当大量恶意请求攻击某个接口时,会影响正常用户的使用,怎么应对这种情况?
这里要解决两个问题:1、高并发;2、如何识别恶意用户高并发是一个概念,很难讲请求量达到多少就是高并发。理论上每个接口都会出现高并发。实际上,我们只关心一些热点业务的并发数,这个和硬件、业务的复杂程度、容器节点数都有关。处理高并发的常规操作就是扩容和缓存,里面的操作细节就先不讲。如何识别恶意用户?实际中,程序员什么情况下意识到被攻击了?一般都是等用户反馈说应用访问很卡之类的,查看检查日志发现大量报错,因此在这里就突出了日志的重要性。但是有些人喜欢写continue或return..
2021-04-16 15:53:28 1530
原创 如何防止会话信息的泄漏
跟踪会话的四种方式:1、URL重写;2、隐藏表单域;3、Cookie;4、Session;5、根据Session原理,自定义。以我的理解:会话ID,就是用来标识用户的唯一标识,姑且先叫做sessionId。这个sessionId如何创建?可以通过Session对象创建,也可以自定义创建。1、URL重写,就是将sessionId拼接在请求url中,服务端解析url时获取会话ID;2、隐藏表单域,则是将sessionId放到form表单中一起提交;3、Cookie,则是通
2021-04-16 15:22:40 1157 1
原创 为什么要禁用Cookie?
思考一:为什么要禁用Cookie?首先,cookie是服务端生成返回给客户端的,客户端会保存cookie到本地,甚至会永久保存。cookie有跨域(协议、域名、端口其中有一个不同就会产生跨域问题)问题。cookie是和http捆绑在一起的,应该是当时科学家在设计http协议时就定义死了一个叫做cookie的字段用来保存会话信息。既然http协议定义了一个cookie字段用来保存会话信息,那么我们就可以将会话信息保存到cookie里面,并返回给客户端。cookie:加密(用户...
2021-04-14 17:24:30 3554
原创 java常用设计模式
一、设计模式的前世今生起源于建筑领域:克里斯托弗·亚历山大——世界著名建筑设计师模式的定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。1987年,Kent Beck和Ward Cunningham受到他作品的影响,将模式语言应用道路了软件设计和开发中。1994年“四人组(Gang of Four,简称GoF,分别是Erich Gamma, Richard Helm, .
2020-09-07 15:49:48 393
原创 对对称加密与非对称加密算法的一点理解
平时在工作中一直有使用到对称加密与非对称加密算法,以前一直是拿来就用,没有仔细想过里面的实现原理。今天突然有兴趣和时间研究下。1、什么是对称加密算法?加密和解密都使用相同密钥的算法。公式:C=E(P,e) , P=D(C,d) ,其中C是密文,P是明文,如果e=d,则函数P与函数D是对称函数,也即是对称算法。2、什么是非对称加密算法?加密和解密使用不同密钥的算法。...
2019-10-28 21:59:20 546
原创 Sql预编译
一、什么是sql的编译?当数据库接收到sql时,需要词法和语义的解析,优化sql,制定执行计划。每次编译都比较耗时间。二、如何减少编译?在实际开发中,对数据库的基本操作就是curd,每次执行sql都有经过编译过程,那么就需要消耗大量的时间,因此就有了预编译的过程,预编译可以想象成将sql变成一个函数,在需要的时候传参进行即可使用。这样就能达到一次编译,多次运行的效果。三、预编译的实...
2019-07-06 10:47:18 2579
原创 mysql分区
mysql分区方案:Range分区(Columns Range分区)、List分区(Columns List分区)、Hash分区(Linear Hash分区)、Key分区(Linear Key分区)。一、Range分区:1、当表有主键/unique key时,分区字段必须包含在主键/unique key内;2、Range分区,只有一个分区字段,分区范围必须是连续的,而不能是重叠的;...
2019-04-16 23:43:37 308
原创 mysql的ssl警告
Mon Sep 10 23:07:21 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection mus...
2019-04-14 10:17:02 412
原创 添加mysql依赖异常
在spring+mybatis项目中,在pom.xml添加一下依赖后<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-conn...
2019-04-14 10:10:34 2422
原创 使用fdldler对手机进行抓包
第一步:打开fiddler,点击Tools,选中第一项Fillder Options第二步:如下图,选中对应的选框。第三步:下载证书。点击Actions,选中第一项,下载证书。第四步:如何需要抓取手机端(终端)的包,则需要Fillder监听设置端口,然后在手机的WIFI里面设置代理IP,端口。(注意:电脑和手机要在同一个网段中)。我自己是在笔记本里面开发wifi给...
2019-04-14 09:50:48 8913
原创 log4j使用总结
一、配置文件详解 首先讲下日志等级,等级从高到底分别是:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。总共7个等级,其中最常用的是ERROR、WARN、INFO、DEBUG。在配置文件中,我们可以根据需要设置日志等级,当设置为ERROR等级时,可以打印出ERROR以下的日志信息,当设置为DEBUG等级时,会将DEBUG等级以及以下的等级的日志打印出...
2019-04-11 23:36:01 304
原创 关于redis使用的一点理解(一)
redis简介: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,se...
2019-03-19 11:51:23 250
原创 设计模式——装饰模式
装饰模式的结构图如下:基本介绍:装饰模式是一种替代继承的技术,通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。通俗来说:在以前,我们都是通过继承的方式扩展子类的功能,但是通过装饰方式就不需要了。而且类只能继承一个类,扩展功能的能力有限,通过装饰的方式,我们可以很简单给对象增加多种职责。在这里有一个点需要注意...
2019-03-18 12:33:50 243
原创 mysql高并发优化
一、Mysql高并发处理例子1:新增手机号码,先判断是否已经存在,如果不存在则插入,在低并发访问情况下不会发生问题,在高并发下则会插入多条数据。解决方案:通过写sql实现,在插入之前先判断是否已经存在数据。 INSERT INTO test SET(id,username,phone) SELECT '1','测试','10086' FROM DUALWHERE NOT EXIS...
2019-03-14 14:06:26 2724
转载 Eureka的工作原理以及它与ZooKeeper的区别
1、Eureka 简介:Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。1.基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka;- 处于不同节点的eureka通...
2019-03-14 11:02:23 218
转载 关于“无状态的HTTP连接提供有状态的连接
HTTP是无状态链接,请求-回应完毕后客户端和服务器之间的链接就会断开。那么服务器是如何记住用户的,例如网上购物车,每次新添加购物项,上次添加的 购物项还能存在,这是如何实现的?可以推测应该是客户端或服务器端将购物的信息记录下来,创建一个新的链接时候读取记录下来的数据,这样就实现无状态的 HTTP连接提供有状态的连接的效果。服务器端:在网络服务器看来,所有的HTTP请求都独立于之前的请求,也就...
2019-03-14 09:53:46 2124
原创 重新学习Spring框架(一)
一、Spring IOC 控制反转IOC容器就是Bean,Spring在启动的时候就已经将所有的bean创建成功,就是说Spring帮助我们创建和管理bean。因此我们在使用时不需要自己用new方式创建对象,可以通过依赖注入的方式获得Spring创建好的bean。二、Spring是如何启动的?Spring的启动流程是java规定好的,是有一个固定入口的。Spring启动是建筑在Se...
2019-03-13 09:45:32 245
原创 微服务与Spring Cloud
微服务与Spring Cloud要想搭建一套微服务架构需要考虑如下几个问题:1、微服务之间的通信协议,需要使用同一的通信协议;2、网络拥塞与延迟,一个请求跨多个微服务必定会增大响应时间,可以通过分析请求的具体情况通过缓存或者限制请求数量解决(比如MQ);3、数据一致性问题,每个微服务都要自己的数据库,比如订单系统下单后,但库存系统没有商品。这就是数据一致性和完整性带来的影响,...
2019-03-09 10:08:42 358
原创 从分布式系统到微服务的一点理解
从分布式系统到微服务----------------------------------------------------------------------------------------------------------------演变过程:分布式系统——>SOA系统——>微服务。SOA:面向服务的架构;Paas:平台即服务;SaaS:软件即服务;-...
2019-03-07 10:05:29 969
原创 对系统架构的一点理解
架构的演变--------------------------------------------------------------------------------------------------------------一个单机:一开始时单机架构,用户直接访问服务。缺点:1、不安全,当服务器宕机时,整个系统就无法使用;2、高并发,单机架构处理业务的能力有...
2019-03-06 16:30:03 911
原创 关于数据库集群的详细理解
在工作中,我接触到了mysql集群,mysql集群的实现方案有很多种,但是我在项目中真正用到的是主从结构,一主一从结构或者一主多从结构。目的是备份数据和实现负载均衡。举个例子:有四个mysql实例:mysql实例A、mysql实例B、mysql实例C、mysql实例D。默认实例A为主库,其他为从库。由于A是主库,所以系统的所有数据库操作请求都要经过A才能达到B、C、D库。当A接收到请求时,...
2019-02-12 16:26:05 2926 1
原创 关于mybatis、Hibernate、Jpa的一些经验之谈
参加工作几年,也有了一点小小心得,闲暇时将自己平时遇到的一些问题思考写下来,希望有志同道合的朋友一起参与讨论,共同进步。网上已经有很多关于mybatis、hibernate、jpa的基本知识介绍了,这些我也不打算全部复制粘贴下来,我主要是想讲一下自己的想法和理解,有什么错误的地方请大家指正,谢谢!首先讲下jpa,在之前的开发工作中用的最多的就是mybatis和hibernate,在最近的一...
2018-12-02 11:39:08 3539
数据结构“树”是怎么来的?
2023-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人