- 博客(61)
- 资源 (2)
- 收藏
- 关注
原创 Spring Cloud Alibaba 项目实战
CloudAlibabaTemplate项目GitHub地址:https://github.com/pengchenyu111/CloudAlibabaTemplate一、简介 本项目使用Spring Cloud Alibaba的技术组件来进行开发,涉及到了服务拆分、服务限流降级熔断、鉴权、远程调用、短信邮件服务等,编写此项目的目的是为了以此为模板,以后编写新项目时可以直接把其中的一些模块拿来用。 本人之前为了拓宽技术栈,在B站上学习Spring Cloud Alibaba,老师讲的不错,这里推
2021-07-18 21:22:06 20578 1
原创 Scrapy——爬虫部署、定时任务
1.安装依赖pip install scrapypip install scrapyd # scrapyd服务pip install scrapyd-client # scrapyd0client 客户端pip install spiderkeeper # scrapy可视化部署工具2.修改scrapyd配置# 找到scrapyd的配置文件路径sudo find / -name default_scrapyd.conf然后 vim 路径文件,修改以下内容:# 第一项是允许访问的
2021-04-29 16:46:06 1509 1
原创 MathJax——markdown公式输入语法
官方文档:https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference常用:https://www.jianshu.com/p/a0aa94ef8ab2
2021-04-19 20:55:26 327
原创 服务器环境配置(CentOS7)
服务器环境配置虚拟机网络配置Xshell连接VMware虚拟机中的CentOSMySQL安装配置centos7安装mysqlCentOS7安装MySQL(完整版)注:开始看第一篇文章,安装完MySQL后,配置看第二篇文章
2020-12-16 11:15:40 1182
原创 JVM——执行流程、内存模型
JVM学习脑图执行流程内存模型JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区 域【JAVA堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束 而 创建/销毁(在 Hotspot VM 内,每个线程都与操作系统的本地线程直接映射, 因此这部分内存区域的存/否跟随本地线程的 生/死对应)。线程共享区域随虚拟机...
2020-04-30 22:50:30 208
原创 Java并发编程——线程池
使用原因创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变 长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候 就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。从 JDK1.5 开始,Java API 提供了 Executor 框架让你可以创建不同的线程池。Executor框架Executor框架包括3大部分:任务。也就是工作单元...
2020-04-30 01:44:31 233
原创 Java并发编程——ReentrantLock
简介ReentantLock 继承接口 Lock 并实现了接口中定义的方法,他是一种可重入锁,除了能完 成 synchronized 所能完成的所有工作外,还提供了诸如可响应中断锁、可轮询锁请求、定时锁等 避免多线程死锁的方法。Lock接口void lock()执行此方法时, 如果锁处于空闲状态, 当前线程将获取到锁. 相反, 如果锁已经 被其他线程持有, 将禁用当前线程, 直到当前线程...
2020-04-28 23:37:39 181
原创 Java基础——final、finally、finalize
final如果一个类被声明为final,意味 着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词。将 变量声明为final,可以保证它们在使用中不被改变,被声明为final的变量必须 在声明时给定初值,而在以后的引用中只能读取不可修改。被声明为final的方 法也同样只能使用,不能在子类中被重写。finally通常放在try…catch…的后面构造总是执行代码块...
2020-04-26 15:18:02 158
原创 Java并发编程——Synchronized
原理这篇大佬的讲的还是比较详细了:深入理解Java并发之synchronized实现原理然后记住几幅图:
2020-04-26 14:14:02 155
原创 Java并发编程——线程常用方法
方法名static功能说明注意start()启动一个新线 程,在新的线程 运行 run 方法 中的代码start 方法只是让线程进入就绪,里面代码不一定立刻 运行(CPU 的时间片还没分给它)。每个线程对象的 start方法只能调用一次,如果调用了多次会出现 IllegalThreadStateExceptionrun()新线程启动后会 调用的方法如果在构...
2020-04-22 22:51:52 135
原创 Java并发编程——线程创建
法一:直接通过ThreadThread t = new Thread(){ @Override public void run() { log.debug("running"); } };t.setName("t1");t.start();法二:使用Runnable接口...
2020-04-22 21:59:41 127
原创 Java并发编程——进程与线程
进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 。当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器 等),也有的程序只能启动一个实例进程(...
2020-04-22 20:30:12 184
原创 Java并发编程——Java线程内存模型JMM
原理大佬的讲解,基础知识还是蛮清楚的,但是对原子性那块讲的不是很透彻:深入理解Java内存模型可见性在多处理器下,为了保证各个处理器的缓存是一致的,就会实现缓存一致性协议,每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置成无效状态,当处理器对这个数据进行修改操作的时候,会重新从系统内存中把数据读...
2020-04-22 17:40:27 159
原创 MySQL——锁
简介锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。MySQL中的锁表级锁:开销小,加锁快;不会出现死锁;锁...
2020-04-20 22:34:27 134
原创 MySQL——优化策略
优化顺序最好是按照以下顺序优化:SQL 语句及索引的优化数据库表结构的优化系统配置的优化硬件的优化SQL和索引优化索引优化索引优化时中最要的手段之一,如何优化,看我的另一篇文章:MySQL——索引优化策略SQL优化定位慢SQL附:通过 show status 命令了解各种 SQL 的执行频率show status like 'Com_%';Com_xxx 表示每个...
2020-04-20 18:41:35 430
原创 MySQL——索引优化策略
独立的列“独立的列”指的是索引列不能是表达式的一部分,也不能是函数的参数。如果查询中的列不是独立的,那么MySQL就不会使用索引。例如下面两个例子均不会使用索引:select cost from customer where cost + 1 = 5;select MAX(cost) from customer ...
2020-04-19 22:25:32 286
原创 MySQL——常见索引的存储类型
B+树不同的存储引擎其索引的存储结构稍有不同,比如:MyISAM:非聚簇索引,data里存的是指向数据地址的指针,所以有三个文件(.frm .MYI .MYD)InnoDB:聚簇索引,data里就放的是数据,所以有两个文件(.frm .idb)Hashhash索引是基于hash表实现的,只有查询条件精确匹配hash索引中的所有列的时候,才能用到hash索引。对于hash索引中的所有...
2020-04-19 17:59:42 1163
原创 MYSQL——存储引擎(表类型)
简介插件式存储引擎是 MySQL 数据库最重要的特性之一,用户可以根据应用的需要选择如 何存储和索引数据、是否使用事务等。MySQL 默认支持多种存储引擎,以适用于不同领域 的数据库应用需要,用户可以通过选择使用不同的存储引擎提高应用的效率,提供灵活的存 储,用户甚至可以按照自己的需要定制和使用自己的存储引擎,以实现最大程度的可定制性。存储引擎的类型显示类型的命令查看当前默认的存储...
2020-04-18 22:56:12 197
原创 传输层——UDP
简介RFC768定义的UDP只是做了传输协议能够做的最少工作,它仅在IP的数据报服务上增加了两个最基本的服务:复用和分用以及差错检测。UDP是非面向连接的、不可靠的传输协议。不需要建立连接 不支持流量控制和拥塞控制,没有确认/重传机 UDP段在传输过程中可能会丢失、失序和延迟 支持广播和组播,这对多媒体传输是非常有用的和TCP的区别UDP无需建立连接,因此UDP不会引入建立连接...
2020-04-18 17:29:23 219
原创 传输层——TCP
简介TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复等问题。主要特点如下:TCP是面向连接的传输层协议每条TCP连接只能又两个端点,即点对点(一对一)提供可靠的交付服务,保证数据的可靠、有序、无丢失和不重复TCP提供全双工通信,允许通信双方的应用进程在任何时候都能接受数据,为此TCP在连接的两端都设有发送缓存和接收缓存。...
2020-04-18 00:16:24 940
原创 用户认证——JWT原理
小知识:Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。JDK 中提供了非常方便的 **BASE64Encoder** 和 **BASE64Decoder**,用它们可以非常方便的完成基于 BASE64 的编码和解码
2020-04-16 12:19:45 251
原创 FastDFS——原理与工作流程
简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上...
2020-04-14 14:11:31 665 1
原创 Redis数据类型——zset(sorted set)
简介新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式需要的存储结构:新的存储模型,可以保存可排序的数据sorted_set类型:在set的存储结构基础上添加可排序字段数据结构它类似于 Java 的 SortedSet 和 HashMap 的结合体,一方面它是一个 set,保证了内部 value 的唯一性,另一方面它可以给每个 value 赋予一...
2020-04-14 01:04:09 661
原创 Redis数据类型——set
简介新的存储需求:存储大量的数据,在查询方面提供更高的效率需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的数据结构Redis 的集合相当于 Java 语言里面的 HashSet,它内部的键值对是无序的唯一的。它的内部实现相当于一个特殊的字典,字典中所有的 value 都是一个值...
2020-04-14 00:13:22 141
原创 Java基础——HashSet
这篇大佬的文章,对底层源码有所研究:https://blog.csdn.net/Sugar_Rainbow/article/details/68257208?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.no...
2020-04-14 00:04:27 99
原创 Redis数据类型——list
简介数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序list类型:保存多个数据,底层使用双向链表存储结构实现数据结构压缩列表先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是 ziplist,也即是压缩列表。struct ziplist<T> { int32 z...
2020-04-13 23:47:47 137
原创 Redis数据类型——hash
简介新的存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息需要的存储结构:一个存储空间保存多个键值对数据hash类型:底层使用哈希表结构实现数据存储hash存储结构优化 :如果field数量较少,存储结构优化为类数组结构如果field数量较多,存储结构使用HashMap结构数据结构Redis 的字典相当于 Java 语言里面的 HashMap,它是无序字典。...
2020-04-13 00:25:53 251 1
原创 Java基础——HashMap
关于原理,这篇文章对源码进行了分析,值得一看:https://blog.csdn.net/woshimaxiao1/article/details/83661464关于原理,这篇思路很清晰:https://blog.csdn.net/visant/article/details/80045154?depth_1-utm_source=distribute.pc_relevant_ri...
2020-04-12 23:59:24 111
数据库文件及用户界面源码.zip
2019-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人