自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiaowoshangege的博客

~记录工作和生活的点滴~

  • 博客(37)
  • 收藏
  • 关注

转载 提示词工程

提示词工程:本文包含以下内容,其中 🔵 是指适合初学者的提示工程技术,而 🔴 是指进阶技术。[🔵] 使用 CO-STAR 框架来搭建 prompt 的结构[🔵] 使用分隔符为 prompt 设置分节[🔴] 使用 LLM 防护围栏创建系统 prompt[🔴] 仅使用 LLM 分析数据集,不使用插件或代码 —— 附带一个实操示例:使用 GPT-4 分析一个真实的 Kaggle 数据集。[🔵] 使用 CO-STAR 框架来搭建 prompt 的结构。

2024-06-21 18:02:26 20

原创 MySQL索引及调优回顾

MySQL索引及调优回顾

2022-11-17 13:58:09 619 1

原创 websocket系列基于spring-boot-starter-websocket实现

本篇主要是介绍怎么基于spring-boot-starter-websocket来实现websocket。

2022-10-10 16:54:25 1349

原创 Quartz-cron时间设置

Quartz中设置cron时间表达式

2022-08-24 18:29:10 4815

原创 几种时间格式化注解方式

时间格式注解说明

2022-06-16 18:13:53 8744

原创 Logback配置与运用

Logback配置与运用每个项目都涉及到日志这个模块。存在的意义无非就是两个:记录业务日志,方便后期排查问题以日志上的形式记录业务数据,并将日志文件推送第三方。

2022-06-09 16:56:21 709

原创 Spring Cloud Stream 配置说明

本文对spring cloud stream 的相关配置,进行逐一注释说明,作为工具在需要的时候查看使用。配置中的输入(input)输出(output)通道可以换成自己的,详情如下spring: cloud: stream: #实例数量,默认1 instance-count: 1 #实例索引,从0到instanceCount-1,用于分区和使用kafka。在Cloud Foundry中自动设置以匹配应用程序的实例索引。 instance-inde...

2022-04-22 09:22:31 3666

原创 布隆过滤器

布隆过滤器缓存穿透大家看下这幅图,用户可能进行了一次条件错误的查询,这时候redis是不存在的,按照常规流程就是去数据库找了,可是这是一次错误的条件查询,数据库当然也不会存在,也不会往redis里面写值,返回给用户一个空,这样的操作一次两次还好,可是次数多了还了得,我放redis本来就是为了挡一挡,减轻数据库的压力,现在redis变成了形同虚设,每次还是去数据库查找了,这个就叫做缓存穿透,相当于redis不存在了,被击穿了,对于这种情况很好解决,我们可以在redis缓存一个空字符串或者特殊.

2021-04-07 09:26:30 90

原创 可重入锁

