自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (4)
  • 收藏
  • 关注

原创 自定义Resttemplate,支持添加认证,打印请求,参数和响应,支持响应内容为xml的解析成对象

【代码】自定义Resttemplate,支持添加认证,打印请求,参数和响应,支持响应内容为xml的解析成对象。

2024-07-05 10:14:24 441

原创 SpringCloud(H版&alibaba)框架开发教程之SpringCloud Stream——附源码(7)

移步到此教程:https://blog.csdn.net/qq_42107430/article/details/104788858。

2024-01-08 10:54:01 418

原创 SpringCloud(H版&alibaba)框架开发教程之config,bus——附源码(6)

移步到此教程:https://blog.csdn.net/qq_42107430/article/details/104788858。

2024-01-08 10:40:51 398

原创 SpringCloud(H版&alibaba)框架开发教程之gateway——附源码(5)

当请求通过网关的时候,由Gateway Handler Mapping通过predicate判断是否与路由匹配,当predicate=true的时候,匹配到对应的路由。虽然我们可以在网关的前面再去加一层nginx或者haproxy等负载均衡器,但是仍旧很难改变网关在一定程度上的流量集中的问题。然而性能就是Zuul的短板,因为它是基于servlet的阻塞IO模型开发的。服务访问的认证鉴权更加方便,可以放在API网关统一去做。当你使用了API网关之后,所有的请求都要多一次转发,造成一定程度上的响应时长的延长。

2024-01-08 10:39:32 1251 1

原创 SpringCloud(H版&alibaba)框架开发教程之Hystrix——附源码(4)

他的功能是,当对某个服务的调用在一定的时间内(默认10s),有超过一定次数(默认20次)并且失败率超过一定值(默认50%),该服务的断路器会打开。根据cloud-consumer-feign-hystrix-order80已经有的PaymentHystrixService接口,重新新建一个类(PaymentFallbackService)实现该接口,统一为接口里面的方法进行异常处理。(当一个窗口期过去的时候,断路器将变成半开(HALF-OPEN)状态,如果这时候发生的请求正常,则关闭,否则又打开)

2023-12-29 16:38:42 922

原创 SpringCloud(H版&alibaba)框架开发教程之Ribbon负载均衡和Openfeign远程调用——附源码(3)

因为微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的,包括后续我们将要介绍的Feign,它也是基于Ribbon实现的工具。支持HTTP请求和响应的压缩。在Spring Cloud中使用Feign,可以做到使用HTTP请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问HTTP请求。openfeign远程调用,当有很多实例,我们也不能直接指定id去调用服务,因为服务太多了,而且有的服务可能已经在eureka里死掉了,所以不能写死。

2023-12-29 15:18:10 888

原创 SpringCloud(H版&alibaba)框架开发教程之nacos做配置中心——附源码(2)

比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ) ,给广州机房的Service微服务起一个集群名称(GZ),还可以尽量让同一个机房的微服务互相调用,以提升性能。在入门案例中,我们实现了配置的远程存放,但是此时如果修改了配置,我们的程序是无法读取到 的,因此,我们需要开启配置的动态刷新功能。不同为服务之间实现配置共享的原理类似于文件引入,就是定义一个公共配置,然后在当前配置中引入。

2023-12-29 10:11:48 522

原创 SpringCloud(H版&alibaba)框架开发教程,使用eureka,zookeeper,consul,nacos做注册中心——附源码(1)

启动服务,注册到eureka,可以看到支付服务有2个注册到eureka,接下来,使用restTemplate在订单服务中调支付服务,并且负载均衡,使用自定义的策略。然后在浏览器输入http://localhost:7001/ 或http://localhost:7002/现如今我们已经启动了5个微服务,如果电脑不行,可以使用单机版本,并且服务启动的时候指定好jvm参数,把内存限制的小一点。创建订单服务,支付服务,公共api服务(共用的实体),eureka服务。–来自百度网盘超级会员V7的分享。

2023-12-28 17:15:18 1176 1

原创 SpringBoot+ShardingSphereJDBC实战(读写分离,分库分表,垂直拆分、水平拆分)附源码

