自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南陈的博客

技术的发展都是一个渐变的过程,要想掌握技术就必须先了解其中的历史。

  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

原创 第七章 读【MySql高级特性——分区】有感

高级特性:分区、视图、外键、存储过程(触发器、存储函数和事件)、绑定变量、插件、字符集、全文索引、XA事务(分布式事务)、查询缓存。一、分区对用户来说,分区表是一张逻辑表,但是底部由多个物理子表组成。意味着索引也按照分区子表定义,没有全局索引。1、分区的作用表数据非常多,无法全部加载到内存中,或者有热点数据,其他的是历史数据。 分区表的数据更加容易维护。(对单独一个分区进行CURD) 分区表的数据可以分布到不同的物理设备上,高效利用硬件设备。2、分区的限制一张表最多有1

2021-08-23 14:28:48 193

原创 第五章 读【创建高性能索引】有感

一、索引的类型索引有很多种类型,为不同的场景提供更好的性能。不同存储引擎的索引工作方式也不一样,也并不是所有的存储引擎都支持所有类型的索引。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 145

原创 第四章 读【schema与数据类型优化】有感

一、选择优化的数据类型整数类型:为整数类型指定宽度,如:int(11),它不限制值的合法范围,只是规定了显示字符的个数。整数类型有UNSIGNED属性,如果不需要负数范围,最好使用该属性以提高存储数据上线。字符串类型:VARCHAR:存储可变字符串CHAR:存储定长字符串,Mysql会自动删除末尾的空格日期和时间类型:DATATIME的时间范围从1001年到9999年,精度为秒,使用8位字节存储;TIMEATAMP的时间范围从1970年到2038年,使用4位字节存储;比较

2021-08-09 17:16:43 115

原创 记:印象深刻的开发经历

一、有个需求:将PDF文件转图片上传到腾讯云。之前一直没有做过pdf转图片的功能,在网上搜了一下,发现有三种方法:icepdf、pdfbox、jedal。对比一下:1、使用icepdf转换,会带官方水印,还需要专门的方法去水印,技术复杂;2、使用pdfbox转换,能识别大部分内容,部分内容无法识别;3、使用jedal转换,对中文不友好,而且官方很久不维护了。最终选择使用pdfbox。第一步:引入jar包 <dependency>

2021-06-29 10:28:42 214

原创 个人对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 163

原创 当大量恶意请求攻击某个接口时,会影响正常用户的使用,怎么应对这种情况?

这里要解决两个问题:1、高并发;2、如何识别恶意用户高并发是一个概念,很难讲请求量达到多少就是高并发。理论上每个接口都会出现高并发。实际上,我们只关心一些热点业务的并发数,这个和硬件、业务的复杂程度、容器节点数都有关。处理高并发的常规操作就是扩容和缓存,里面的操作细节就先不讲。如何识别恶意用户?实际中,程序员什么情况下意识到被攻击了?一般都是等用户反馈说应用访问很卡之类的,查看检查日志发现大量报错,因此在这里就突出了日志的重要性。但是有些人喜欢写continue或return..

2021-04-16 15:53:28 1424

原创 如何防止会话信息的泄漏

跟踪会话的四种方式: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 997 1

原创 为什么要禁用Cookie?

