自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

my java博客园

主要是java各种自我学习的内容,也有别的技术

  • 博客(78)
  • 资源 (3)
  • 收藏
  • 关注

原创 spring cloud 全家桶 简单介绍

1.spring cloud eureka : 注册中心,可以看到各个服务运行状态,并且各个微服务调用都通过注册中心来找到内网ip进行调用2.spring cloud gateway: 对外的网关,分为zuul版本和F版本,两者最大区别是底层容器不同, zuul版本是servlet, F版本的是webFlu...

2019-03-29 17:34:22 10194

原创 定时任务时间轮算法介绍

可以当做是一个时钟,定时任务是挂载到每个刻度上面的,当随着时间指针不断往前走,走到对应的格子上的时候就会执行对应的定时任务,如果一个刻度上面有多个定时任务,就会形成链表的结构.

2022-06-01 15:05:42 1010

转载 dubbo消费者源码解析

一.服务消费者核心类ReferenceBean1.如果consumer为空,说明dubbo:reference标签未设置consumer属性,如果一个dubbo:consumer标签,则取该实例,如果存在多个dubbo:consumer 配置,则consumer必须设置,否则会抛出异常:“Duplicate consumer configs”。2.如果application为空,则尝试从BeanFactory中查询dubbo:application实例,如果存在多个dubbo:application

2022-05-25 14:35:36 522

转载 dubbo提供者源码解析

dubbo提供者注册流程源码分析

2022-05-23 15:32:44 313

原创 java 工具类HTML占位符替换,并输出为PDF

java 工具类HTML占位符替换,并输出为PDF

2022-05-13 10:09:30 708

原创 Arthas实际业务使用

一.retransform命令可以对已有的类,进行修改后重新加载,并且立即生效1. 反编译对应的类jad --source-only com.xc.service.Impl.UserServiceImpl > /tmp/UserServiceImpl.java2.编辑对应的tmp目录下的类,改动代码3.查找要修改类的classLoaderHash值sc -d *UserServiceImpl | grep classLoaderHash4.编译修改后的类的成class文件

2022-05-12 16:23:34 650

原创 redisson分布式锁原理

一.分布式锁的使用我们使用redisson加分布式锁的时候只需要

2022-05-10 15:09:14 723

转载 LTS分布式定时调度框架原理

LTS分布式定时调度框架简单介绍和基本原理

2022-04-26 09:32:07 1498

原创 java 字符串占位符动态替换值工具类

java 字符串占位符动态替换值工具类

2022-04-21 16:05:29 1492

原创 java工具类 PDF转图片

java工具类 PDF转图片

2022-04-21 15:35:01 917

原创 docker概念介绍和安装教程

镜像: 包括一些容器运行所需要的基础数据,这样才能当镜像实例出来一个容器后,可以正常运行.在Docker里可以创建镜像,也可以从第三方的网站上下载别人已经做好的镜像来使用。可以在https://hub.docker.com/search 搜索镜像,里面包含的镜像常见的有: nginx ,mysql等等.容器:Docker镜像给我们提供应用程序运行的基础,而Docker容器主要是用来真正运行程序员开发的应用程序的。一个Docker镜像可以实例化出来多个容器,而每一个容器之间是独立运行的,没有任

2021-12-15 19:27:33 2372

原创 docker 一些常用的命令和springboot打包更新方案

docker快速上手

2021-12-15 09:58:41 1818

原创 nacos2.0.3 数据库连接不上,报错 No DataSource set

首先我自己的mysql数据库是买的阿里云的RDS,版本是8.0.16的,一开始我以为他会启动自动建立好数据库表,结果并没有,反而一直迷惑性的报错,连接不上数据库.需要首先建立好nacos数据库,并且需要把nacos-mysql.sql的建立表文件,在数据库中建立好spring.datasource.platform=mysql### Count of DB:db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://数据库连接:3306/n..

2021-11-11 16:30:38 5983

原创 Redis 应用场景和问题

