自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 SpringBoot(JAVA)整合微信公众号消息推送

在使用JAVA(springboot)开发微信公众号时,有时需要向微信服务器上传一些临时素材,比如图片、语音、视频等。本文将介绍如何实现JAVA微信新增临时素材的功能

2024-07-12 11:50:50 5441 14

原创 SpringBoot(JAVA)整合小程序支付和退款功能详解

SpringBoot(java)整合微信小程序SDK支付和退款,小程序调用后端预支付接口,接口调用成功返回给小程序支付凭证id,小程序拿到支付凭证调用微信后台支付接口,小程序支付成功后,微信后台执行支付回调将支付订单信息返回(预支付调用微信后台是需要传入支付成功后自己本地的回调接口地址)

2024-03-11 19:34:57 3240 6

原创 SpringCloudAlibaba:Sentinel介绍及使用

Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误,包含sentinel详情,安装,以及对于sentinel服务流控,服务降级,服务熔断等使用,entinel规则持久化等操作。

2023-02-24 11:49:07 1223

原创 SpringCloudAlibaba:Nacos详解以及服务搭建使用

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台,致力于帮助您发现、配置和管理微服务。Nacos作为注册中心和配置中心及其使用,Nacos支持AP+CP,但不支持CAP。Windows和Linux下安装和使用nacos,以及Nacos持久化,Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现和服务健康监测、动态配置服务、服务元数据等。

2022-10-20 19:18:26 1408

原创 SpringCloud:Stream消息驱动

SpringCloud Stream是一个构建消息驱动微服务的框架。应用程序通过inputs 或者outputs来与Spring Cloud Stream中binder对象交互。通过我们配置来binding(绑定),stream的分组消费(重复消费)和持久化使用,而Spring Cloud Stream的 binder对象负责与消息中间件交互。所以,需要搞清楚如何与Spring Cloud Stream交互就可以方便使用消息驱动的方式。

2022-10-11 10:16:48 575

原创 SpringCloud:Gateway网关配置及使用

SpringCloud Gateway是Spring Cloud的一个全新项目,包含三大特性,路由,断言(Predicate),过滤器(filter)以及使用配置等,它旨在为微服务架构提供—种简单有效的统一的API路由管理方式,以及提供统一的路由方式且基于Filter链提供一些强大的过滤器功能和网关基本的功能。

2022-10-09 21:19:54 9031 1

原创 SpringCloud:Hystrix断路器详解及使用

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,Hystrix可以实现服务降级、服务熔断、服务限流,接近实时监控等,Hystrix的使用和参数说明,熔断器开启后请求流程等。

2022-09-17 18:48:53 1173

原创 SpringCloud:Ribbon负载均衡

Spring Cloud Ribbon是基于Netflix Ribbon实现的—套客户端 负载均衡的工具。手写负载均衡算法以及ribbon是使用,简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则

2022-09-15 13:51:27 615 1

原创 SpringCloud:Consul详解及使用

Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。consul安装以及单机构建使用,提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。它具有很多优点。包括:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议.支持跨数据中心的WAN集群提供图形界面跨平台,支持Linux、Mac、Windows。

2022-09-14 19:12:04 2565

原创 SpringCloud:Eureka详解

eureka作为spring cloud注册中心的一种,Eureka是Netflix开发的服务发现框架,属于CAP中的AP框架,本身是一个基于REST的服务,Eureka单机构建以及Eureka集群构建,Eureka是一个服务治理组件,它主要包括服务注册和服务发现,主要用来搭建服务注册中心。

2022-09-14 11:39:30 5644 2

原创 SpringCloud:Eureka集群映射hosts文件不存在

eureka集群部署以及C:\Windows\System32\drivers\etc 没有hosts文件解决办法

2022-09-09 19:11:15 619

原创 Java设计模式:七大原则及概述

设计模式是在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。遵循七大原则,这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。我们面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战

2022-05-31 14:46:49 225

原创 MySql数据库解锁ACT_DE_DATABASECHANGELOGLOCK

日志出现SELECT * FROM ACT_DE_DATABASECHANGELOGLOCK WHERE ID=1,表明数据被锁住,解锁,UPDATE ACT_DE_DATABASECHANGELOGLOCK SET LOCKED=FALSE,LOCKGRANTED=null, LOCKEDBY=null where ID=1

2022-05-30 14:08:13 2794

原创 使用jedis连接Redis

Jedis是redis的java版本的客户端实现,使用Jedis提供的Java API对Redis进行操作,是Redis官方推崇的方式;常用的五种数据类型,string、hash、set、zset/list并且,使用Jedis提供的对Redis的支持也最为灵活、全面;不足之处,就是编码复杂度较高。

2022-05-24 14:48:38 4279

原创 Redis安装及使用

一、Redis介绍,redis安装启动及停止,以及操作redis多数据库,以及在操作中的注意事项。持久化方式rdb和aof方式。1.1什么是NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

