首页
学习
活动
专区
工具
TVP
发布

民工哥技术之路

专栏作者
826
文章
920829
阅读量
55
订阅数
突发!知名开源软件宣布暂停国内服务
因被境外诈骗团伙利用的原因,开源远程控制软件 RustDesk 屏蔽国内IP地址的连接(RustDesk 从没有在国内架设过服务器)!
民工哥
2024-05-14
1270
Windows 远程不要再用 mstsc 了,这款开源神器才是 YYDS!
做为程序员的我们,经常与服务器打交道,不可避免的要去登录服务器(远程登录)进行一系列的操作,比如:登录服务器部署应用、调试 API、检查代码运行情况等。
民工哥
2024-05-14
2040
面试官:本地缓存怎么选型?问倒一大片!
图片(2)ConcurrentHashMap 优化 Caffeine 底层都是通过 ConcurrentHashMap 来进行数据的存储,因此随着 Java8 中对 ConcurrentHashMap 的调整,数组 + 链表的结构升级为数组 + 链表 + 红黑树的结构以及分段锁升级为 syschronized+CAS,降低了锁的粒度,减少了锁的竞争,这两个优化显著提高了 Caffeine 在读多写少场景下的查询性能。 (3)新型淘汰算法 W-TinyLFU 传统的淘汰算法,如 LRU、LFU、FIFO,在实际的缓存场景中都存在一些弊端,如 FIFO 算法,如果缓存使用的频率较高,那么缓存数据会一直处在进进出出的状态,间接影响到缓存命中率。LRU 算法,在批量刷新缓存数据的场景下,可能会将其他缓存数据淘汰掉,从而带来缓存击穿的风险。LFU 算法,需要保存缓存记录的访问次数,带来内存空间的损耗。 因此,Caffeine 引入了 W-TinyLFU 算法,由窗口缓存、过滤器、主缓存组成。缓存数据刚进入时会停留在窗口缓存中,这个部分只占总缓存的 1%,当被挤出窗口缓存时,会在过滤器汇总和主缓存中淘汰的数据进行比较,如果频率更高,则进入主缓存,否则就被淘汰,主缓存被分为淘汰段和保护段,两段都是 LRU 算法,第一次被访问的元素会进入淘汰段,第二次被访问会进入保护段,保护段中被淘汰的元素会进入淘汰段,这种算法实现了高命中率和低内存占用。
民工哥
2024-05-14
1150
一款比 JumpServer 更轻量、更牛逼的堡垒机!
堡垒机主要用于保障网络和数据的安全。在特定的网络环境下,它运用各种技术手段对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为进行监控和管理,以便于集中报警、及时处理及审计定责。
民工哥
2024-05-14
1350
2023 年最受欢迎 Linux 发行版本!
Linux 系统一般指 GNU/Linux,它是一个可以免费使用和自由传播的类 UNIX 操作系统。它的内核最初由芬兰赫尔辛基大学的林纳斯·本纳第克特·托瓦兹于1991年10月5日发布。
民工哥
2024-05-14
1640
WebSocket 集群解决方案!
代码演示 1.Websocket Server 建立userid和session的绑定关系 @ServerEndpoint("/websocket/{businessType}/{userId}") @Component public class WebSocketServer { /** * 若要实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key可以为用户标识 * 注意:allSession 只记录当前机器的 客户端连接,不是所有session连接 */ public static ConcurrentHashMap<String, Session> allSession = new ConcurrentHashMap<>(); @Resource private RedisService redisService; /** * 连接建立成功调用的方法 * * @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据 */ @OnOpen public void onOpen(@PathParam(value = "businessType") String businessType, @PathParam(value = "userId") String userId, Session session, EndpointConfig config) { if (StringUtils.isEmpty(userId)) { return; } /** * 加入到本地map */ allSession.put(userId, session); } /** * 连接关闭调用的方法 */ @OnClose public void onClose(@PathParam(value = "userId") String userId, Session session) { if (StringUtils.isNotEmpty(userId)) { allSession.remove(userId); } } /** * 发生错误时调用 * * @param * @param */ @OnError public void onError(@PathParam(value = "userId") String userId, Session session, Throwable error) { } /** * 用户id * * @param userId * @param message */ public void sendMessageToOneUser(Integer userId, String message, String msgId) { if (userId == null) { return; } Session session = allSession.get(String.valueOf(userId)); if (session != null) { //所有Websocket Server 根据客户端userid找到对应session, 只有存在userid和session的绑定关系的Websocket Server才发送消息到客户端 session.getAsyncRemote().sendText(message); } else { System.err.println("session为空"); allSession.remove(userId + ""); } } } 2.所有Websocket Server 接收消息并处理 @Component @RequiredArgsConstructor public class CreateOrderConsumer implements BaseConsumer { private final WebSocketServer webSo
民工哥
2024-05-14
1010
早知道有这么个吊炸天的 CI&CD 工具,我就不用 Jenkins 了!
提到运维自动化,我们就不得不提起 Jenkins 这个工具,它是一个功能强大且灵活的持续集成工具,适用于各种规模的软件项目,并能够通过自动化和集成化的方式提高软件开发和测试的效率。
民工哥
2024-05-14
1590
最强终端工具!直到遇上她们我终于狠心的卸载了 Xshell
做为程序员的我们,经常与服务器打交道,不可避免的要通过SSH去登录服务器进行一系列的操作,比如:登录服务器部署应用、调试API、检查代码运行情况等。
民工哥
2024-04-26
2730
Spring Boot 动态加载 jar 包,动态配置太强了
目前数据治理服务中有众多治理任务,当其中任一治理任务有改动需要升级或新增一个治理任务时,都需要将数据治理服务重启,会影响其他治理任务的正常运行。
民工哥
2024-04-19
1820
5 大主流方案对比:MySQL 千亿级数据线上平滑扩容实战
在项目初期,我们部署了三个数据库A、B、C,此时数据库的规模可以满足我们的业务需求。为了将数据做到平均分配,我们在Service服务层使用uid%3进行取模分片,从而将数据平均分配到三个数据库中。
民工哥
2024-04-02
1040
突发!577 亿科技巨头破产!
3月29日,有消息称,深圳市柔宇科技股份有限公司及其子公司深圳柔宇电子技术有限公司、深圳柔宇显示技术有限公司各新增一则破产审查案件,申请人分别为自然人张某、王某某、郭某某。
民工哥
2024-04-02
690
盘点 Lombok 的几个骚操作
民工哥
2024-04-02
1040
命令行终端开源利器,解决你敲错命令的烦恼,用这个爽多了!
我想大家都有这样的烦恼:终端命令输入错误常常成为工作效率的瓶颈。每次输入错误的命令,他都需要重新查找正确的命令,这不仅浪费时间,还容易让人感到挫败。
民工哥
2024-04-02
1000
面试官:SpringBoot 该如何预防 XSS 攻击 ?
写此文章的目的是为了记录一下在工作中解决的 XSS漏洞 问题。XSS漏洞是生产上比较常见的问题。虽然是比较常见并且是基本的安全问题,但是我们没有做🙄️ ,也怪我没有安全意识。于是终于有一天被制裁了。所以这次就补上了,记录一下。
民工哥
2024-04-02
950
这才是企业级的oss-spring-boot-starter,开箱即用!
本文主要讲解企业级OSS对象存储服务Spring Boot Starter制作,开箱即用,为项目进行赋能。基于AmazonS3协议,适配市面上的对象存储服务如:阿里云OSS、腾讯COS、七牛云OSS、MInio等等 什么是OSS? OSS(Object Storage Service),对象存储服务,对象存储服务是一种使用HTTP API存储和检索对象的工具。就是将系统所要用的文件上传到云硬盘上,该云硬盘提供了文件下载、上传、预览等一系列服务,具备版本,权限控制能力,具备数据生命周期管理能力这样的服务以及技术可以统称为OSS OSS在项目中的使用 OSS对象存储在目前大部分项目中必不可少的存在,如下图所示。
民工哥
2024-04-02
1230
还在 Ping 百度吗?那你就太 Low 了!
hping 是一个命令行的网络工具(与ping命令类似,但功能更强大),它可以生成和发送自定义的TCP/IP数据包,对指定的主机或端口进行探测。它支持TCP,UDP,ICMP 和 RAW-IP 协议。
民工哥
2024-03-21
1100
只知道 Nginx 牛逼!却不知道它怎么支持百万并发?
大家都知道,无论是运维、开发、测试,Nginx 技术栈的学习总是必不可少的,只是不同的岗位掌握的深度与广度不同而已。
民工哥
2024-03-21
2800
三种方案优化 2000w 数据大表!忒强~
当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题
民工哥
2024-03-21
960
Linux 新变革已经开始,文本三剑客地位不保!
众所周知,在 Linux 系统中,awk、grep、sed 这三个命令,因其功能强大,日常使用频繁,在 Linux 系统下处理文本是个非常不错的神器,grep 用于查找,sed 用于取行和替换,awk 用于运算。因此,这三个命令一直都有着文本三剑客的称号!
民工哥
2024-03-21
970
10 个高级的 SQL 查询技巧
如果您想要查询子查询,那就是CTEs施展身手的时候 - CTEs基本上创建了一个临时表。
民工哥
2024-03-12
1140
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档