一.redis 分布式锁:并发的情况下,同时setNx命令,会不会有问题,Redis是单线程的,所以Redis服务本身没有并发接受命令问题.redis分布式锁主要是靠redis的操作具有原子性和其中两个命令,lua脚本实现的.1.setNx命令在指定的 key 不存在时,为 key 设置指定的值,如果存在则返回0.反之返回1.2.expire命令用于设置 key 的过期时间,主要作用是防止抢占到锁的线程一直不释放锁,造成死锁3.lua脚本redis lua脚本支持将几个命令提

2021-08-03 09:15:17 155

转载 Mysql的 MVCC和隔离级别RR,RC介绍

一.首先介绍一下最基本的事务几个概念:1.脏读: 读到了别人未提交的数据,数据有可能会发生回滚,所以是脏读2.可重复读: 在同一个事务中,多次读取同一条数据,读取结果是一致的,通常对应的是更新操作3.不可重复读: 在同一个事务中,多次读取同一条数据,有可能读取结果是不一致的,读取到了别人更新数据4.幻读: 在同一个事务中,多次读取同一条数据,有可能读取结果是不一致的,读取到了别人插入的数据二.介绍基本的四种隔离级别mysql默认隔离级别是: 可重复度三.Mysql的 MVCC

2021-07-29 12:59:40 2913

转载 Redis三种集群模式

一.主从模式Redis的主从模式指的就是主从复制。1.优点:①同一个Master可以同步多个Slaves。Slave同样可以接受其它Slaves的连接和同步请求,这样可以有效的分载Master的同步压力。②Master Server是以非阻塞的方式为Slaves提供服务。所以在Master-Slave同步期间,客户端仍然可以提交查询或修改请求。③Slave Server同样是以非阻塞的方式完成数据同步。在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据④为了分载M

2021-07-28 13:20:54 207

原创 基础算法介绍