源码地址:git@gitee.com:jackXUYY/springboot-example.git。参考:https://www.51cto.com/article/747736.html。打开dev2的配置,执行OrderController里面的接口看控制台打印的效果。我们启用后缀名为dev的配置文件,如下,数据库链接需要改成自己的地址。垂直分片 测试 (从不同的库中加载多张不同的表在一个项目中使用)建个t_order1的表,和t_order结构一样。注意数据库链接改成自己的,库表需要先建好,

2023-12-27 15:41:43 612

原创 springboot整合rabbitmq附源码

前提是对rabbitmq有一定的了解,比如虚拟主机,交换机,队列,信道,绑定,路由键,direct,fanout,topic等。我使用的是docker部署的rabbitmq,看到简书的这个,镜像版本是rabbitmq:3.7.7-management。原因:延迟插件不支持mandatory=true参数,如果启用会同时收到延迟消息和路由失败消息。DirectConfig此类是配置direct交换机,及队列,绑定关系。延迟交换机测试,场景就是下单了,没付费,过期取消订单。发送消息,指定路由键为man,

2023-12-21 15:10:00 591

原创 springboot整合kafka附源码

我们把这个类的注释打开,同时配置文件里的,partitioner.class配置开启,把消费者组group-id改为mykafka2,再把事务的配置也注释掉把上面的方法注释掉,把此方法的注释打开发送一个符合分区的消息内容因为此时没有1号分区,消息会发送超时我们可以新建配置类,声明分区数然后在发送消息试一下后续,刚才我们是手动ack,提交偏移量我们也可以指定偏移量去消费,方法代码里都有的,这里就截图了批量消费过滤消息内容再进行消费,异常处理消息转发定时启动,停止监听器。

2023-12-21 11:07:31 582

原创 springboot启动流程图

根据这个流程再去看源码会事半功倍流程解释组装SpringApplication1.resourceLoader:设置resourceload2.设置primarySources:可以把启动类加载进入spring容器3.webApplicationType:判断当前application应该运行在什么环境下4.mainApplicationClass:找出main方法启动的class执行SpringApplication的run方法获取SpringApplicationRunListen.

2021-03-23 13:10:46 1414

原创 spring的IOC理解

