Siam博客

kafka和rabbitMQ简单对比笔记

架构

前言

一直在网上文章看到kafka是磁盘顺序写,所以效率更高,但是从磁盘的物理设计来考虑,又不可能真正的顺序,一直很纠结,找了一些资料,简单记录

kafka

因为Kafka消息在使用时不会被删除(就像在其他消息代理中一样)Kafka不会通过不断创建和删除许多变量长度来创建碎片文件系统文件。相反,它会创建段文件,然后附加到该文件,直到达到1GB(可配置的限制)

建议最佳做法是将这些Kafka提交日志文件保存在专用文件系统上,以免其他应用程序读取和写入可变长度文件到同一文件系统中。

rabbitMQ

rabbitMQ对于可靠性的设计更好,有ack消息确认机制,当ack消息确认后,该消息从队列删除,不管是真正的磁盘删除还是修改消息状态,都要涉及到文件的寻址,所以会稍慢.

Read more

使用ELK替换业务日志记录

架构

公司在快速开发阶段,将日志存入了Mysql,不利于做各做条件的检索查询。速度较慢。使用ELK方案,优化该部分逻辑。并开发toB日志自查系统,提供给客户快速对接。

ELK

Elasticsearch、Logstash 和 Kibana 三个软件的简称

简单架构图

原文地址-> https://blog.siammm.cn/archives/320 来自:siam博客。简单理解和笔记

资源记录

Elasticsearch

这个不用说,必须安装

Logstash

用于收集日志,在程序和ES之间,可以让程序产生的日志不用直接提交到ES,减少传输时间。 程序可以插入到Redis,Kafka Logstash相当于队列消费者,将日志写入ES

Read more

蓝奏云 批量下载 油猴

代码片段
// ==UserScript== // @name Siam蓝奏云批量下载 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 自用,需要弹窗等权限以及微调代码,不会 ...
Read more

TP6 新出的“虚拟模型”怎么用?

PHP
虚拟模型 引用官网文档说明 虚拟模型不会写入数据库,数据只能保存在内存中,而且只能通过实例化的方式来创建数据,虚拟模型可以保留模型的大部分功能,包括获取器、模型事件,甚至是关联操作。 什么是模型? 想要更好地理解虚拟模型的用途,我们需要先回过头来思考一下基础的设计理念 ORM中的Mode ...
Read more

php一份代码分层规范

PHP
控制器层 事务开关 调用Service Validata进行数据验证 调用Process Service Do Other Service Validata Other Service Do public function createOrder(Request $req ...
Read more

php cli web server with rewrite router

PHP
前言 在此前的文章中,我曾说过php cli开启的web server 没办法像nginx一样实现伪静态等自由的路由规则,这篇文章记录一下,补上这个知识缺口。 PHP CLI WEB SERVER php -S 127.0.0.1:8000 以上命令可以开启一个php自带的web serve ...
Read more

宝塔备份大数据sql导入本地失败 max_allowed_packet

数据库

问题场景

从线上备份拉了一个备份sql压缩包,想导入到本地开发脚本测试 使用Navicat Premium(试用) 导入时,报错max_allowed_packet参数相关的错误, 原因是mysql.ini配置中,设置了相关的执行脚本的最大包,默认是2M,我导出的文件有190+M,故 执行失败

解决问题

最大执行包 设置为200M(具体根据你的脚本文件,可以设置大一点。)

set global max_allowed_packet = 200*1024*1024

在本地执行完就无所谓啦,如果在线上生产中使用,记得导入完成之后要把参数改为默认的哦~

Read more

腾讯云杂货摊脚本

代码片段
// ==UserScript== // @name 腾讯云活动测试 // @namespace http://blog.siammm.cn // @version 0.1 // @description try to take over the world ...
Read more

Thinkphp6,注解注释生成api列表

PHP
自己写的一个小功能需要用到,稍微存一下该段代码, 接口代码需要写的格式 // 遍历controller目录下的文件,判断注释中是否包含@Siam-Api $dir = app_path()."/controller/"; $dir_contain = scandir($ ...
Read more

el-dialog里的数组不更新,在关闭的一瞬间更新了

前端
<el-dialog title="拆单" :visible.sync="dialog_split">
    <div v-for="(item, i) in split_goods_json" >
        <el-input v-model="split_goods_json[i].split_number" style="width: 150px;">
        </el-input>
    </div>
</el-dialog>

但是在方法中更新数据不会重新渲染,其实这个问题的本质也不是dialog的问题,而是vue的机制问题, https://cn.vuejs.org/v2/guide/reactivity.html

Vue 不能检测以下数组的变动

当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如:vm.items.length = newLength 为了解决第一类问题,以下两种方式都可以实现和 vm.items[indexOfItem] = newValue 相同的效果,同时也将在响应式系统内触发状态更新:

Read more
上一页 下一页