logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

用户模块-SpringEvent观察者模式

RocketMQ 是一个高性能的消息队列系统,主要用来处理大规模的异步消息。简单来说,它就像一个传递信息的中介,能够把消息可靠地传递到接收方。

文章图片
#观察者模式#java#开发语言
每日算法一练:剑指offer——位运算篇(1)

在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。表示该袜子的颜色编号。请设计一个程序,在时间复杂度 O(n),空间复杂度O(1) 内找到这双撞色搭配袜子的两个颜色编号。编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为 汉明重量).)。如果数

文章图片
#算法
顶层架构 - 消息集群推送方案

上节我们说到,虽然可以通过 Redis 知道用户在哪台服务器,但如果每个路由服务都要和所有 WebSocket 服务器建连接,会导致连接数爆炸,影响性能。消息中间件是负责帮我们传递消息的“邮递员”,但有时候现成的“邮递员”不完全符合我们的需求,所以我们会考虑自己定制或改造它们。和 HTTP 不同,WebSocket 是“长连接”,一旦用户连上了某台服务器,他的这条连接就只属于这一台服务器了。定制中

文章图片
#架构#java#开发语言
用户模块 - IP归属地技术方案

当我们使用外部接口(比如淘宝的 IP 归属地接口)进行 IP 解析时,经常会遇到高并发的情况——多个请求同时发起,可能会导致接口被频繁访问,从而触发访问限制。线程池可以提前创建一定数量的线程,当有请求需要处理时,可以直接从线程池中获取线程,而不需要每次都创建新的线程。获取了用户的 IP 地址后,我们常常需要知道这个 IP 地址对应的地理位置,比如用户在哪个城市、国家。也就是说,WebSocket

文章图片
#java#分布式#网络
WebSocket——netty实现websocket编码

在本篇博客中,我们通过一步步搭建和配置 Netty 实现 WebSocket 的服务器端,成功实现了 WebSocket 消息的收发和处理。这里,我将简要总结一下整个过程和实现的关键点。1. WebSocket 和 Netty 的优势WebSocket是一种常用于浏览器和服务器之间的双向通信协议,它通过一个持久的连接,使得数据可以在客户端和服务器之间实时地双向传输。相比于传统的 HTTP 请求,W

文章图片
#websocket#网络协议#网络
用户模块——扫码登陆整合测试

在开发微信公众平台相关功能时,我们需要和微信服务器进行交互,例如获取用户信息、生成带参数二维码、处理消息等。微信官方提供了 API,但直接调用这些 API 需要自己处理 HTTP 请求、参数拼接、签名验证等,非常麻烦。:不同推广渠道(公众号菜单、公众号文章、海报等)扫描的二维码带不同参数,以统计用户来源。在微信公众号开发中,有时候我们需要获取用户的信息,比如。:用户扫描二维码后,公众号可以根据参数

文章图片
#websocket#网络协议#java
MySQL死锁成因及解决方案

在 MySQL 的并发事务处理中,虽然完全避免死锁不现实,但可以通过优化设计和合理操作,大幅降低死锁发生的概率。在上面死锁图中的示例中,如果事务1和事务2按照相同的顺序获取锁,死锁就不会发生。死锁是数据库并发事务处理中常见的问题,通过合理的设计和优化,可以有效降低死锁发生的概率。通过这个命令,可以查看死锁的原因、涉及的事务、被锁住的行和死锁的图形化表现等。这种行为也由隐式锁实现。InnoDB 的隐

文章图片
#mysql#数据库
MySQL的查询执行全过程详解

在这一步,MySQL 会根据解析器生成的语法树,进一步检查和转换 SQL 语句,确保它符合语义规则,并为执行做好准备。就像一个守门人,客户端在访问数据库时,必须先经过它的“认证”和“安排”。优化器会在执行前对语句做更多的优化,比如选择最佳的索引、确定表的连接顺序等(这个属于下一步 “执行 SQL” 的内容)。解析的目的是让 MySQL 确保你写的 SQL 是正确的,并且能够翻译成数据库能理解的形式

文章图片
#mysql#数据库
Java中消息队列——ActiveMQ、RabbitMQ、RocketMQ、Kafka

这样,即使某个部门暂时无法处理消息,信息也不会丢失,后续可以随时处理。假设你在网上购物,点击“下单”按钮后,系统会立即反馈“下单成功”,但实际上,订单的处理(比如支付、发货)是在后台进行的。:RabbitMQ采用镜像集群模式,确保消息在多个节点间同步,这样即使某个节点出现故障,其他节点仍然可以继续服务,保证了系统的高可用性。:在消息可靠性方面,如果采用异步写入策略,可能会出现消息丢失的情况,因为消

文章图片
#java
到底了