2022-05-20 14:22:47 983

原创 Java多线程:回环屏障CyclicBarrier的使用(八)

CyclicBarrier(回环屏障),阻塞一组线程,直至某个状态之后再全部同时执行,并且所有线程都被释放。和之前说的CountdownLatch功能相反,CountdownLatch阻塞主线程,等所有子线程完结了再继续下去。上节介绍的CountDownLatch在解决多个线程同步方面相对于调用线程的join方法已经有了不少优化,但是CountDownLatch的计数器是一次性的,也就是等到计数器值变为0后,再调用CountDownIatch的await和countdown方法都

2022-05-18 09:49:52 788

原创 阿里云OSS使用Java上传文件

OSS使用java文件上传及存储,以及整个OSS使用的详细步骤

2022-05-17 19:28:42 7890 2

原创 Java多线程:CountDownlatch介绍与使用(七)

JUC包中的CountDownLatch类实现线程间的通信,通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。countDown()方法的目的就是将count值减一,并且在count值为0时,唤醒所有等待的线程,与Condition的await()方法的语义相同,该方法是阻塞式地等待,并且是响应中断的,只不过它不是在等待signal操作,而是在等待count值为0

2022-05-17 13:51:58 503

原创 Java多线程:线程池ThreadPoolExecutor和Executors详解(六)

线程池的创建有两种:ThreadPoolExecutor 和 Executors。线程池不是一个提高系统的并发能力的策略,是一个更好的管理线程的方案。另外,线程池也提供了许多可调参数和可扩展性接口,以满足不同情境的需要,可以使用更方便的Executors的工厂方法,比如newCachedThreadPool (缓冲线程池,线程池线程个数最多可达Integer.MAX_ VALUE,线程自动回收)、newFixedThreadPool (固定大小的线程池)、newSingleThreadExecutor

2022-05-16 16:28:06 2151

原创 Java多线程:ReentrantLock重入锁(五)

一、定义可重入锁指的是可重复可递归调用的锁,在外层使用锁之后,在内层仍然可以使用,并且不发生死锁(前提得是同一个对象或者class),这样的锁就叫做可重入锁。jdk中独占锁(排它锁)的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。二、synchronized和Reentra

2022-05-07 14:39:33 848

原创 Java多线程:CAS原子操作(四)

Java 并发机制实现原子操作有两种: 一种是锁,还有一种是CAS。在Java中,锁在并发处理中占据了一席之地,但是使用锁有一个不好的地方,就是当一个线程没有获取到锁时会被阻塞挂起,这会导致线程上下文的切换和重新调度开销。Java提供了非阻塞的volatile关键字来解决共享变量的可见性问题,这在一定程度上弥补了锁带来的开销问题,但是volatile只能保证共享变量的可见性,不能解决读一改一写等的原子性问题。CAS即CompareandSwap,其是JDK提供的非阻塞原子性操作,它通过

2022-04-14 17:16:30 1214

原创 Java多线程:并发编程(三)

进程:进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)。线程:一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个线程来处理。同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数

2022-04-12 22:24:36 2163

原创 Java多线程:ThreadLocal(二)

多线程访问同一个共享变量时特别容易出现并发问题,特别是在多个线程需要对一个共享变量进行写入时。为了保证线程安全,一般使用者在访问共享变量时需要进行适当的同步。

2022-04-10 22:32:26 584

原创 ArrayList循环遍历并删除元素的常见问题

在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出现问题。示例:我们看见删除list中‘b’的值,这种最普通的循环写法执行后会发现第二个“b”的字符没有删掉。原因:因为在ArrayList底层用的是数组实现,所以存储的时候是一块连续的地址。当检测相同元素并删除的同时,之后的整个数组就和集体往前移动,此次循环结束后的累加器又 ++1,所有相邻的一个就会被忽略掉。解决:删除后,将指针往前移一位。迭代器删除注意:如果在迭代器中用数组本身去删除会报错。

2022-04-08 15:12:04 3122 1

原创 MySQL中int(1)和int(10)的区别?

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。INT(1) 和 INT(10)本身没有区别,但是INT[(M)] 加上ZEROFILL值后,会有显示宽度的设置。

2022-04-08 14:20:06 1292

原创 Java多线程:基础篇(一)

在讨论什么是线程前有必要先说下什么是进程,因为线程是进程中的一个实体,线程本身是不会独立存在的。进程是代码在数据集合上的一次运行活动, 是系统进行资源分配和调度的基本单位, 线程则是进程的一个执行路径, 一个进程中至少有一个线程,进程中的多个线程共享进程的资源。操作系统在分配资源时是把资源分配给进程的, 但是CPU 资源比较特殊, 它是被分配到线程的, 因为真正要占用CPU 运行的是线程, 所以也.

2022-04-08 14:09:39 420

空空如也

空空如也

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

TA关注的人

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