1.冒泡排序:从小到大顺序,通过不断循环,把最大的数字放在最后面,然后下次循环再次对前面几个数字小的排序,反之从大到小排序也一样public static void main(String[] args) { int[] arr = {1,25,2,38,5,20}; //要循环全部数字才能排序完成 for (int i = 0; i < arr.length; i++) { /** 1.为什么数

2021-07-26 09:47:47 169

转载 Netty高性能解析

一.Netty高性能的原因总结:1.基于I/O多路复用模型:底层用的NIO技术,可以看我以前发过的一篇NIO介绍文章https://blog.csdn.net/xc123_java/article/details/1139920222.零拷贝3.基于内存池的缓冲区重用机制对于堆外直接内存的分配和回收,是一件耗时的操作,而且这些实例随着消息的处理朝生夕灭,这就会给服务器带来沉重的GC压力,同时消耗大量的内存。为了尽量重用缓冲区,Netty提供了基于内存池的缓冲区重用机制ByteBuf内

2021-07-09 10:13:04 648

转载 Netty介绍和重要对象理解

一.ServerBootstrap:Netty引导类,初始化类,分别有两个一个服务端的,一个客户端的二.父子channel在Netty中,Channel是一个Socket连接的抽象,它为用户提供了关于底层Socket状态(是否是连接还是断开)以及对Socket的读写等操作.每当Netty建立了一个连接后,都会有一个对应的Channel实例。并且,有父子channel的概念。服务器连接监听的channel,也叫parent channel。对应于每一个Socket连接的channel,也叫chil

2021-07-08 14:00:42 393

原创 Netty简单使用

一.Netty使用步骤:1.ServerBootstrap: Netty引导类,初始化类,分别有两个一个服务端的,一个客户端的2.创建两个NIO线程组,一个专门用于网络事件处理(接受客户端的连接)称为parentGroup,另一个则进行网络通信的读写,称为childGroup。3.设置channel类型,除了TCP协议以外,Netty还支持很多其他的连接协议,并且每种协议还有NIO(异步IO)和OIO(Old-IO,即传统的阻塞IO)版本的区别,不同协议不同的阻塞类型的连接都有不同的Channe

2021-07-07 15:20:51 328

原创 Rabbit MQ机制

你的应用程序和Rabbit Server之间会创建一个TCP连接,一旦TCP打开,并通过了认证,认证就是你试图连接Rabbit之前发送的Rabbit服务器连接信息和用户名和密码,有点像程序连接数据库,使用Java有两种连接认证的方式,后面代码会详细介绍,一旦认证通过你的应用程序和Rabbit就创建了一条AMQP信道(Channel)。信道是创建在“真实”TCP上的虚拟连接,AMQP命令都是通过信道发送出去的,每个信道都会有一个唯一的ID,不论是发布消息,订阅队列或者介绍消息都是通过信道完成的Conn

2021-07-06 15:08:00 388

原创 Elasticsearch介绍

索引(名词):如前所述,一个 索引 类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方。 索引 (index) 的复数词为 indices 或 indexes 。索引(动词):索引一个文档 就是存储一个文档到一个 索引 (名词)中以便被检索和查询。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时,新文档会替换旧文档情况之外。倒排索引:关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elastic

2021-06-24 10:37:02 317

转载 lucene搜索引擎

一.lucene优势:可扩展,高性能的索引过程在现代化的硬件上面索引超过150G/小时只需要1M的堆增量索引和批量索引一样快索引大小大约是文本索引大小的20-30%强大,准确和高效的搜索算法排名搜索——最好的结果优先返回许多强大的查询类型:短语查询,通配符查询,接近查询,范围查询等针对不同的域搜索(例如标题、作者、内容)对任何域进行排序具有合并结果的多索引搜索允许同步更新和搜索插拔式的排名模型, 包括 Vector Space Model 和 Okapi BM25可配置的

2021-06-17 11:30:14 551

原创 soul 网关源码解析

1. post请求url上拼接参数,下游服务参数接收不到?具体问题解决过程可以看我提的issues https://github.com/dromara/shenyu/issues/1580因为

2021-06-11 18:07:15 410 2

原创 Soul网关整合Spring Cloud 使用和存在的问题

1.首先引入新建立spring boot项目,maven加入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.

2021-06-11 17:27:20 817

原创 spring cloud eureka Feign整合seata,应用和测试

seata整合spring cloud版本 G版本1. maven文件 <dependency> <groupId>io.seata</groupId> <artifactId>seata-spring-boot-starter</artifactId> <version>1.4.1</version> </depe

2021-03-29 14:45:23 586

转载 spring boot项目优雅停机

转载:https://www.cnblogs.com/huangqingshi/p/11370291.html 1. Springboot提供的actuator的功能,它可以执行shutdown, health, info等,默认情况下,actuator的shutdown是disable的,我们需要打开它。首先引入acturator的maven依赖。  <dependency> <groupId>org.springframework.bo...

2021-03-16 14:52:12 376

原创 JVM实战调优

调优之前请先看JVM基础知识 https://blog.csdn.net/xc123_java/article/details/890991611.网关JVM配置如果网关中在拦截器里面有新建对象的代码,就要考虑把JVM年轻代调大一些,因为网关并发大,新建立的对象存活时间很短,但是很多,这时候是放在年轻代里面的,调大年轻代,可以减少GC以上两张图是网关年轻代调大一倍后GC次数和时间都减少了一半...

2021-03-09 09:51:42 249

原创 Reactor模型

Reactor是一种设计模式。基于事件驱动,然后通过事件分发器,将事件分发给对应的处理器进行处理。 Reactor:监听网络端口,分发网络连接事件给Acceptor,具体的感兴趣读写事件handler Acceptor:接受新的连接,连接的读写事件操作交给相应的Handler Handler:注册为callback对象,并且注册自己感兴趣的读事件或者写事件等等,然后再相应的方法内进行业务操作内容1.单线程版参考代码:package com.ddcx.utils;...

2021-03-03 13:53:47 230

转载 java IO多种模式讲解

1.Java IO读写原理 无论是Socket的读写还是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不同。 用户程序进行IO的读写,基本上会用到read&write两大系统调用。可能不同操作系统,名称不完全一样,但是功能是一样的。先强调一个基础知识:read系统调用,并不是把数据直接从物理设备,读数据到内存。write系统调用,也不是直接把数据,写入到...

2021-02-23 17:11:24 218

转载 MongoDB存储原理和基本概念

1.MongoDB集群搭建方式: ①Replica set:复制集,mongodb的架构方式之一 ,通常是三个对等的节点构成一个“复制集”集群,有“primary”和secondary等多中角色(稍后详细介绍),其中primary负责读写请求,secondary可以负责读请求,这有配置决定,其中secondary紧跟primary并应用write操作;如果primay失效,则集群进行“多数派”选举,选举出新的primary,即failover机制,即HA架构。复制集解决了单点故障问题,也是mongo..

2020-06-22 15:49:52 3785

原创 hive整合springcloud框架

hive插入表数据非常慢1.maven解决 日志冲突和Tomcat冲突<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>2.3.2</version> <exclusions> <exclusion>

2020-06-10 10:24:51 721

原创 ssl加密原理

1.像CA证书机构用域名申请数字CA证书2.数字CA证书结构会对域名信息,有效期,机构名称,给我们服务器用的公钥等等信息用CA机构自己私钥加密,并且给我们这个证书和专门给我们服务器用的私钥3.客户端发起https请求4.服务端把证书给客户端,客户端本地存储有ca机构根证书的公钥解密证书内容,验证正确5.验证通过后,客户端会生成一个随机字符串串然后使用服务器证书里面存放的公钥进行加密之后发送给服务器端6.服务器端用自己的私钥解密出这个随机字符串7.然后服务器端和客户端用这个随机字符串加

2020-05-25 16:23:10 201

转载 jvm基本参数配置

原文转载: https://yq.aliyun.com/articles/691713JVM参数配置 -server C2引擎执行 -Xms20g 最小堆内存20G -Xmx20g 最大堆内存20G -Xmn8g 新生代8G -XX:PermSize=256m Perm大小256MB -XX:MaxPermSize=256m P...

2020-02-25 13:20:58 236

转载 JVM基本概念

原文链接:https://blog.csdn.net/weixin_43943548/article/details/90721796一些概念数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的...

2019-09-06 15:25:50 792

原创 spring 进阶

1. @scope: 指定注册的类多实例 : ioc容器启动并不会调用创建对象的方法,每次获取的时候才会调用方法单实例 : IOC容器启动就会调用方法创建对象放到ioc容器中懒加载 @Lazy 第一次获取bean的时候加载,针对于单实例2. @conditional注解 可以根据条件选择是否注册进入IOC容器@Import({快速导入IOC容器中的多个类})3.@Be...

2019-09-03 09:46:19 137

转载 Ribbon源码解析

原文:https://blog.csdn.net/forezp/article/details/74820899重要组件ServiceInstanceChooser接口,根据serviceId来获取serviceInstanceServiceInstanceChooser实现接口LoadBalancerClient接口它作为负载均衡的一个客户端,执行请求,重构urlLoadBala...

2019-09-03 09:45:58 186

转载 JVM垃圾回收介绍

转载: https://www.cnblogs.com/andy-zhou/p/5327288.htmlJVM调优总结目录引用类型按照基本回收策略分按分区对待的方式分按系统线程分如何区分垃圾如何处理碎片如何解决同时存在的对象创建和对象回收问题为什么要分代如何分代什么情况下触发垃圾回收分代垃圾回收流程示意选择合适的垃圾收集算法小结回收器选择辅助信息常见配置汇总调优总结垃圾回收的瓶颈增量收...

2019-09-03 09:45:28 221

转载 java集合详解

原文链接:https://blog.csdn.net/lkp1603645756/article/details/81264257https://www.jianshu.com/p/939b8a672070java 集合分为 Collection 和 Map 是所有集合的父接口Collection 子接口有: List 和 Set 接口List 接口下面分为: Arr...

2019-09-02 11:25:45 100

原创 自定义 Spring Cloud 0auth2.0

为什么自己实现oauth2.0? 因为spring cloud oauth2.0本身的缺点: ①如果想要控制到访问的每个URl,要进行大量的改造 ②特别复杂,本省spring mvc拦截器,加上 网关拦截器,已经有很多拦截器了,但是它本身还有自己拦截器,要分析源码才能了解清楚 ③抛错格式和本身自己系统不一致,经常遇到抛错格式不一致,然后又自己去寻找源码里面哪里抛错,...

2019-08-30 15:14:39 391

合成大西瓜源码.zip

合成大西瓜源码.zip

2021-02-22

mongo文件下载

mongodb客户端工具,连接方便快捷,使用简单,只需要配置好用户名和密码

2018-11-06

前段js特效

js常见的特效

2017-06-19

空空如也

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

TA关注的人

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