前言 之前也通过文章介绍过rabbitMQ的搭建以及在PHP开发场景下的一些使用。这个主要从rabbitMQ的web控制台介绍死信队列的操作,以及代码层面的小应用等。关于死信的原理,rabbitMQ的特性等可以在其他文章中找到,这里就不详细介绍了。场景 死信的场景主要是用于
前言虽然我是做后端的,但也时常关注前端,只是最近觉得前端的各种工具名称太眼花缭乱了,nvm、yarn、pnpm、taro……不要说具体使用,就连他们到底是工具还是新框架我都搞混。所以,我就用一篇文章简要记录他们到底是什么,怎么区别以及简易的搭建过程。nvmnvm(Node Version Manager),顾名思义,他是Node.js的版本管理工具。主要用来在单个操作系统下安装或管理多版本Node
前言目前项目开发中上传功能很多都是使用云存储,其好处太多这里就不列举了。但是在上传成功后,有些功能场景下需要对存储桶内的文件进行管理。自然把历史的文件列表展示出来就很有必要了。然后有列表就有分页,云存储又不像本地存储直接读文件夹就可以,所以我想了两种方法来解决。方法将上传的文件返回的地址都存到数据库中,取列表就分页的读表返回。使用OSS文档的文件列举方法,好处是不用建表等等,所以下面以这种方式演示
前言:最近接触了一个关于PLC工控的小项目,大概场景是,对方一个茶叶工厂。已经通过各种设备组成了自动化的工控系统。并且也让我的一个朋友做了茶园监控和茶园天气环境等的web页面展示,但是还没有工控设备的数据显示。需求:工控设备已经连接到了一台作为上机位的电脑上,所以要获取设备数据。需要在同一局域网上,通过modbus tcp请求对方已经开放的端口。拿到数据储存到数据库,最后web界面只用按时间顺序获
前言前面也说了,通过 GitHub Pages+GitHub Actions 只是解决了动态数据展示,但是要零成本得完成将用户信息存储下来,并实现数据交互呢?我开始是想用云文档,种种原因,我还是希望有个自己能二次修改的后台,于是就选择了 Vercel+Railway 方式。虽然网上也有很多人介绍这俩平台的玩法,但都是 2024 年以前的文章,有些平台最新的修改,和自己踩到的坑而别人没提到的细节,我
前言之前有写过死信队列的使用场景以及通过管控台创建死信。这次就通过代码实现死信队列的创建,同时也分享一下RabbitMQ封装的类。准备先准备一个死信队列(最后用来消费)的参数配置,包括虚拟机,交换机,队列,有效时间等,如下。按照上面在RabbitMQ中创建虚拟机和交换机,死信队列。并让交换机与死信队列绑定,操作方法前面有介绍。这里就直接提供rabbitMQ操作的基本封装的类,包括一个基类,生产者类
前言有些人为了让项目快速上线,服务器往往安装宝塔面板,然后再极速安装LNMP。尽管环境搭建的时间省了,但是宝塔上PHP中扩展包没有提供AMQP。这时候只是为了使用消息队列而对PHP大动干戈, 不如使用一个PHP AMQP的库,即用即装,不对环境造成影响。简介php-amqplib 客户端库,通过composer安装,不需要在PHP中安装扩展,以下为两种不同的安装方式。项目中新建
前言之前也有讲到过es的基本使用,主要是通过PHP代码对es索引,文档等的增删改以及搜索优化的解决方案。而现在为了进一步满足搜索的全新功能,所以就需要一个中文分词器,而为了方便查看或管理es文档,可以使用图形化面板。所以接下来主要介绍es中文分词器的安装和es的web面板。elasticsearch-analysis-ik分词es自带分词,但是没有中文分词,在一众elasticsearch的中文分
前言在业务中开发中,表格的导入导出功能很常见。但是这里主要是使用PhpOffice类库介绍实现导入表格数据的功能。冲突大部分的导入功能,就是通过点击按钮上传一张表格,然后后台读取表格数据根据业务整理后直接插入到数据库,最后再返回给前端。但是如果表格数据庞大,业务逻辑复杂的时候,就会导致导入那一块很臃肿不好维护。解决方法处理方式是把导入与业务数据插入分离,所以在二者之间添加一个队列就可以了。导入只负
前言本着将成本降到最低,我目前做的应用或小程序都是单机的,也就是不用请求接口,只要一上架就没有任何支出。但是写死的数据毕竟有限,应用的内容单一无法紧跟时事热点,每次打开一个样,自然就没有留存。遇到有错字啥还要更新版本,那有没有方法既能丰富应用内容,又不用增加成本呢?既要又要,当然也有,找网上提供的免费 API 接上去。但是这种有请求数限制,而且还和自己应用的业务不相关,那就只能自己弄接口了。既然可
前言: 在我们平时做的一个项目中,线上环境突然发现数据库被锁住。导致很多有关数据插入和修改的接口全都瘫痪,项目基于ThinkPHP5.1。报错的时候,我们发现了一条sql错误日志,如下。根据错误信息提示,是说有一个事务回滚时没有找到savepoint 的暂存点。所以问题应该是事务嵌套导致的,目前ThinkPHP5封装的数据层方法是有对事务嵌套进行处理。而MYS
前言前段时间折腾Arduino,为了让板子联网买了ESP8266 NODEMCU (wifi模块,也是一个单片机)。虽然能通过烧录的程序通过http请求自己的服务器接口,但是显然并不符合当下主流的物联网方式,并且定时请求接口还浪费资源。于是就引出了MQTT协议,在网上我也找了关于MQTT代理服务的软件也有很多。比如Eclipse基金会的Mosquitto ,以及Apache的
Workerman是一款开源高性能异步PHP socket即时通讯框架。支持高并发,超高稳定性,被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、MQTT物联网客户端、异步消息队列等众多高性能组
前言因为平时工作和日常接触到的大都是的中型项目,所以少有个性化推荐等涉及大数据的功能。但是后期应该也会在自己项目中添加信息推荐模块,所以就开始关注spark,hadoop,Thrift等工具,以下就以hadoop先开始,包括环境搭建和配置过程中踩坑过程。关于hadoop的环境搭建,网上也有各种各样的教程。那来直接按着他们的方法来,前期当前问题不大,但是呢,可能在安装过程中由于每个工具的版本不一致。
前言:Hive是一个基于Hadoop的数据仓库工具,以一种类SQL的HQL语句操作Hadoop数据仓库(HDFS等)。所以本地windows安装前需要先搭建Hadoop。前面文章已经大概介绍了环境搭建和踩坑汇总,所以这里也依旧只是介绍基础的安装方法。因为关于Hive的安装,网上其实有很多文章,这里更多的是小北在安装过程中的遇到的各种坑的汇总以及解决方法。环境:1.windows102.hadoop
前言:因为在项目中集成了ElasticSearch,用于某些业务场景的搜素或筛选。这里关于ElasticSearch就不做介绍了,虽然解决了全文搜索的性能问题。但是当出现一些频繁更新的数据放置在ES就有点麻烦了。这时候,一款能把MySQL数据即时同步到ElasticSearch的工具就显得格外重要了。经过比较筛选我选择了阿里的canal,这里应该就有人会说用Elastic全家桶的Logstash或
最近小游戏的软著下来了,用 CocosCreator 做的游戏也完成了 1.0 版本。而当我打包成抖音小游戏进行提交时,还没到初审就给拒了,因为还有一个机审,机器检测到代码中没有接入 “侧边栏复访功能”。这个我还真不知道,那只能去官方看文档了,位置是小游戏开发文档 -> 指南 -> 开放能力 -> 侧边栏能力。
前言周末空闲时间无意找到了一套个性化推荐的源码,整体项目运用了SSH,HDFS,Flume,Hive,Kafka,Spark,Scala等。运行时,本来通过spark计算业务埋点数据时,却发现本地没有Kafka。因为我一直也没使用过Kafka,所以也作为新人,浅谈以下Kafka的环境安装与分别在PHP,Scala中的使用。对比1. 横向,相比其他中间件关于kafka与其他消息中间件的比较,网上很多
前言话说前面已经简单介绍过在windows下hadoop&hive环境搭建和基本使用,如果这次直接写Spark项目实践就有一点突兀,那么就暂且跳过,先在IDEA中安装bigData插件连接hadoop的HDFS吧,而后再简单介绍使用Spark操作Hive。 Big Data Tools安装点击File, 选择Settings,再选择Plugins搜索Big Data Tools
最近有一个小小demo,需要通过 PHP 将用户行为记录储存到 MongoDB,再用 Spark 做协同过滤。由于以前处理跨语言交互是通过消息中间件,这次本地使用 MongoDB 却弄出了几个问题。首先是本地安装了扩展,启动时报找不到模块错误,再个时 PHP 进行的实例化使用时报 MongoClient 和一些函数不存在。最后也推荐一些方便快捷的 MongoDB 图形化工具。
上次简单分享了一下通过 Github Pages 方式搭建图床,但是国内对 github 资源的加载普遍不太稳定,多数情况下很慢甚至打不开。而这次我要推荐两个解决方法,一种是助力方案,使用 CDN 加速;另一种是代替方案,换成真正的图床或其他托管服务。
前言由于之前在 PHP 中使用 Kafka 是通过 composer 包的方式,由于 nmred/kafka-php 很久没有维护,并且网上相关问题的文章也比较少。所以我这次换成 PHP 扩展 RdKafka 继续使用,主要介绍扩展安装和这种方式的基本操作。安装1. 下载地址(找到与自己环境匹配的就可以)2. 目录由于 php-rdkafka 依赖 librdkafka,lin
一. 根据当前位置计算四周的经纬度/** * 根据当前位置计算四周的经纬度 * @param $lng * @param $lat * @param float $distance * @return array */ function returnSquarePoint($lng, $lat, $distance = 0.5) { $earthRadius = 63
前言本文章是在同处局域网内的两台windows电脑,MySQL为5.5以上版本进行的一主多从同步配置下。ThinkPHP5分布式连接,读写MySQL分离配置的小例子。数据库部分一. 主库(master)设置。方法/步骤1:phpstudy至少开启MySQL服务,并找到配置文件mysql.ini并进入。方法/步骤2:进入mysql-ini文件找到“[mysqld]”节点,添加以下配置,完成后重启服务
前言作为一个开发人员,每每在更换电脑或重装系统时,要重新安装开发工具搭建开发环境。所以有的人会封装一下系统(这里指windows),将平时用到的环境和工具全安装在里面,改改OEM,以后换了电脑就直接拿封装的系统安装就方便很多。 同样但也不一样的,在开发完的应用程序在需要更换IDC或者部署分布式时。针对应用又要重新搭建环境,安装软件依赖等等。所以这时候可以将应用软件以及环境依赖一并作为docker镜
前言现如今,大部分带内容的网站或应用都有视频区了,不说是大厂平台,就连个人开发者也相继在自己网站或小程序上迭代出视频板块。那既然有了视频模块,除个性化推荐,智能审核等这种费钱又耗时的功能外(个人开发者暂缓)。最基本的视频上传,视频播放自然必不可少吧。既然要强调省钱,我当前不会对接点播服务了。毕竟为了有一定的审核和推荐功能,我打算做人工审核。那剩下的关于播放有一定的体验度,还得要用一下OSS了(还是
前言当下,只要是一个初具规模的内容应用都具备个性化推荐系统。比如购物类的会有推荐商品模块,搜索条下有个性化的搜索关键词或词条补全词,社交类的有博主推荐,视频或文章推荐等等。这些功能除了要有庞大的数据量,还要有健全的数据存储仓库建设方案,以及后面对数据的清洗,排序,训练后的推荐模型算法。但是,对于小公司或者说是小项目,在想法还未真正落地就设计大数据存储,推荐算法和一系列大型架构的方案,显然是不符合业
图床服务器是一种用于存储和管理图片的服务器,可以给我们提供将图片上传后能外部访问浏览的服务。这样我们在写文章时插入的说明图片,就可以集中放到图床里,既方便多平台文章发布,又能统一管理和备份。
前言 前面一文介绍了通过基础的web项目结构实现简单的内容推荐,与其说那个是推荐不如说是一个排序算法。因为热度计算方式虽然解决了内容的时效质量动态化。但是相对用户而言,大家看到的都是几乎一致的内容(不一样也可能只是某时间里某视频的排前或靠后),没有做到个性化的千人千面。 尽管如此,基于内容的
前言现如今,不管是哪种类型的应用,评论区都少不了。从工具类的到媒体信息流类的,评论留言都是最基本的互动环节。比如抖音短视频下,针对视频每个用户都可以发表自己的观点;而针对用户的评论,其他的用户又可以对其进行评论,依次回复下去。那么,一个视频的评论回复的表如何设计?功能如何实现呢?如标题,这里是用一张表完成,但是在我完成功能后发现拆成两个张更合适(评论表和回复表),这个后面已经改了,最后也会说一下。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号