思考一:为什么要禁用Cookie?首先,cookie是服务端生成返回给客户端的,客户端会保存cookie到本地,甚至会永久保存。cookie有跨域(协议、域名、端口其中有一个不同就会产生跨域问题)问题。cookie是和http捆绑在一起的,应该是当时科学家在设计http协议时就定义死了一个叫做cookie的字段用来保存会话信息。既然http协议定义了一个cookie字段用来保存会话信息,那么我们就可以将会话信息保存到cookie里面,并返回给客户端。cookie:加密(用户...

2021-04-14 17:24:30 3383

原创 java常用设计模式

一、设计模式的前世今生起源于建筑领域:克里斯托弗·亚历山大——世界著名建筑设计师模式的定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。1987年,Kent Beck和Ward Cunningham受到他作品的影响,将模式语言应用道路了软件设计和开发中。1994年“四人组(Gang of Four,简称GoF,分别是Erich Gamma, Richard Helm, .

2020-09-07 15:49:48 336

原创 java基础一

equals与==的区别2、hashcode3、String、StringBuffer与StringBuilder的区别

2019-10-31 21:57:35 153

原创 对对称加密与非对称加密算法的一点理解

平时在工作中一直有使用到对称加密与非对称加密算法,以前一直是拿来就用,没有仔细想过里面的实现原理。今天突然有兴趣和时间研究下。1、什么是对称加密算法?加密和解密都使用相同密钥的算法。公式:C=E(P,e) , P=D(C,d) ,其中C是密文,P是明文,如果e=d,则函数P与函数D是对称函数,也即是对称算法。2、什么是非对称加密算法?加密和解密使用不同密钥的算法。...

2019-10-28 21:59:20 503

原创 Sql预编译

一、什么是sql的编译?当数据库接收到sql时,需要词法和语义的解析,优化sql,制定执行计划。每次编译都比较耗时间。二、如何减少编译?在实际开发中,对数据库的基本操作就是curd,每次执行sql都有经过编译过程,那么就需要消耗大量的时间,因此就有了预编译的过程,预编译可以想象成将sql变成一个函数,在需要的时候传参进行即可使用。这样就能达到一次编译,多次运行的效果。三、预编译的实...

2019-07-06 10:47:18 2448

原创 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 237

原创 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 356

原创 添加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 2329

原创 使用fdldler对手机进行抓包

第一步:打开fiddler,点击Tools,选中第一项Fillder Options第二步:如下图,选中对应的选框。第三步:下载证书。点击Actions,选中第一项,下载证书。第四步:如何需要抓取手机端(终端)的包,则需要Fillder监听设置端口,然后在手机的WIFI里面设置代理IP,端口。(注意:电脑和手机要在同一个网段中)。我自己是在笔记本里面开发wifi给...

2019-04-14 09:50:48 8791

原创 log4j使用总结

一、配置文件详解 首先讲下日志等级,等级从高到底分别是:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。总共7个等级,其中最常用的是ERROR、WARN、INFO、DEBUG。在配置文件中,我们可以根据需要设置日志等级,当设置为ERROR等级时,可以打印出ERROR以下的日志信息,当设置为DEBUG等级时,会将DEBUG等级以及以下的等级的日志打印出...

2019-04-11 23:36:01 244

原创 关于redis使用的一点理解(一)

redis简介: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,se...

2019-03-19 11:51:23 219

原创 设计模式——装饰模式

装饰模式的结构图如下:基本介绍:装饰模式是一种替代继承的技术,通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。通俗来说:在以前,我们都是通过继承的方式扩展子类的功能,但是通过装饰方式就不需要了。而且类只能继承一个类,扩展功能的能力有限,通过装饰的方式,我们可以很简单给对象增加多种职责。在这里有一个点需要注意...

2019-03-18 12:33:50 198

原创 mysql高并发优化

一、Mysql高并发处理例子1:新增手机号码,先判断是否已经存在,如果不存在则插入,在低并发访问情况下不会发生问题,在高并发下则会插入多条数据。解决方案:通过写sql实现,在插入之前先判断是否已经存在数据。 INSERT INTO test SET(id,username,phone) SELECT '1','测试','10086' FROM DUALWHERE NOT EXIS...

2019-03-14 14:06:26 2662

转载 Eureka的工作原理以及它与ZooKeeper的区别

1、Eureka 简介:Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。1.基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka;- 处于不同节点的eureka通...

2019-03-14 11:02:23 167

转载 关于“无状态的HTTP连接提供有状态的连接

HTTP是无状态链接,请求-回应完毕后客户端和服务器之间的链接就会断开。那么服务器是如何记住用户的,例如网上购物车,每次新添加购物项,上次添加的 购物项还能存在,这是如何实现的?可以推测应该是客户端或服务器端将购物的信息记录下来,创建一个新的链接时候读取记录下来的数据,这样就实现无状态的 HTTP连接提供有状态的连接的效果。服务器端:在网络服务器看来,所有的HTTP请求都独立于之前的请求,也就...

2019-03-14 09:53:46 2067

原创 重新学习Spring框架(一)

一、Spring IOC 控制反转IOC容器就是Bean,Spring在启动的时候就已经将所有的bean创建成功,就是说Spring帮助我们创建和管理bean。因此我们在使用时不需要自己用new方式创建对象,可以通过依赖注入的方式获得Spring创建好的bean。二、Spring是如何启动的?Spring的启动流程是java规定好的,是有一个固定入口的。Spring启动是建筑在Se...

2019-03-13 09:45:32 209

原创 微服务与Spring Cloud

微服务与Spring Cloud要想搭建一套微服务架构需要考虑如下几个问题:1、微服务之间的通信协议,需要使用同一的通信协议;2、网络拥塞与延迟,一个请求跨多个微服务必定会增大响应时间,可以通过分析请求的具体情况通过缓存或者限制请求数量解决(比如MQ);3、数据一致性问题,每个微服务都要自己的数据库,比如订单系统下单后,但库存系统没有商品。这就是数据一致性和完整性带来的影响,...

2019-03-09 10:08:42 309

原创 从分布式系统到微服务的一点理解

从分布式系统到微服务----------------------------------------------------------------------------------------------------------------演变过程:分布式系统——&gt;SOA系统——&gt;微服务。SOA:面向服务的架构;Paas:平台即服务;SaaS:软件即服务;-...

2019-03-07 10:05:29 940

原创 对系统架构的一点理解

架构的演变--------------------------------------------------------------------------------------------------------------一个单机:一开始时单机架构,用户直接访问服务。缺点:1、不安全,当服务器宕机时,整个系统就无法使用;2、高并发,单机架构处理业务的能力有...

2019-03-06 16:30:03 856

原创 关于数据库集群的详细理解

在工作中,我接触到了mysql集群,mysql集群的实现方案有很多种,但是我在项目中真正用到的是主从结构,一主一从结构或者一主多从结构。目的是备份数据和实现负载均衡。举个例子:有四个mysql实例:mysql实例A、mysql实例B、mysql实例C、mysql实例D。默认实例A为主库,其他为从库。由于A是主库,所以系统的所有数据库操作请求都要经过A才能达到B、C、D库。当A接收到请求时,...

2019-02-12 16:26:05 2841 1

原创 关于mybatis、Hibernate、Jpa的一些经验之谈

参加工作几年,也有了一点小小心得,闲暇时将自己平时遇到的一些问题思考写下来,希望有志同道合的朋友一起参与讨论,共同进步。网上已经有很多关于mybatis、hibernate、jpa的基本知识介绍了,这些我也不打算全部复制粘贴下来,我主要是想讲一下自己的想法和理解,有什么错误的地方请大家指正,谢谢!首先讲下jpa,在之前的开发工作中用的最多的就是mybatis和hibernate,在最近的一...

2018-12-02 11:39:08 3494

Spring常用注解

工作中常用spring注解以及注解之间的继承关系思维导图。

2019-04-14

浅谈千万级用户应用系统

几千个人用的系统跟几千万人用的系统差别在哪里?微服务架构能否提高系统的并发能力?

2018-07-19

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

TA关注的人

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