- 博客(73)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringCloud使用笔记
Eureka[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpYoj6uD-1588602012736)(C:\Users\Tolman\AppData\Roaming\Typora\typora-user-images\1588598077011.png)]Register服务注册Eureka Client在第一次心跳时间向Eureka Server注册...
2020-05-05 22:52:44
402
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Zookeeper快速入门&集群搭建
Zookeeper快速入门与集群环境搭建Zookeeper基础知识、体系结构、数据模型Zookeeper是一个类似linux、hdfs的树形文件结构,zookeeper可以用来保证数据在(Zookeeper)集群之间的数据的事务性一致性,zookeeper也是我们常说的CAP理论中的CP(强一致性);Zookeeper有一个概念叫watch(也称之为事件),是一次性触发的,当watch...
2020-04-30 19:43:24
181
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 分布式消息队列-RabbitMQ
RabbitMQ核心APIExchange属性name:Exchange名称type:Exchange类型directtopicfanoutheadersdurability:是否持久化auto delete:当最后一个绑定到Exchange上的Queue删除后,自动删除该Exchangeinternal:当前Exchange是否用于RabbitMQ内部使用,默认为f...
2020-04-30 16:38:16
232
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 服务治理—Dubbo
Dubbo底层协议Dubbo:以下RMI:底层采用阻塞式(同步传输)的短连接+JDK中标准的二进制序列化适用场景:参数数据包大小不一,服务提供者和服务消费者的个数相近Hessian 用于集成Hessian的服务,基于HTTP短连接,采用Servlet向外暴露服务适用场景: 参数数据包较大,服务提供者的数量远多于消费者数量HTTP:最简单的基于HTTP表单的协议适用场景...
2020-04-25 13:22:50
178
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 设计模式
设计模式分类创建型模式工厂方法模式抽象工厂模式建造者模式单例模式原型模式结构型模式适配器模式装饰者模式代理模式外观模式桥接模式组合模式享元模式行为型模式策略模式观察者模式责任链模式备忘录模式模板方法模式迭代器模式中介者模式命令模式访问者模式解释器模式状态模式单例模式定义:保证一个类仅有一个实例,并提供一个全局访问点使用场景:想保...
2020-04-09 11:58:38
197
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java调优总结
JVMJVM内存结构垃圾回收算法思想:枚举根节点,做可达性分析根节点:类加载器、Thread、虚拟机栈的本地变量表、static成员、常量引用、本地方法栈的变量标记清除算法算法:是分为"标记"和”清除“两个阶段,首先标记出所有需要回收的对象,在标记完成后统一回收所有缺点:效率不高,标记和清除两个过程的效率都不高;产生碎片,碎片太多会导致提前GC复制算法它将可用内存按容...
2020-04-08 16:18:06
213
原创 微服务的拆分规范和原则
微服务的拆分规范和原则微服务拆分没有一个绝对正确的方案,服务拆分的粒度完全要根据业务场景来规划,而随着业务的发展,原先的架构方案也需要做调整。既然没有标准答案,那我们就使出“乱拳打死老师傅”的招数,想怎么拆怎么拆好了?且慢且慢,这不就成了暴力拆迁了吗,现在“扫黑除恶”正当头,我们可不能这么干。这里总结了几个服务拆分的心法秘籍,可以照着这个路子去思考服务拆分的粒度。拆迁方案压力模型拆分压力模型简单来说就是用户访问量,我们要识别出某些超高并发量的业务,尽可能把这部分业务独立拆分出来。这么做的原因非常简单
2022-02-19 20:14:52
840
原创 Linux调优相关指令
TIPS本文基于CentOS 7编写,理论支持所有所有版本Linux发行版,部分命令的个别参数在不同版本中可能存在细微的差异。入门级# 切换目录cd# 示例# 切换到上一层目录cd ..# 切换到/opt/softwarecd /opt/software# 显示工作目录pwd# 显示指定工作目录下之内容ls# 示例# 列出当前目录中文件及目录的详情ls -l# 列出当前目录及其子目录中文件及目录的详情ls -lR# 创建目录mkdir# 示例# 创.
2021-06-30 12:28:11
404
原创 代码审查
代码审查的好处帮助提高代码质量上下文共享帮助新人快速融入项目帮助开发人员成长帮助影响力建设代码审查的代价专门的时间和精力:选择合适的代码审查方式可能引起团队成员的不适:共同技巧、正向反馈什么时候进行审查有代码改动就可以代码审查频率集中式异步式常见代码审查工具GIT、SVNGerritUpsource代码审查流程范根检查法轻量级审查流程结对编程同步代码审查异步代码审查代码审查关注点编码风格略命名规范略功能性测
2021-05-23 17:27:44
151
原创 Percona Toolkit使用
Percona Toolkit使用pt-query-digestTIPS官方文档:pt-query-digest作用分析日志(包括binlog、General log、slowlog)、processlist以及tcpdump中的查询语法pt-query-digest [OPTIONS] [FILES] [DSN] 常用OPTIONS--create-review-table 当使用--review参数把分析结果输出到表中时,如果没有表就自动创建--cre
2021-04-13 16:41:09
196
原创 MySQL SQL性能分析
MySQL SQL性能分析TIPS本文基于MySQL 8.0本文探讨如何深入SQL内部,去分析其性能,包括了三种方式:SHOW PROFILEINFORMATION_SCHEMA.PROFILINGPERFORMANCE_SCHEMASHOW PROFILESHOW PROFILE是MySQL的一个性能分析命令,可以跟踪SQL各种资源消耗。使用格式如下:SHOW PROFILE [type [, type] ... ] [FOR QUERY n] [LIMIT
2021-04-13 08:37:04
147
原创 Springboot启动原理详细解析
我们开发任何一个Spring Boot项目,都会用到如下的启动类1 @SpringBootApplication2 public class Application {3 public static void main(String[] args) {4 SpringApplication.run(Application.class, args);5 }6 }从上面代码可以看出,Annotation定义(@SpringBootApplication)和类定义(
2021-04-02 13:19:23
2790
原创 线程创建与执行
public class TestThread { public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException { //extends from Thread new MyThread().start(); //implements from Runnable new Thread(n
2021-03-25 01:05:01
162
原创 Java IO
Java IOInputStream&OutputStreampublic class Copy { public static void main(String[] args) throws IOException { if (args.length != 2) { System.out.println("para missed"); System.exit(1); } //Sy
2021-03-23 19:38:01
67
原创 Utils
加密1.SecureMethod.javapackage com.nok.dragon.util.method;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import java.security.*;import java.security.inte...
2021-02-28 22:15:16
132
原创 ThreadLocal的实现原理
ThreadLocal的实现原理 ThreadLocal 如何保证这些对象只被当前线程访问呢?下面让我们一起深入 ThreadLocal的内部实现。 我们需要关注的自然是 ThreadLocal的set()方法和get()方法。先从set()方法说起:public void set (T value) { Thread t=Thread.currentThread (); ThreadLocalMap map = getMap(t); if (map != null
2021-01-19 20:04:15
214
1
原创 MySQL索引——B+Tree
★说到 B+Tree,需要从索引聊起,索引就如同字典,我们可以使用目录快速定位到所要查找的内容,那么索引跟目录的作用类似,在数据库表记录中,利用索引,可以快速过滤查找到数据记录。”1. 索引结构分类索引有很多分类,例如 B-tree 索引,哈希索引,全文索引等等,索引的实现是在存储引擎层,并不是在后端服务器层,所以不同的存储引擎支持的索引结构也不一定一样 1.1B-tree 索引 B-tree 索引普遍存在于存储引擎中,他使用 B-tree 数据结构来存储数据,如果对树形数据结构比较了解的话,就.
2020-12-12 00:26:07
399
原创 跨域问题及解决方法
理解跨域问题现在越来越多的项目就算是一个管理后端也偏向于使用前后端分离的部署方式去做,为了顺应时代的潮流,一前后端分离就产生了跨域问题,其实跨域产生的原因并不是前后端分离导致的跨域产生的条件使用xmlHttpRequest,即我们通常说的ajax请求浏览器做了这个事访问的域名不同,即访问的html页面是a域名下的,但内部js发送的ajax请求的目标地址却是b域名以上三个条件缺一不可,尤...
2020-12-11 23:20:21
382
原创 Spring IoC&AOP
Spring IoC&AOPSpring IoC简介 Spring通过一个配置文件描述Bean与Bean间的依赖关系,利用Java的反射机制实例化Bean并建立Bean之间的依赖关系。Spring的IoC容器在完成这些底层工作的基础上,还提供了Bean实例缓存管理,Bean生命周期管理、Bean实例代理、事件发布和资源装载等高级服务。Spring Bean作用域 Spring为Bean定义了5种作用域,分别为Singleton/单例、Prototype/原型、Request/请求级别、S
2020-11-30 22:56:49
141
原创 MySQL数据库开发的36条军规
核心军规尽量不在数据库做运算控制单表数据量 纯INT不超过10M条,含Char不超过5M条保持表身段苗条平衡范式和冗余拒绝大SQL,复杂事务,大批量任务字段类军规用好数值字段,尽量简化字段位数把字符转化为数字优先使用Enum或Set避免使用Null字段少用并拆封Text/Blob不在数据库中存图片索引类军规谨慎合理添加索引字符字段必须建立前缀索引?不在索引列做运算自增列或全局ID做InnoDB主键尽量不用外键SQL类军规SQL尽可能简单保持事务连接短小
2020-10-24 00:22:36
318
原创 Spring常用注解
类别 注解 说明 Bean声明 @Component 定义基础层的通用组件,没有明确的角色 @Service 定义业务逻辑层的服务组件 @Repository 在数据反问层定义数据资源服务 @Controller 在展示层使用,用于定义控制器 Bean注入 @Autowire 服务依赖注入,一般用于注入@Component、@Service定义的组件 @Resource 服务依赖注入,一般用于注入@Repository定义的
2020-09-04 16:20:55
121
原创 MySQL数据库诊断命令
MySQL数据库诊断命令TIPS本文基于MySQL 8.0,理论支持MySQL 5.0及更高版本。本文整理了常用的MySQL诊断命令,可以帮助我们了解数据库的运行情况。SHOW PROCESSLIST作用:SHOW [FULL] PROCESSLIST用于查看当前正在运行的线程。如果执行此命令的用户拥有 PROCESS 权限,则可看到所有线程;否则只能看到自己的线程(即与当前登录用户关联的线程)。如果不使用FULL关键字,只在Info字段中展示前100个字符。当遇到“too many co
2020-08-04 21:18:01
277
原创 MySQL数据库索引类型
MySQL数据库索引类型MySQL有多种索引类型,使用不同的角度,分类也有所不同。从数据结构角度,可分为:B+树索引hash索引空间数据索引(R-Tree索引)全文索引从功能逻辑角度,可分为:普通索引唯一索引主键索引组合索引全文索引从物理存储角度,可分为:聚簇索引非聚簇索引数据结构角度B-Tree索引Hash索引空间数据索引(R-Tree索引)全文索引功能逻辑角度普通索引普通索引是基础的索引,没有任何约束,主要用于提高查询效率。示例:CRE
2020-08-03 16:48:01
161
原创 Tomcat调优
Tomcat调优教程TIPS本文基于Tomcat 9.0编写,理论兼容Tomcat 8.x及更高版本。本文来探讨Tomcat的调优。Tomcat调优参数主要调优参数在做Tomcat的调优时,最重要是就是Connector(连接器)的调优了(少数情况下,也可能会配置Executor)下面贴出一段server.xml中的配置:<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150
2020-07-22 19:44:17
537
原创 Idea快捷键(常用)
Navigation:Ctrl + F12 File structure popupCtrl + B , Ctrl + Click Go to declarationCtrl + Alt + B Go to implementation(s)Ctrl + Shift + I Open quick definition lookupCtrl + Shift + B Go to type declarationCtrl + U Go to super-method /
2020-07-20 14:04:20
205
原创 Alfabeto Español
大写字母/Mayúscula小写字母/Minúscula字母名称/NombreAaaBbbeCcceCHchcheDddeEeeFfefeGggeHhhacheIiiJjjotaKkcaLleleLLllelleMmemeNneneÑñeñeOooPppeQqcuRrereSs...
2020-07-17 09:52:59
179
原创 JVM垃圾收集器相关参数总结
JVM内存结构JVM垃圾收集器相关参数本文参数基于JDK 8整理收集器参数及默认值备注Serial-XX:+UseSerialGC虚拟机在Client模式下的默认值,开启后,使用 Serial + Serial Old 的组合ParNew-XX:+UseParNewGC开启后,使用ParNew + Serial Old的组合-XX:ParallelGCThreads=n设置垃圾收集器在并行阶段使用的垃圾收集线程数,当逻辑处理器数量小于8时,n
2020-07-17 00:48:09
840
原创 JVM性能调优工具
JDK内置工具内置工具包括了JDK中提供的常用监控工具以及故障排查工具,主要包括了:监控工具jpsjstat故障排查工具jinfojmapjstackjcmdjhatjhsdb可视化工具jhsdbjconsoleVisualVMJDK Mission Control这些工具从可用性以及授权的不同,主要可以分为三类:正式支持工具:表示这类工具会有长期的技术支持,不同的平台、不同的JDK版本之间,这些工具可能会有一定差异,但总体来说还是比较兼容的。实验性工具:
2020-07-14 15:21:12
141
原创 常见排序算法
常见排序算法import org.junit.Test;import java.util.Arrays;public class Sort { @Test public void testSort() { int[] arr1 = {4, 6, 3, 1, 5, 9}; int[] arr2 = {4, 6, 3, 1, 5, 9}; int[] arr3 = {4, 6, 3, 1, 5, 9}; int[] a
2020-06-04 20:58:55
223
原创 购物车存储形式
购物车存储形式-Cookie无需登录、无需查库、保存在浏览器端优点:性能好、访问快,没有和数据库交互缺点:换电脑购物城数据会丢失数据安全问题购物车存储形式-Session存于用户会话中优点:初期性能较好,访问快缺点:session基于内存,用户量庞大影响服务器性能只存在于当前会话,不适用集群与分布式系统购物车存储形式-数据库存于数据库优点:数据持久化,可在任何地点任何时间访问缺点:频繁读写数据库、造成数据库压力购物车存储形式-Redis存于Redi
2020-05-19 22:28:01
422
原创 ElasticSearch6.6.0集群环境搭建
ElasticSearch6.6.0环境搭建## 三个节点解压elasticsearch-6.6.0.tar.gztar -zxvf elasticsearch-6.6.0.tar.gz -C /usr/local/## 修改配置文件:vim elasticsearch-6.6.0/config/elasticsearch.yml### elasticsearch.yml 配置cl...
2020-05-08 15:24:17
248
原创 Vue安装和引入
## 引入Vue.js> 由于NPM的仓库在国外,资源传输速度慢且可能受制,故使用淘宝镜像源的cnpm+ 安装cnpm ```shell npm install -g cnpm --registry=https://registry.npm.taobao.org ```+ 使用cnpm安装Vue.js ```shell cnpm install vue
2020-05-08 14:30:27
136
原创 分布式消息队列-Kafka快速入门
Kafka快速入门kafka环境安装kafka下载地址:http://kafka.apache.org/downloads.htmlkafka安装环境介绍:节点名称节点作用节点备注hostname:192.168.1.46zookeeper节点kafka注册、配置中心hostname:192.168.1.47zookeeper节点kafka注册...
2020-04-30 20:02:09
178
原创 构建Redis集群(三主三从)
构建Redis集群(三主三从)redis.conf 配置# 开启集群模式cluster-enabled yes# 每一个节点需要有一个配置文件,需要6份。每个节点处于集群的角色都需要告知其他所有节点,彼此知道,这个文件用于存储集群模式下的集群状态等信息,这个文件是由redis自己维护,我们不用管。如果你要重新创建集群,那么把这个文件删了就行cluster-config-file node...
2020-04-30 13:42:45
217
原创 Redis缓存过期处理与内存淘汰机制
Redis 缓存过期处理与内存淘汰机制计算机内存有限,越大越贵,Redis的高并发高性能都是基于内存的,用硬盘的话GG。已过期的key如何处理?设置了expire的key缓存过期了,但是服务器的内存还是会被占用,这是因为redis所基于的两种删除策略redis有两种策略:(主动)定时删除:定时随机的检查过期的key,如果过期则清理删除。(每秒检查次数在redis.conf中的hz配...
2020-04-30 13:10:04
163
原创 SpringBoot集成Redis哨兵
SpringBoot集成Redis哨兵配置spring: redis: database: 1 password: password sentinel: master: redis-master nodes: 192.168.1.190:26379,192.168.1.191:26379,192.168.1.192:26379...
2020-04-30 00:12:51
222
原创 Redis的哨兵模式
Redis的哨兵模式Master挂了,如何保证可用性,实现继续读写什么是哨兵Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是 Redis 高可用解决方案,哨兵可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务宕机后,会把这个master下的某个从服务升级为master来替代已宕机的master继续工作...
2020-04-29 23:47:52
175
原创 Redis的持久化机制
Redis的持久化机制RDB: Redis DataBaseAOF: Append Only FileRedis的持久化机制 - AOF1. 什么是RDBRDB:每隔一段时间,把内存中的数据写入磁盘的临时文件,作为快照,恢复的时候把快照文件读进内存。如果宕机重启,那么内存里的数据肯定会没有的,那么再次启动redis后,则会恢复。2. 备份与恢复内存备份 --> 磁盘...
2020-04-29 22:52:24
187
原创 Hibernate数据验证
Hibernate数据验证Bean:public class UserBo { /** * Bean validateidation 中内置的 constraint * @Null 被注释的元素必须为 null * @NotNull 被注释的元素必须不为 null * ...
2020-04-29 18:31:47
160
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人