现在看看sentry 和kafka
Sentry
Kafka
要想使用日志文件,需要在配置文件中进行配置
log/logger
Yii::trace();
Yii::info();
Yii::error();
Yii::warning();
yii::beginProfile(); 性能检测开始
Yii::endProfile(); 性能检测完毕
检测文件正常运行
Yii::beginProfile("index");
Yii::endProfile("index");
这是一对函数,这里的参数一定要一样,否则结束不了。
levels: error trace info warning
Yii 不管记录任何日志都会记录到一个文件里。
那么如何把日志做分离呢?
好说:
'logFile'=>'@app/runtime/logs/shop/info.log'
指定记录日志的类型及记录内容:
指定只记录myinfo的日志
但是 在调用日志的时候,需要进行指定
Yii::trace("this is myinfo message","myinfo");
如果只记录自己的日志,那么可以把 logVars=>[] 清空即可。
当我们在开发程序的过程中难免会有错误,那么yii还可以发送邮件日志
具体怎么配置呢?
如果所示,这样配置就可以,这个信息是写在 配置文件 /log/targets/下的
但是这里呢,不建议直接写邮件发送,访问邮件服务器比较慢。如果确定需要的话,那么可以改善mailer的send方法。
可以参考文章:http://www.xiaosongit.com/index.php/index/detail/id/354.html
那么有没有其他什么解决方案呢?
看看Sentry
官网 https://sentry.io
使用的话有两个方法 :部署在自己的服务器上 第二 直接使用平台提供好的。
特点:功能强大 免费开源
1、注册、登录
2、创建一个组织
3、创建一个新的项目
4、进行项目平台
5、与项目结合
不建议这样做,
yii2 组件化,可以采用yii2-sentry组件进行配置。
好的,如果其他项目的话,按照我们上边的配置做就可以了。
好的,那么我们在项目中是如何进行配置的:
那么git中的项目怎么安装呢? 一般看每一个项目的readme都有说明,看如何进行安装即可。
如果安装的composer是全局的,那么使用 composer require --prefer-dist mito/yii2-sentry "*" -vvv
日志收集类的log targets中的class必须指定到 mito\sentry\SentryTarget 这个类
以上就是log日志的收集方式。
消息队列:
解决应用耦合、大流量、异步消息 实现高性能、高可用 信息一致性的架构
消息队列的产品:
kafka:是一种高吞吐量的分布式发布订阅消息系统,他可以处理消费者规模较大的网站中所有动作流怇
高吞吐:在非常普通的硬件上可以支持每秒百万的消息
分布式:
发布订阅
消息系统
支持hadoop并行数据加载
官网: kafka.apache.org
broker:kafka中一台或多台服务器的统称
topic:kafka中不同的分类
partition:分组
Message:是通讯的基本单位
Producers:消息和数据的产生着
Consumers:消息和数据的消费者
消息队列 比 redis 队列可靠性要高。