refresh方法 AbstractApplicationContext的refresh方法,源码: @Override public void refresh() throws BeansException, IllegalStateException { //加个锁,容器不能进行多次refresh synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. //准备工作.

2021-03-23 10:43:44 187

原创 mybatis入门及自定义mybatis框架实现简单查询

mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。mybatis通过 xml 或注解的方式将要执行的各种statement配置起来,并通过java对象和statement 中sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。采用 ORM 思想解决了实体和数据库映射.

2021-03-21 15:43:54 191 1

原创 redission分布式锁测试

pom依赖 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.8.2</version> </dependency> <dependency> <groupId>org.springframework.bo

2020-09-21 14:04:00 590

原创 并发环境下,先操作数据库还是先操作缓存?

原文链接:https://juejin.im/post/6844903907726983181#heading-3

2020-09-18 10:53:50 164

原创 spring aop底层原理

使用的有jdk动态代理和cglib代理使用代理取决于代理的对象的是类还是接口,如果是接口-----》cglib代理如果是类------》jdk动态代理

2020-09-14 14:57:45 231

原创 base64 单文件上传,多文件上传

import org.springframework.web.multipart.MultipartFile;import sun.misc.BASE64Decoder;import java.io.*;public class BASE64DecodedMultipartFile implements MultipartFile { private final byte[] imgContent; private final String header; public.

2020-08-26 13:27:07 434

原创 单文件上传,多文件上传

需要导入相关的上传文件的依赖包相关工具类和自定义异常在下方import java.io.File;import java.io.IOException;StringUtils;import org.apache.commons.io.FilenameUtils;import org.springframework.web.multipart.MultipartFile;FileNameLengthLimitExceededException;自定义异常FileSizeLimitExceede

2020-08-24 14:20:22 362

原创 设计模式之单例模式

饿汉式,静态变量//饿汉式,静态变量class S1{ private S1(){ } public final static S1 s = new S1(); public static S1 returnS1(){ return s; }}饿汉式,静态代码块class S1{ static { instance = new S1(); ; } private static S1 ins.

2020-07-23 17:26:06 131

原创 设计模式的七大原则

设计模式的重要性软件设计中反复出现的问题,所提出的解决方案 软件可维护性,扩展性,可读性,规范性,高内聚,低耦合功能模块=设计模式+算法(数据结构)—》框架–》架构七大原则单一职责原则对于类来说,一个类应该只负责一个职责![假如A负责两个职责,A1,A2](https://img-blog.csdnimg.cn/20200723104702601.png)降低类的复杂度演示public class SingleRe{ public static void main(Str

2020-07-23 16:07:53 127

原创 github的骚操作,你用过几个?

1.in 关键词限制搜索范围关键字 in:name项目名字中带这个关键字的2.stars或fork数量关键词范围查找springboot stars:>=5000查找springboot项目,点赞数大于5000的3.awesome加强搜索一般是用来收集,搜索工具,书籍类相关的项目4.高亮显示某一行代码单行代码块地址+#L+代码行数多行代码块地址+#L+代码行数-L行数...

2020-07-20 10:49:33 121

原创 生产cpu占用高的定位和分析

结合linux命令和jdk命令去分析1.top命令找出占用过高的程序 找到进程id2.详细定位 jps -l pid 定位或ps -ef java3.定位到具体线程和代码·ps -mp 进程编号 -o THREAD ,tid,time·找到占用高的线程是哪一个4.将需要的线程id转为16进制格式5.jstack 线程号 | grep 16进程线程id -A60(打印前60行)就能定位到具体某一行代码...

2020-07-20 10:16:42 153 1

原创 死锁原因和分析定位

系统资源不足资源分配不当jps -ljstack 进程id

2020-07-17 14:57:11 152

原创 线程池配置合理的线程数

System.out.println(Runtime.getRuntime().availableProcessors());获取处理器的数量cpu密集型处理器的核数+1io密集型处理器*2或者8/(1-阻塞系数)阻塞系数0.8~0.9

2020-07-17 14:50:58 175

原创 ReentrantLock与Sync有什么区别

阻塞和唤醒的方式不一样sync是java的关键字底层通过monitor对象不需要用户释放锁,自动释放sync不可中断,除非抛异常或运行完成默认加锁都是非公平锁lock是api层面的类需要用户主动释放锁可中断,设置超时中断默认也是非公平锁,可以设置成公平锁锁绑定多个condition,用来精确唤醒,而sync没有,要么随机唤醒一个,或者全部...

2020-07-17 14:46:21 1184

原创 java的锁

公平锁非公平锁ReentrantLock构造方法可传true默认是非公平锁公平锁先来后到,队列形式非公平锁,加塞,,加塞不成功在排队饥饿现象就是一直加载对于sync也是非公平锁可重入锁(又叫递归锁 )ReentrantLock的字面意思就是可重入锁,锁你用完了,我也可以用这把锁同步方法里的方法又调用了另一个同步方法,而此时这把锁是当前对象,所以仍然可以调用比如家门,卫生间门,家门你锁了,卫生间就不用锁了。作用:避免死锁reentrantlock与sync都是一个典型的可重入锁

2020-07-17 14:11:19 123

原创 分布式锁

N台 jvm + N线程微服务集群分布式锁实现三种myql数据库乐观锁------>并发量不够,所以不用redis---->redissionzookeeper----->临时节点demo–略

2020-07-16 16:08:38 146

原创 Linux高级指令

1.查看机器整体性能top命令结果出来后,分析下面的四个指标cpumemidleload average2 内存free -m3 硬盘df -h4 cpu 时间(s) 几次vmstat -n x y5 磁盘iostat -xdk x y util高

2020-07-16 15:11:50 116

原创 Mysql的索引优缺点

索引是帮助mysql高效获取数据的数据结构。优点:提高检索效率,降低数据路IO成本降低数据排序成本,降低cpu消耗缺点:降低了更新表的速度,如增删改 更新表时索引也会更新 实际上索引也是一张表什么情况下会创建索引1.主键自动建立唯一索引2.频繁作为查询条件的字段,3.查询中与其他表关联的外键应该建立索引4.单键/组合索引的选择问题,组合索引的性价比更好5.查询中排序的字段,若通过索引访问,将大大提高排序速度 6查询中统计或分组字段那些情况下不要建立索引1.表记录太

2020-07-16 14:19:09 291

原创 Redis持久化操作

RDB在指定的时间间隔内,将内存中的数据集快照写入磁盘,它恢复时,是将快照文件直接读到内存里。AOF是以日志的方式记录写操作,备份如何进行的redis会单独创建一个子进程来进行初始化,会先将数据写入到一个临时文件内,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果要进行数据大规模恢复,且对于数据恢复的完整性不是非常敏感,那RDB的方式比AOF的方式更为高效,RDB的缺点是最后一次持久化后的数据可能会丢失。..

2020-07-16 12:23:15 178

原创 git操作

看图

2020-07-16 11:15:03 95

原创 springMVC的工作流程

流程图

2020-07-16 11:05:53 77

原创 SpringMVC解决post请求和get乱码问题

post请求在web.xml过滤器get请求修改tomcat的server.xml的即可

2020-07-16 11:03:37 123

原创 Spring事务传播行为和隔离级别

@Transional(propagation=REQUIRED)默认值是这个,使用同一个事务修改库存,修改余额修改库存是一个事务,修改库存的时候会调用修改余额的方法,而这时还会使用原来的事物,根据事务的原子性,要么都成功,要么都失败。所以失败时,就会回滚事务REQUIREDS_NEW 会开启一个新的事物,一个成功,一个失败,失败的会回滚,而成功的不会回滚常用的是这两个isolation设置事务的隔离级别...

2020-07-16 10:57:28 205

原创 ConcurrentHashMap锁分段机制

底层使用CAS算法

2020-07-15 18:04:30 467

原创 原子性与CAS算法

i++问题一个,原子变量CAS算法保证数据的原子性CAS是硬件对于并发操作的支持cas包括了,内存值,V预估值,A更新值,B当且仅当V==A时,才会把B的值赋给A,否则将不做什么操作

2020-07-15 18:01:25 161

原创 Volatile关键字与内存可见性

当多个线程操作共享数据时,彼此不可见同步锁会解决这个问题,但是效率会很低volatile的出现就解决了这个问题,当多个线程操作共享数据时,可以保证内存中的数据可见,想较于sync更轻量一些。volatile不具备互斥性volatile也不能保证变量的原子性...

2020-07-15 17:53:43 81

原创 JUC---Semaphore(信号灯)

多个线程抢多个资源,控制多线程的并发数

2020-07-15 17:44:30 166

原创 异步回调之ComplateableFuture

package juc.day03;import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;public class ComplateableFutureTest { public static void main(String[] args) throws ExecutionException, InterruptedException { /

2020-07-15 17:32:06 971

zookeeper客户端,windows

下载解压后,双击build目录下的zookeeper-dev-ZooInspector.jar,输入zk的地址即可

2023-12-29

Citrix.Receiver.rar

itrix Receiver是一种轻便的通用软件客户端,itrix Receiver(虚拟桌面软件)是一款非常优秀的专业的虚拟桌面软件。Citrix Receiver强大实用,操作简便,为您带来高清用户体验,高效的移动办公,可以兼容任何设备上的Citrix产品。这款虚拟桌面允许访问摄像头和麦克风、所在位置、本地应用程序等,兼容任何设备的Citrix产品,需要的朋友快来下载吧

2020-05-26

redisclient-win32.x86.1.5.zip

redis客户端连接工具,图形化界面工具,界面精美,版本是redisclient-win32.x86.1.5,有需要得可以自行下载

2020-05-26

nosqlbooster4mongo-5.1.10.exe

今天给大家推荐一款MongoDB的客户端工具--nosqlbooster,这个也是我工作中一直使用的连接管理MongoDB的工具。它既有免费版,也有加强升级的付费版。

2019-11-05

navicatformysql.rar

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。

2019-11-05

空空如也

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

TA关注的人

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