
框架及三方组件
文章平均质量分 53
框架及三方组件
雨欲语
说再见就是一点一点死去
展开
-
SpringBoot利用ConstraintValidator实现自定义注解校验
/ 默认错误消息String message() default "name不能为空";// 分组Class原创 2023-08-23 10:44:49 · 3142 阅读 · 0 评论 -
Google Guava Cache的使用
Google Guava Cache是Google Guava库中的一个缓存框架,用于缓存计算结果、数据或资源,提高程序访问效率和响应速度。Guava Cache具有以下特点:①可配置性:Guava Cache支持多种缓存参数的配置,例如缓存大小、过期时间、访问策略等,可以根据应用场景进行灵活配置。②基于引用计数的回收策略:Guava Cache使用基于引用计数的回收策略,当缓存对象的引用计数为0时自动回收,避免了内存泄漏。原创 2023-08-22 17:48:02 · 1447 阅读 · 0 评论 -
Windows安装RabbitMQ
RabbitMQ不用过多介绍,直接进入安装主题。原创 2023-04-06 16:05:03 · 574 阅读 · 1 评论 -
OpenAI注册以及Java代码调用
OpenAI可以使用google账号登录,也可以使用微软账号登录,这里建议使用微软账号登录,微软账号不需要vpn即可实现注册,用国内的邮箱和电话号码即可。在红色对话框即可进行对话,需要注意的是,因为受返回会话字数限制,超过一定数量就不会继续,可以在对话框输入continue继续进行。注意这个有效时间是20分钟,如果没有接收到短信会将购买费用返回,我使用阿根廷、印度的都能成功,可以根据实际情况选择。使用第一步注册的微软账号登录,接着会让提供电话号码,使用第二步购买的号码,等待验证码输入即可。原创 2023-03-30 14:43:25 · 10574 阅读 · 36 评论 -
Jmeter简单使用
这里的十个分别表示:名称、协议(http或httpsd)、域名(我这里进行本地测试)、端口号(根据自己的实际情况填写)、请求方法、请求路径、编码、参数、请求体、文件上传。Jmeter是由Apache下的一个纯Java开源项目,可用于做接口测试,也可用于做性能测试,本文主要简单介绍一下安装及使用。Jmeter默认的GUI界面是英文,如果需要改成中文可在一下路径设置:options->Choose Language。其中1,2,3分别表示 线程数量、线程启动时间、运行次数。原创 2023-03-30 13:01:31 · 364 阅读 · 0 评论 -
SpringCloudGateway--基于redis实现令牌桶算法
就是跟生活中漏桶一样,一个水桶,下面有个洞往外漏水,会控制水流速度,不论水桶中有多少睡,漏水的速率保持一致。主要是当某时间段有大量请求,但是已经达到漏桶上限的情况。计数器算法是指从第一个请求开始,每多一个请求就加1,假设设置每秒限流100,当在一秒钟前500ms已经达到100,后面的500ms中的所有请求都会被拒绝。就是在桶中放入令牌,请求获取到令牌后才能继续执行,如果桶中没有令牌,请求要么继续等待,要么直接拒绝。算法工厂由代码提供,令牌桶由redis提供,底层逻辑是lua脚本提供,已经封装好的。原创 2023-03-06 14:40:14 · 1715 阅读 · 0 评论 -
SpringCloudGateway--过滤器(内置filter)
目录一、概览二、内置过滤器1、StripPrefix2、AddRequestHeader3、AddResponseHeader4、DedupeResponseHeader5、AddRequestParameter6、CircuitBreaker7、FallbackHeaders8、RequestRateLimiter9、RedirectTo10、RemoveRequestHeader11、RemoveResponseHeader12、RemoveRequestParameter13、RewritePath原创 2022-12-06 13:31:39 · 7990 阅读 · 0 评论 -
SpringCloudGateway--谓词(断言)
SpringCloudGateway中三个重要词汇:路由(Route):配置网关中的一个完整路由,包括命名,地址,谓词集合(规则),过滤器集合。谓词、断言(Predicate):这是一个 Java 8 函数谓词。输入类型是一个 Spring 框架的 ServerWebExchange。这允许开发人员匹配来自 HTTP 请求的任何内容,例如头部或参数。简单说就是看发送的请求url中是否符合谓词中的规则,符合就通过,不符合就进行拦截。原创 2022-11-26 19:03:26 · 1942 阅读 · 0 评论 -
SpringCloudGateway--自动路由映射与手动路由映射
新建子项目service_one,service_two。可以看见由gateway进行了自动转发,并且是轮询进行。原创 2022-11-22 22:07:10 · 2270 阅读 · 0 评论 -
Nacos Windows安装
下载下来的文件解压,进入bin目录,打开dos界面,输入:startup.cmd -m standalone进行启动。我这里是建了一个standalone.cmd文件,将命令写入,之后直接双击启动即可。默认账户密码:nacos/nacos。原创 2022-11-22 18:02:36 · 446 阅读 · 0 评论 -
nacos通过服务名获取服务的ip和端口
在微服务某些场景中,我们需要在服务中调用别的服务,比如Java服务调用另外的Java服务时,可以通过引用jar包进行,但如果调用Python等其它服务,此时无法引用jar包,只能通过访问服务暴露的地址调用。可以看到源码中有获取默认的nacos配置的地方,如果我们本身是在一个微服务中进行调用,本身已经在配置文件中配置了nacos地址,此时会直接获取到默认的这些配置, 就不需要再有config的配置了。原创 2022-11-01 14:01:02 · 8860 阅读 · 2 评论 -
SpringBoot、MyBatis、PostgreSQL储存JSON、对象等自定义TypeHandler
由于MyBatis没有提供直接处理JSON的方法,因此需要自己实现处理JSON的类,并继承BaseTypeHandler来处理储存JSON字段。原创 2022-09-20 17:14:06 · 2682 阅读 · 1 评论 -
微服务的几种负载均衡算法
目录一、负载均衡二、负载均衡算法1、静态负载均衡2、动态负载均衡三、Dubbo负载均衡的四种算法1、基于权重随机算法RandomLoadBalance一、负载均衡负载均衡简单的说就是对流量进行重新分配,避免单一机器直接被较为集中的流量击穿,或者避免部分机器由于没有合理分配流量导致空闲。负载均衡分位硬件负载均衡和软件负载均衡,这里主要对软件负载均衡进行一个记录。软件方面的产品比较流行的有LVS、Nginx、HaProxy等。二、负载均衡算法负载均衡算法分位静态负原创 2022-06-07 16:11:55 · 3810 阅读 · 0 评论 -
SpringBoot中使用AOP实现耗时统计
Spring中一个重要的点就是面向切面编程,即AOP,可以实现程序中功能的解耦,让一些类共享相同的行为动作。Spring中AOP的实现主要通过JDK的动态代理和CGLIB实现。一、AOP中相关术语1、切面(Aspect):是指横切多个对象的关注点的一个模块化,切面通过常规类(基本模式方法)或者通过使用了注解@Aspect的常规类来实现。2、连接点(Joint point):就是spring中允许使用通知的地方,基本上每个方法前后抛异常时都可以是连接点3、通知(Advi原创 2022-05-02 18:05:12 · 3503 阅读 · 0 评论 -
Java上传文件到ucloud对象存储上
使用uclpud对象存储存储文件,比如excel、pdf、png等,这里讲述一下完整的一套使用流程。 首先原创 2022-01-12 13:27:51 · 1257 阅读 · 3 评论 -
Python集成kafka收集logging日志
Python集成kafka主要用到python-kafka和pyKafka,原创 2021-11-29 15:15:36 · 3373 阅读 · 7 评论 -
Python定时库Apscheduler的简单使用
在Python中需要执行定时任务,可以使用Apscheduler。原创 2021-11-08 16:11:46 · 2071 阅读 · 0 评论 -
Python使用mock进行异步的单元测试
Python中进行单元测试,可以使用unittest中的mock进行数据的模拟,十分方便,但如果模拟的函数是异步的,就没有太多资料可以参考了,这里主要讲解模拟异步的返回数据怎么处理。 首先有个异步的函数需要模拟测试:class AsyncTest: async def test_async(a, b): return await sleep(1, result=a+b) async def test_add(a, b): ...原创 2021-11-04 16:55:39 · 853 阅读 · 0 评论 -
sqlalchemy相关操作
sqlalchemy是一个Python ORM工具,类似与Java中的Mybatis、Hibernate等ORM框架,这里主要介绍sqlalchemy的一些常用操作。 安装sqlalchemy:pip install sqlalchemy 基本查询操作:原创 2021-11-02 16:23:01 · 971 阅读 · 0 评论 -
SpringBoot不同环境动态加载不同配置文件
在平常开发完成后,需要针对不同的环境进行不同的配置文件的选择,之前是建立多个配置文件,然后指定某一个配置文件使用,在进行部署的时候可以使用jar启动命令传参数的办法指定环境,但这样还不够通用,这里讲述一个根据环境变量自动加载不同配置文件的办法。active后面根据不同环境手动指定,现在是使用获取变量的方法${env}新建完成后需要重启电脑。...原创 2021-09-06 19:46:26 · 2222 阅读 · 0 评论 -
Spring Cloud Eureka注册中心
目录一、搭建Eureka服务注册中心二、使用Eureka编写服务提供者三、使用Eureka编写服务消费者四、Eureka注册中心开启密码认证一、搭建Eureka服务注册中心 我们编写一个注册中心服务,新建maven项目,pom文件引入依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-b...原创 2021-06-22 14:45:55 · 676 阅读 · 0 评论 -
SpringBoot无端口模式定时运行异步任务
Spring的具体搭建这里不多讲,这里提一个可以实现SpringBoot热部署的方法,即在pomwen如果是要进行无端口启动的后台程序,原创 2021-06-08 15:08:05 · 780 阅读 · 0 评论 -
Elasticsearch启动报错:java.security.AccessControlException: access denied (“javax.management.MBeanTrustP
ES启动报错:java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.lang.SecurityManager.ch...原创 2021-04-27 23:49:06 · 3202 阅读 · 0 评论 -
Elasticsearch启动报错:java.lang.RuntimeException: can not run elasticsearch as root
Elasticsearch启动报错:org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.8.9.jar:6.8.9] ...原创 2021-04-27 23:04:32 · 2442 阅读 · 0 评论 -
SpringBoot启动报错: org.springframework.beans.factory.BeanCreationException\ java.lang.NoSuchMethodError
错误信息如下:java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframewo...原创 2021-02-20 09:59:38 · 1406 阅读 · 0 评论 -
Idea部署SpringBoot多模块服务(jetty)
找到需要部署的模块,比如A是主模块,B是刚写好的模块,点击idea右边的maven,找到B模块,双击package即打包完成。 将jar包上传到linux指定的文件夹下,如果使用命令java -jar xxxx.jar部署的话,不能在后台运行,使用命令nohopjava -jar xxxx.jar &,&符号一定不要忘记。 启动后测试通过,可修改tengine配置,找到tengine所在位置,命令 find -name tengine,进...原创 2020-12-11 16:56:14 · 1099 阅读 · 1 评论 -
yml文件和properties文件
首先,两者都可以使用,具体的区别也不大,作用都是一样的。 1、properties文件中是key-value的形式,yml是树状结构 2、properties是.连接,赋值使用=,yml是将.用:替换,并且=也用:替换,且赋值的:后面必须有个空格 3、properties对缩进没有严格要求,yml对缩进有严格的要求 4、yml文件对中文的支持更好一点(别人讲的) 5、yml中每个基节点只能有一个 ...原创 2020-12-07 19:54:48 · 1376 阅读 · 0 评论 -
使用Redis实现MQ
整个过程,实际上就是利用Redis的功能,生产消息使用lpush入队,取消息就是rpop出队;生产消息publish发布消息到指定的频道,subscribe来订阅具体的消息。MQ实现的功能简单说就是将生产出来的消息来消费,具体的消费模式有点对点消费,发布\订阅模式的消费,Redis中也实现了点对点,发布\订阅这种方式,具体代码展示。常见的消息中间间有很多,比如ActiveMQ,RabbitMQ,Kafka等,这篇博客主要写一下用Redis实现MQ的功能。...原创 2020-11-07 15:57:33 · 2130 阅读 · 0 评论 -
C#使用SMO库自动建sqlserver的表
利用SMO自动建表,需要添加很多引用,比如ConnectionInfo、Management.Sdk.Sfc、SqlEnum等,可以直接在Nuget中查找SMO,然后找到一个Unofficial.Microsoft.SQLServer.SMO.2014,由Nils Luck提供的即可,这个已经包含了此次我们需要的所用引用: 我们这里完全实现根据信息来自动建表...原创 2020-04-14 21:29:39 · 1194 阅读 · 0 评论 -
SpringBoot整合ActiveMQ
这里使用SpringBoot整合ActiveMQ,同时测试queue和topic两种消息模式。 项目结构: pom导入jar包: <parent> <groupId>org.springframework.boot</groupId> <artif...原创 2019-10-09 10:29:55 · 912 阅读 · 0 评论 -
ActiveMQ与Spring整合——配置文件方式
ActiveMQ与Spring整合项目中,首先建立Maven项目之后,引入相应的包:<dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activem...原创 2019-09-26 01:18:03 · 866 阅读 · 0 评论 -
Quartz.net动态修改触发时间
在使用Quartz进行定时任务调度的时候,难免会遇到根据业务需求来修改我们的触发时间,而且是进行动态的修改,接下来我介绍一下Quartz.net怎么动态来修改触发时间,Java中的Quartz也是差不多的原理。这个demo是基于上一次动态暂停、恢复任务的基础上做的,可以查看链接:https://blog.youkuaiyun.com/qq_41061437/article/details/10...原创 2019-09-21 01:25:31 · 1967 阅读 · 0 评论 -
Quartz.net的使用——显示任务信息、暂停、恢复、显示下次触发时间、禁止并发运行
最近在使用Quartz.net开发项目的时候,因为业务需求,我需要在页面进行任务的管理,比如暂停、恢复、显示下次执行时间等。网上关于C#中的Quartz的信息很少,因此我很多是通过查找Java的API完成的,如果大家需要其它需求,也可以直接查找Java中Quartz怎么使用的就行。 这里我使用的是基于配置文件的方式进行的,对于Quartz.net不熟悉的可以看我的...原创 2019-09-19 23:47:54 · 6321 阅读 · 7 评论 -
ActiveMQ使用ObjectMessage出现异常
在使用ActiveMQ的ObjectMessage进行消息消费的时候,出现异常:javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbi...原创 2019-09-11 01:02:03 · 1890 阅读 · 0 评论 -
ActiveMQ中的数据类型
在讲ActiveMQ中的数据类型之前,我们先了解一下JMS。 JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。 JMS本身只定义了一系列的接口规范,是一种与厂商无关的 API,用来访问...原创 2019-09-11 00:47:52 · 2177 阅读 · 0 评论 -
ActiveMQ消费者和生成者——点对点模式、发布/订阅模式
ActiveMQ中一般有两种消息队列,一是点对点模式(p2p),二是发布/订阅模式(pub/sub)。 在进行demo测试之前,我们先建立一个maven工程,引入相应的包:<dependency> <groupId>org.apache.activemq</groupId> <artifactId&g...原创 2019-09-08 21:06:44 · 1549 阅读 · 0 评论 -
ActiveMQ介绍及快速搭建(Windows端和linux端)
ActiveMQ在实际的应用场景比如有 异步处理: 比如用户注册,注册的时候需要给发送邮件和发送短信,这个时候可以使用消息队列来进行处理,如图: 应用解耦: 比如用户下单购买,用户下单后,订单系统需要通知库存系统,传统的做法是订单系统调用库存系统的接口。这个时候,加入库存系统无法访问,则订单减库存将失败,从...原创 2019-09-06 00:07:02 · 938 阅读 · 0 评论 -
C#框架NHibernate的学习
今天对C#中的框架NHibernate进行了一番学习,与Java中的Hibernate十分类似。 我这里只介绍一下简单的使用,通过数据库进行语句的查询,然后把数据显示在界面上。 首先是将NHibernate的包导入项目中,在Java中有Maven来解决,在c#中通过Visual studio的NuGet可以解决,点击工具—>NuGet包管理...原创 2019-09-05 23:43:21 · 1321 阅读 · 0 评论 -
Quartz.net通过配置文件建立job和trigger
在上一篇文章当中,我简单的介绍了直接在代码中进行作业和触发器的建立,Quartz的强大之处在于其的配置文件,所以,这一篇博客主要讲怎么通过配置文件来建立作业和触发器。 首先我们创建作业调度器和和启动调度器:static void Main(string[] args){ // 创建作业调度器 ISchedulerFactory chedul...原创 2019-09-04 14:59:08 · 1398 阅读 · 0 评论 -
Quartz.net快速入门
之前在使用Java的时候,写过Quartz的博客,原文链接:https://blog.youkuaiyun.com/qq_41061437/article/category/8523862,现在做.net开发的时候,有个任务需要做定时调度作业,于是想到了Quartz,于是搜索了一番,发现Quartz还真迁移到了.net中,至此,我发现Java中很多优秀的框架或者组件都有迁移到.net中。虽然...原创 2019-09-04 13:32:12 · 1016 阅读 · 0 评论