摘要: Spring Boot + Gzip 压缩超大 JSON 对象,传输大小减少一半 源码在:\day01-sentinel\cloud-demo\user-service\src\main\java\cn\itcast\user\filter 阅读全文
posted @ 2022-12-12 16:40 Ruthless 阅读(39) 评论(0) 推荐(0) 编辑
 
摘要: 使用@Async注解时,推荐使用自定义线程池的模式;查看源码,@Async的默认线程池为SimpleAsyncTaskExecutor,默认线程池有如下弊端:在线程池应用中,参考阿里巴巴java开发规范:线程池不允许使用Executors去创建,不允许使用系统默认的线程池,推荐通过ThreadPoo 阅读全文
posted @ 2022-11-17 15:18 Ruthless 阅读(32) 评论(0) 推荐(1) 编辑
摘要: 业务需求:用户注册成功之后,系统会给用户发放优惠券,发送邮件,发送短信等操作。 作为开发人员,很容易写出如下代码: /** * 用户注册逻辑 * * @author Lynch */ @GetMapping("/register") public String register(String use 阅读全文
posted @ 2022-11-17 15:00 Ruthless 阅读(165) 评论(0) 推荐(1) 编辑
 
摘要: Spring Boot使用Future以及定义超时 @Async注解用法1. 在方法上使用@Async注解,申明该方法是一个异步任务;2. 在类上面使用@Async注解,申明该类中的所有方法都是异步任务;3. 使用此注解的方法的类对象,必须是spring管理下的bean对象;4. Spring Bo 阅读全文
posted @ 2022-11-14 13:38 Ruthless 阅读(92) 评论(0) 推荐(0) 编辑
 
摘要: 功能需求1. 查询方圆3000米范围内的所有用户/商户数据2. 根据距离排序(查询我附近的用户/商户,按距离排序并显示距离,单位米(前端要传location字段)) /** * 排序封装(查询我附近的用户/商户,按距离排序并显示距离,单位米(前端要传location字段)) * * @param p 阅读全文
posted @ 2022-11-02 16:56 Ruthless 阅读(58) 评论(0) 推荐(0) 编辑
 
摘要: 1.概论使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。 redis提供两种方式进行持久化:RDB(Redi 阅读全文
posted @ 2022-09-28 10:53 Ruthless 阅读(20) 评论(0) 推荐(0) 编辑
 
摘要: 在实际生产环境中,缓存的使用规范一直备受重视的,如果使用的不好,很容易遇到缓存穿透、缓存击穿、雪崩等严重异常情景,从而给系统带来难以预料的灾害。 为了避免缓存使用不当带来的损失,我们有必要了解每种异常产生的原因和解决办法,从而做出更好的预防措施。 一 缓存穿透缓存穿透是指客户端请求的数据在缓存中和数 阅读全文
posted @ 2022-09-27 13:51 Ruthless 阅读(38) 评论(0) 推荐(0) 编辑
 
摘要: OpenResty+Lua限流实战目录一. 限制并发二. 反向代理三. 内部重定向四. lua初始化五. 限制接口时间窗请求数(非平滑)六. 限制接口时间窗请求数(平滑) a. 桶(无容量) b. 漏桶(有桶容量)七. 令牌桶八. 组合各种limter 一. 限制并发 场景1:按照 ip 限制其并发 阅读全文
posted @ 2022-09-19 13:46 Ruthless 阅读(204) 评论(0) 推荐(0) 编辑
 
摘要: --Lua 面向对象(实现类的创建和实例化、封装、继承、多态) --1、Lua面向对象基础 --1.1、Lua类的创建和实例化 --name、age相当于person对象的成员变量,eat()相当于person对象方法 person={name='张三', age=20} function pers 阅读全文
posted @ 2022-09-02 14:10 Ruthless 阅读(62) 评论(0) 推荐(0) 编辑
摘要: map = {} local this = map function this:new() o = {} setmetatable(o,self) self.__index = self self.count = 0 return o end -- put在放入数据时,如果放入数据的key已经存在M 阅读全文
posted @ 2022-09-02 11:28 Ruthless 阅读(60) 评论(0) 推荐(0) 编辑
 
摘要: 在很多复杂的业务场景下,排序的规则会比较复杂,单一的降序,升序无法满足日常需求。不过 ES 中提供了给文档加权重的方式来排序。 首先初始化三条测试数据,方便查看效果(type:1 为翻译,2 为转载,3 为原创): POST /language_index/_doc/1 { "id": 1, "ti 阅读全文
posted @ 2022-08-18 11:22 Ruthless 阅读(929) 评论(0) 推荐(0) 编辑
 
摘要: 1、同义词词库准备一个同义词文件,每行一个同义词词组,例子sku_synonym.txt: 西红柿,番茄,tomato =>西红柿,番茄 马铃薯,土豆 =>马铃薯,土豆 社保,公积金 =>社保,公积金 注意:编码 UTF-8 (很关键!!!我就是被坑在这里) 2、上传同义词文件上传同义词文件,点击此 阅读全文
posted @ 2022-08-05 14:24 Ruthless 阅读(200) 评论(0) 推荐(0) 编辑
 
该文被密码保护。 阅读全文
posted @ 2022-05-12 15:51 Ruthless 阅读(17) 评论(0) 推荐(0) 编辑
 
摘要: 一、Master组件(管理节点)1.kube-apiserverKubernetes API,集群的统一入口,各组件协调者,以RESTfulAPI提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。 2.kube-controller-manager处理 阅读全文
posted @ 2021-12-14 15:35 Ruthless 阅读(283) 评论(0) 推荐(0) 编辑
 
摘要: 1、密码加密格式:ENCODER.encode(密码明文)说明:加密后作为密码密文保存到数据库 例如:ENCODER.encode("123456") //$2a$10$PVUHriO67YxRYq84eXVpjefGMmgiScUIHRCaDpj0eWti/535fV83e 2、密码验证 Pass 阅读全文
posted @ 2021-10-30 17:22 Ruthless 阅读(1156) 评论(0) 推荐(0) 编辑
 
摘要: 一、项目下载ssh://git@*.*.*.*:33068/root/tajia.git 二、配置数据库1.参数说明 版本: mysql5.7.8+ 默认字符集: utf8mb4 默认排序规则: utf8mb4_general_ci 要求设置数据库大小写不敏感 lower_case_table_na 阅读全文
posted @ 2021-10-28 19:40 Ruthless 阅读(2315) 评论(0) 推荐(0) 编辑
摘要: 在查询商品时,优先查询OpenResty的本地缓存,需求:1.修改item.lua中的read_data函数,优先查询本地缓存,未命中时再查询Redis、Tomcat2.查询Redis或Tomcat成功后,将数据写入本地缓存,并设置有效期3.商品基本信息,有效期30分钟4.库存信息,有效期1分钟 1 阅读全文
posted @ 2021-10-28 09:29 Ruthless 阅读(438) 评论(1) 推荐(0) 编辑
 
摘要: 冷启动:服务刚刚启动时,Redis中并没有缓存,如果所有商品数据都在第一次查询时添加缓存,可能会给数据库带来较大压力。 缓存预热:在实际开发中,我们可以利用大数据统计用户访问的热点数据,在项目启动时将这些热点数据提前查询并保存到Redis中。 我们数据量较少,可以在启动时将所有数据都放入缓存中。 缓 阅读全文
posted @ 2021-10-22 14:41 Ruthless 阅读(411) 评论(0) 推荐(0) 编辑
 
摘要: OpenResty提供了各种API用来获取不同类型的请求参数: 在查询商品信息的请求中,通过路径占位符的方式,传递了商品id到后台: 需求:在OpenResty中接收这个请求,并获取路径中的id信息,拼接到结果的json字符串中返回 nginx.conf配置: #user nobody; worke 阅读全文
posted @ 2021-10-20 19:41 Ruthless 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 需求:实现商品详情页数据查询,在OpenResty中接收请求,并返回一段商品的假数据。 步骤一:修改nginx.conf文件1.在nginx.conf的http下面,添加对OpenResty的Lua模块的加载: #####Windows版 #加载lua 模块 lua_package_path "D: 阅读全文
posted @ 2021-10-20 19:09 Ruthless 阅读(181) 评论(1) 推荐(0) 编辑
  2023年2月1日
正文内容加载中...
posted @ 2023-02-01 17:25 Ruthless 阅读(8) 评论(0) 推荐(0) 编辑
  2023年1月20日
摘要: 如何用Netty实现高效的HTTP服务器 阅读全文
posted @ 2023-01-20 23:05 Ruthless 阅读(4) 评论(0) 推荐(0) 编辑
  2023年1月15日
摘要: spring boot 项目在做URL权限控制的时候需要获取全部的URL,一个一个去controller中找费时费力,有的权限点的命名和URL有一定的对应关系。如果能用程序获得全部URL,将会省去很多事。在项目中添加如下Controller,请求/getAllUrl,即可看到项目所有的URL。当然也 阅读全文
posted @ 2023-01-15 18:16 Ruthless 阅读(13) 评论(0) 推荐(0) 编辑
  2023年1月14日
摘要: 一、模拟单机连接瓶颈我们知道,通常启动一个服务端会绑定一个端口,例如8000端口,当然客户端连接端口是有限制的,除去最大端口65535和默认的1024端口及以下的端口,就只剩下1024~65535个,再扣除一些常用端口,实际可用端口只有6万个左右。 那么,我们如何实现单机百万连接呢?假设在服务端启动 阅读全文
posted @ 2023-01-14 17:07 Ruthless 阅读(43) 评论(0) 推荐(1) 编辑
摘要: 三分钟搞定年终总结,附个人成长复盘方法 阅读全文
posted @ 2023-01-14 09:00 Ruthless 阅读(5) 评论(0) 推荐(1) 编辑
  2022年12月12日
摘要: Spring Boot + Gzip 压缩超大 JSON 对象,传输大小减少一半 源码在:\day01-sentinel\cloud-demo\user-service\src\main\java\cn\itcast\user\filter 阅读全文
posted @ 2022-12-12 16:40 Ruthless 阅读(39) 评论(0) 推荐(0) 编辑
  2022年12月5日
摘要: IT技术团队管理 阅读全文
posted @ 2022-12-05 10:45 Ruthless 阅读(7) 评论(0) 推荐(0) 编辑
  2022年11月21日
摘要: 哲理性的个性签名 阅读全文
posted @ 2022-11-21 10:04 Ruthless 阅读(5) 评论(0) 推荐(0) 编辑
  2022年11月17日
摘要: 使用@Async注解时,推荐使用自定义线程池的模式;查看源码,@Async的默认线程池为SimpleAsyncTaskExecutor,默认线程池有如下弊端:在线程池应用中,参考阿里巴巴java开发规范:线程池不允许使用Executors去创建,不允许使用系统默认的线程池,推荐通过ThreadPoo 阅读全文
posted @ 2022-11-17 15:18 Ruthless 阅读(32) 评论(0) 推荐(1) 编辑
摘要: 业务需求:用户注册成功之后,系统会给用户发放优惠券,发送邮件,发送短信等操作。 作为开发人员,很容易写出如下代码: /** * 用户注册逻辑 * * @author Lynch */ @GetMapping("/register") public String register(String use 阅读全文
posted @ 2022-11-17 15:00 Ruthless 阅读(165) 评论(0) 推荐(1) 编辑
摘要: Java实现异步编程的8种方式 阅读全文
posted @ 2022-11-17 08:53 Ruthless 阅读(60) 评论(0) 推荐(0) 编辑
  2022年11月14日
摘要: Spring Boot使用Future以及定义超时 @Async注解用法1. 在方法上使用@Async注解,申明该方法是一个异步任务;2. 在类上面使用@Async注解,申明该类中的所有方法都是异步任务;3. 使用此注解的方法的类对象,必须是spring管理下的bean对象;4. Spring Bo 阅读全文
posted @ 2022-11-14 13:38 Ruthless 阅读(92) 评论(0) 推荐(0) 编辑
  2022年11月3日
摘要: 一个基本的历史事实不容抹杀:义和团运动在粉碎外国列强瓜分中国的斗争中,发挥了重大作用,遏制了侵略者瓜分中国的图谋。 为什么说1840年第一次鸦片战争是中国近代史的开端?第一次鸦片战争以中国失败而告终,主权独立受到侵犯,领土完整遭到破坏,中国逐渐沦入半殖民地半封建社会; 鸦片战争后,随着五口通商和西方 阅读全文
posted @ 2022-11-03 17:26 Ruthless 阅读(216) 评论(0) 推荐(0) 编辑
  2022年11月2日
摘要: 功能需求1. 查询方圆3000米范围内的所有用户/商户数据2. 根据距离排序(查询我附近的用户/商户,按距离排序并显示距离,单位米(前端要传location字段)) /** * 排序封装(查询我附近的用户/商户,按距离排序并显示距离,单位米(前端要传location字段)) * * @param p 阅读全文
posted @ 2022-11-02 16:56 Ruthless 阅读(58) 评论(0) 推荐(0) 编辑
  2022年10月29日
摘要: 一、利润 5个盈利模式,带你找到自己的利润区 二、玩法 活跃私域社群的10个玩法 阅读全文
posted @ 2022-10-29 20:37 Ruthless 阅读(20) 评论(0) 推荐(0) 编辑
  2022年10月26日
摘要: eclipse安装阿里编码规约扫描插件 阅读全文
posted @ 2022-10-26 10:46 Ruthless 阅读(8) 评论(0) 推荐(0) 编辑
  2022年9月29日
该文被密码保护。 阅读全文
posted @ 2022-09-29 14:20 Ruthless 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 需求:需要在系统中展现,系统中用户的状态。展示用户是否在线、忙碌或者离线。 做法:1. 使用 webSocket 建立链接,通过实时推送用户信息,达到用户状态的更新。2. 当用户登录时自动设置用户状态为上线,并推送用户信息到 前端。3. 当用户离线时自动设置用户状态为离线状态,并推送给前端。4. 通 阅读全文
posted @ 2022-09-29 13:54 Ruthless 阅读(127) 评论(0) 推荐(0) 编辑
  2022年9月28日
摘要: 手撸架构,Nginx 面试40问 阅读全文
posted @ 2022-09-28 15:23 Ruthless 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1.概论使用到Redis做缓存,方便多个业务进程之间共享数据。由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。 redis提供两种方式进行持久化:RDB(Redi 阅读全文
posted @ 2022-09-28 10:53 Ruthless 阅读(20) 评论(0) 推荐(0) 编辑