- 博客(9)
- 收藏
- 关注
原创 netty web container(http)
近日,对netty研究,编写了一个简单web容器(使用http协议),主要的功能有类扫描,拦截器和参数解析等。具有体积小,netty高效性,自定请求协议和自定请求过程的特点。系统架构container|--container-core |--container-web|--container-example案例(在container-example中)引入jar<dependencies> <dependency> <groupId>
2022-01-09 00:13:18 439
原创 Lombok 注解
基础注解@Setter 生成该类的成员变量的setter方法@Getter 生成该类的成员变量的getter方法@ToString 作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段@EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode@NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。高级应用@NoArgsConstructor:生成无参构造器;@Requi
2021-12-20 10:16:06 333
原创 Redis Reactive
当并发量大的时候,如果我们有对redis大量进行数据读写操作时,可能会因为大量线程的读写而造成部分线程的阻塞,同时我们的服务还是游刃有余的。只时,我们应该怎么处理呢!我们可以使用redis-reactive来进行“背压”,来减少阻塞,提交效率。现有十万的数据需要存储在redis服务上,普通的redis写操作,堆内存图如下:reactive的redis写操作,堆内存图如下:从两张图可发现,reactive-redis的写操作使用的时间不到普通redis的写操作的一半不到,可见其性能的卓越性。代码案
2021-12-16 17:52:39 6253 2
原创 等待执行定量并发队列
在处理数据并发中,可能会遇到这种情况:客户端的请求是无限的,而服务端处理的数据是有限的,如果超过了这个服务处理的并发限制,那么程序就会报错。看似没毛病,似乎是正常的报错,但这种报错应该怎么合理的控制呢?我才用的是应该既能合理等待数据的排队,又能定量并发执行的队列,说明图如下:代码案例:核心队列:/** * 等待执行定量并发队列 * * 注意:1、在分布式,编程式事务的情况下,需添加处理 * 2、如果数据已添加到对列中,在添加数据的线程中需添加数据移除处理(比如:将失败线程的key值
2021-12-04 11:06:30 456
原创 webflux 支持formdata获取参数(包括文件),以及formdata参数封装
在项目微服务的升级过程中,我们通常会设置一个网关,作为一个洪流的出入口,在Spring Cloud 中提供了对应的功能,也就是Spring Cloud Gateway。对于旧的项目springMVC,实际也就是将spring-webmvc升级为spring-webflux,但你会发现fromdata 形式的数据,在webmvc可以被封装成参数,而在webflux中却不能,是不支持吗?在spring官方文档中,有提及对fromdata表单数据的获取,如下图fromdata表单数据需要通过ServerWe
2021-11-06 15:05:03 6275 10
原创 redis集群客户端使用
依赖jar&lt;!-- Redis客户端 --&gt;&lt;dependency&gt; &lt;groupId&gt;redis.clients&lt;/groupId&gt; &lt;artifactId&gt;jedis&lt;/artifactId&gt;&lt;/depend
2018-12-06 11:14:08 687
原创 Linxu常用基本操作
Linxu常用基本操作查看目录ls –a 显示所有目录包括隐藏文件ll 显示所有文件,包括文件的属性,但不包括隐藏文件切换目录pwd 显示当前文件目录的路径创建目录mrdir 目录的绝对或相对路径 删除文件的目录查看文件cat>>文件名 创建文件名和内容cat 文件(相对或绝对)路径 查看文件的内容more 文件(相对或绝对)路径 查看多...
2018-12-06 10:53:44 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人