作为程序员一定要保持良好的睡眠,才能好编程

日志组件Sentry日志收集以及Kafka消息队列的使用

发布时间:2018-02-25


现在看看sentry  和kafka


Sentry

Kafka


要想使用日志文件,需要在配置文件中进行配置

log/logger


截图57.jpg


Yii::trace();

Yii::info();

Yii::error();

Yii::warning();

yii::beginProfile();  性能检测开始

Yii::endProfile();  性能检测完毕


检测文件正常运行

Yii::beginProfile("index");


Yii::endProfile("index");


这是一对函数,这里的参数一定要一样,否则结束不了。

levels: error  trace info  warning


Yii 不管记录任何日志都会记录到一个文件里。


那么如何把日志做分离呢?

好说:

截图59.jpg

'logFile'=>'@app/runtime/logs/shop/info.log'

截图58.jpg



指定记录日志的类型及记录内容:

指定只记录myinfo的日志
但是 在调用日志的时候,需要进行指定
Yii::trace("this is myinfo message","myinfo");

截图60.jpg


如果只记录自己的日志,那么可以把 logVars=>[]  清空即可。


当我们在开发程序的过程中难免会有错误,那么yii还可以发送邮件日志

具体怎么配置呢?

截图61.jpg

如果所示,这样配置就可以,这个信息是写在  配置文件 /log/targets/下的

但是这里呢,不建议直接写邮件发送,访问邮件服务器比较慢。如果确定需要的话,那么可以改善mailer的send方法。


可以参考文章:http://www.xiaosongit.com/index.php/index/detail/id/354.html



那么有没有其他什么解决方案呢?


看看Sentry


官网 https://sentry.io


使用的话有两个方法  :部署在自己的服务器上   第二  直接使用平台提供好的。

特点:功能强大  免费开源


1、注册、登录

2、创建一个组织

3、创建一个新的项目


4、进行项目平台

5、与项目结合

截图62.jpg

不建议这样做,

yii2 组件化,可以采用yii2-sentry组件进行配置。


好的,如果其他项目的话,按照我们上边的配置做就可以了。


好的,那么我们在项目中是如何进行配置的:


那么git中的项目怎么安装呢?  一般看每一个项目的readme都有说明,看如何进行安装即可。

截图63.jpg

如果安装的composer是全局的,那么使用 composer require --prefer-dist mito/yii2-sentry "*"  -vvv


截图64.jpg

日志收集类的log targets中的class必须指定到 mito\sentry\SentryTarget 这个类

截图65.jpg


以上就是log日志的收集方式。








消息队列:

截图66.jpg


解决应用耦合、大流量、异步消息 实现高性能、高可用 信息一致性的架构



截图67.jpg


截图68.jpg


截图69.jpg





截图70.jpg


消息队列的产品:

截图71.jpg



kafka:是一种高吞吐量的分布式发布订阅消息系统,他可以处理消费者规模较大的网站中所有动作流怇


高吞吐:在非常普通的硬件上可以支持每秒百万的消息

分布式:

发布订阅

消息系统

支持hadoop并行数据加载


官网: kafka.apache.org


broker:kafka中一台或多台服务器的统称

topic:kafka中不同的分类

partition:分组

Message:是通讯的基本单位

Producers:消息和数据的产生着

Consumers:消息和数据的消费者


截图72.jpg






消息队列 比 redis 队列可靠性要高。