可重入锁,也叫做递归锁,是指在同一个线程在调外层方法获取锁的时候,再进入内层方法会自动获取锁。ReentrantLock 和synchronized 都是 可重入锁。可重入锁的一个好处是可一定程度避免死锁。/** * @author chenhongshan * @date 2020/9/4 */public class LockTest implements Runnable { public synchronized void get(){ System.out

2020-09-04 15:54:59 171

原创 基于ZooKeeper实现分布式锁

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKeeper节点将它们的数据存储于一个分层的命名空间,非常类似于一个文件系统或一个前缀树结构。客户端可以在节点读写,从而以这种方式拥

2020-09-04 15:22:02 108

原创 RedisTemplate用SETNX命令实现分布式锁

RedisTemplate用SETNX命令实现分布式锁使用SETNX命令获取分布式锁的步骤:C1和C2线程同时检查时间戳获取锁,执行SETNX命令并都返回0,此时锁仍被C3持有,并且C3已经崩溃C1 DEL锁C1 使用SETNX命令获取锁,并且成功C2 DEL锁C2 使用SETNX命令获取锁,并且成功ERROR : 由于竞态条件,C1和C2都获取到了锁以下面的步骤完全可以避免这种情况发生,看看C4线程如何操作C4使用SETNX命令获取锁C3已经崩溃但是仍然持有锁,所以Redis返回0给C

2020-09-04 15:05:44 1518

原创 基于redis的setnx()、get()、getset()方法的分布式锁

使用redis的setnx()、get()、getset()方法,用于分布式锁1. setnx(lockkey, 当前时间+过期超时时间) ,如果返回1,则获取锁成功;如果返回0则没有获取到锁,转向2。 2. get(lockkey)获取值oldExpireTime ,并将这个value值与当前的系统时间进行比较,如果小于当前系统时间,则认为这个锁已经超时,可以允许别的请求重新获取,转向3。 3. 计算newExpireTime=当前时间+过期超时时间,然后getset(lockkey, new

2020-09-04 15:02:36 171

原创 Docker+Jenkins+GitLab+Maven+SpringBoot自动化构建镜像与部署

1、前言与初衷本文章会涉及Docker常见命令基础知识点结合不同场景实操一起使用。 本文章会涉及结合工作过程中部署不同环境服务器的项目案例场景为初心进行实际细讲。 本文章主要讲述Docker、Jenkins、GitLab、Git、JDK、SpringBoot、Maven等技术结合实现自动化运维部署(DevOps)应用工程,适合SpringCloud部署。 初衷想法:在学习过程中遇到比较有趣的问题、然而花了点心血和时间去整理,然而进行梳理出来一份文章比较完整有知识体系的DevOps自动化构建与部署工

2020-07-13 15:00:11 2369

原创 kafka安装

kafka下载http://kafka.apache.org/downloads.html解压tar -zxvf kafka_2.10-0.8.1.1.tgz启动服务首先启动zookeeper服务bin/zookeeper-server-start.sh config/zookeeper.properties启动Kafkabin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 &创

2020-07-09 18:21:02 115

原创 git技巧

工作区 -> git add -> 暂存区 -> git commit -> 版本库 -> git push -> 远程仓库版本库HEAD表示当前版本,上一个版本HEAD^,上上一个版本HEAD^^.......配置本机gitgit config --global user.name "abcd"git config --global user.email abcd@efgh.comgit连接自己的github第一步:创建SSH_key: ssh-key

2020-07-09 18:19:01 99

转载 maven pom.xml 详解(注释版)

maven pom.xml 详解(注释版)<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.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!--父项目的...

2020-07-09 17:41:27 346

原创 实用的 15 个高效工具

阿里程序员常用的 15 个高效工具,大部分已开源!阿里将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍:List item工具简介使用场景使用教程...

2019-11-13 11:40:48 305

原创 feginclient和hystrix的配置问题

原文链接:http://www.cnblogs.com/tiancai/p/9584046.html1.如果设置了feign:hystrix:enabled: true则 @FeignClient(value = “service-hi”,configuration = FeginConfiguration.class)FeginConfiguration 里设置重试次数和将无效如...

2019-10-30 09:13:11 271

原创 GitHub开源的10个优秀后台管理面板

GitHub开源的10个优秀后台管理面板项目开发中后台管理平台必不可少,但是从零搭建一套多样化后台管理并不容易,目前有许多开源、免费、样式丰富的后台管控面板,个人认为比较优秀的10项优秀后台管理控制面板(9个GitHub项目,1个在线UI 框架)。1、AdminLTE简介:非常流行的基于 Bootstrap 3.x 的免费的后台 UI 框架。网站:https://github.com...

2019-09-25 16:38:30 2694

原创 Feign调用时添加验证信息token到请求头

1、这是最简单的一个方法,但是需要对每个调用都一一添加,就是使用@RequestHeader注解添加参数到请求头中去@FeignClient(name = “capability-register”, fallback = ApiServiceClientFallBack.class )public interface ApiServiceClient {@GetMapping("/api/...

2019-08-16 19:33:07 7321

原创 SpringCloud 之 Fegin

SpringCloud 之 Fegin —— 发送GET、POST请求以及文件上传由于项目需要调用其他微服务的数据,首先想到的就是写一个http网络请求的工具类,但是想到在之前看springCloud的时候里面有这个Fegin可以实现,就顺便实践一下,虽然过程有点坎坷,好在都顺利解决了,在实践的过程中主要遇见了以下几个问题1) 不同请求方式传参方式不同2) 同一请求方式请求头信息不同...

2019-08-16 11:56:39 955

原创 Java8 特性(三)—— Optional类的使用

Java8特性(三)—— Optional类的使用一、Optional类的作用 Optional类的作用主要是为了解决空指针问题,通过对结果的包装,并使用方法来代替if判断,为流式编程打下了良好的基础。二、Optional类的初始化/** * Optional的初始化 * Optional的构造方法是私有的,所有只能通过静态方法去初始化 ...

2019-07-25 16:33:16 462

原创 Java8 特性(四)—— 方法引用(::双冒号操作符)

Java8特性(四)—— 方法引用(::双冒号操作符)一、什么是方法引用? 简单来说就是一个Lambda表达式,方法引用提供了一种引用而不执行方法的方式,运行时,方法引用会创建一个函数式接口的实例。 @Test public void example1(){ //使用Lambda表达式 Consumer<Strin...

2019-07-25 16:30:25 210

原创 Java8 特性(三) —— Stream流式编程

Java8特性(三) —— Stream流式编程一、什么是Stream? Stream API借助Lambda表达式,提供串行和并行两种模式进行汇聚操作,并行模式能够充分利用多核处理器的优势,使用fork/join来拆分任务和加速处理过程。@Test public void example1(){ final List<String>...

2019-07-25 16:19:25 131

原创 Java8 特性(二)—— Lambda表达式

Java8特性(二)—— Lambda表达式一、Lambda表达式Lambda是Java8的一个语法糖,它其实是匿名函数,通过约定好怎么传入参数,怎么返回参数,由编译器负责参数类型的猜测并执行结果。二、Lambda表达式的基本语法 /** * Lambda表达式的基本语法 */ public void example(){ ...

2019-07-25 11:55:40 101

原创 Java8 特性(一)—— 函数式编程的四个基本接口

Java8特性(一)—— 函数式编程的四个基本接口一、基本函数式接口基本的函数式接口主要有四个:① Supplier<T>生产者:无输入,生产一个T类型的值;② Consumer<T>消费者:输入一个T类型的值,无输出;③ Function<T,R>函数:输入一个T类型的值,返回一个R类型的值;④ Predicate<T&g...

2019-07-25 11:44:55 161

原创 再看线程池

1、曾了解过线程池却一直模模糊糊,了解得差不多却对某些点依然疑惑。再次回顾线程池。1.1: 默认构造函数public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,ThreadFactory thread...

2019-07-24 11:09:18 69

转载 OCR学习

看了几篇文章以下是链接。https://blog.csdn.net/JerryWisdom666/article/details/78268650http://www.longdw.com/android-tesseract-ocr/https://blog.csdn.net/qq_34952110/article/details/78037459http://www.cnbl...

2019-07-22 09:49:40 125

原创 SpringBoot中的HandlerInterceptorAdapter

在SpringBoot中我们可以使用HandlerInterceptorAdapter这个适配器来实现自己的拦截器。这样就可以拦截所有的请求并做相应的处理。在HandlerInterceptorAdapter中主要提供了以下的方法:preHandle:在方法被调用前执行。在该方法中可以做类似校验的功能。如果返回true,则继续调用下一个拦截器。如果返回false,则中断执行,也就是说我们想调用...

2019-06-26 16:56:28 688

转载 使用@Retryable和@Recover实现重处理,以及重处理失后的回调

1.pom引用org.springframework.retryspring-retry2.应用启动类开启retry@SpringBootApplication@EnableRetrypublic class DatasyncApplication {public static void main(String[] args) { SpringApplication.r...

2019-06-19 11:54:52 573

转载 Java多线程引发的性能问题以及调优策略

Web服务器中,在正常负载情况下,为每个任务分配一个线程,能够提升串行执行条件下的性能。只要请求的到达率不超出服务器的请求处理能力,那么这种方法可以同时带来更快的响应性和更高的吞吐率。如果请求的到达速率非常高,且请求的处理过程是轻量级的,那么为每个请求创建一个新线程将消耗大量的计算资源。引发的问题线程的生命周期开销非常高消耗过多的CPU资源如果可运行的线程数量多于可用处理器的数量,那么有线...

2019-06-19 11:54:24 197

原创 多线程~java.util.concurrent包

我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的...

2019-06-19 11:53:32 84

原创 IDEA中GIt版本控制并将本地代码上传至Github

一、安装git   Git工具下载:https://git-scm.com/downloads 从官网下载。安装很简单,基本都是下一步。安装完的第一件事情就是创建一个Git用户:git config --global user.email "you@example.com"git config --global user.name “Your Name”还有一个比较重要的命令就是帮...

2019-06-19 11:51:13 88

原创 IDEA版本控制工具VCS中使用Git

IDEA版本控制工具VCS中使用Git,以及快捷键总结(不使用命令)下面来看以上各场景在IDEA中对应的操作。场景一:小张创建项目并提交到远程Git仓库创建好项目,选择VCS - > Import into Version Control -> Create Git Repository接下来指定本地仓库的位置,按个人习惯指定即可,例如这里选择了项目源代码同目录点击OK后...

2019-06-19 11:49:26 6540 1

转载 Kafka三款监控工具比较

Kafka三款监控工具比较博客分类: MQ在之前的博客中,介绍了Kafka Web Console这 个监控工具,在生产环境中使用,运行一段时间后,发现该工具会和Kafka生产者、消费者、ZooKeeper建立大量连接,从而导致网络阻塞。并且这个 Bug也在其他使用者中出现过,看来使用开源工具要慎重!该Bug暂未得到修复,不得已,只能研究下其他同类的Kafka监控软件。通过研究,发现主流的三...

2019-06-17 16:11:29 686

转载 在Java中12个常见的语法糖

在Java中12个常见的语法糖本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学会如何使用 Java 语法糖的同时,了解这些语法糖背后的原理语法糖语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法...

2019-05-30 11:47:44 112

原创 springboot整合shiro(含MD5加密)

springboot整合shiro(含MD5加密)开发环境:1、mysql - 5.7.212、navicat(mysql客户端管理工具)3、idea 20174、jdk95、tomcat 8.56、springboot7、mybatis 38、shiro9、maven项目开始:一、数据库设计:注:数据库三张表和spring整合shiro中的一模一样,在那边已经详细说明,...

2019-05-28 16:06:04 1985

空空如也

空空如也

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

TA关注的人

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