系统日志

.NET平台下开源框架

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-20 08:36:15
一、AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。 NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编译器(MCS)。NKalore目前只能在命令行或#Develop内部使用。NKalore兼容公共语言规范CLS(Common Language Specification),它可以在任何.NET开发环境中使用,包括微软的Visual Studio .NET。 PostSharp读取.NET字节模块,转换成对象模型。让插件分析和转换这个模型并写回到MSIL。PostSharp使开发程序分析应用程序容易得像分析代码规则和设计模式,它使程序开发的思想变革为面向方面软件开发(AOSD/AOD)思想。 AspectDNG的目标是为.NET开发人员提供简单而功能强大的AOP-GAOP实现。它效仿java下的开源工具AspectJ 和 Spoon,成熟程度也很接近它们。 RAIL(Runtime Assembly Instrumentation Library) 开源项目可以在C

MongoDB数据库详细配置

你离开我真会死。 提交于 2020-01-19 18:32:29
本文源自: https://www.jianshu.com/p/cc3b14e3621c MongoDB数据库详细配置说明(文章来源于Internet) 启动MongoDB有2种方式 直接指定配置参数 指定配置文件。 由配置文件启动方式如下: mongod --config /your_path/mongodb.conf 配置如下: verbose:日志信息冗余。默认false。提高内部报告标准输出或记录到logpath配置的日志文件中。要启用verbose或启用verbosity 用vvvv参数,如: verbose = true vvvv = true [注]:启动verbose冗长信息,它的级别有 vv~vvvvv,v越多级别越高,在日志文件中记录的信息越详细。 port:端口。默认27017,MongoDB的默认服务TCP端口,监听客户端连接。要是端口设置小于1024,比如1021,则需要root权限启动,不能用mongodb帐号启动,(普通帐号即使是27017也起不来)否则报错:[ mongo --port=1021 连接] ERROR: listen(): bind() failed errno:13 Permission denied for socket: 127.0.0.1:1021 port = 27017 bind_ip:绑定地址。默认127.0.0.1

Apache Kafka 消息队列

时光怂恿深爱的人放手 提交于 2020-01-19 16:19:50
概述 Kafka是Apache软件基金会的开源的流处理平台,该平台提供了消息的订阅与发布,能够基于Kafka实现对网络日志流实时在线处理,在这个维度上弥补了Hadoop的离线分析系统的不足。因为基于hadoop的MapReduce系统分析离线数据延迟较高,而且不支持动态数据处理和分析。Kafka的流处理平台不仅仅可以为离线系统储备数据(通常使用Kafka作为数据缓冲),而且Kafka自身也提供了一套数据流的处理机制,实现对数据流在线处理,比如: 统计。 作为消息队列(Message Queue)充当系统的缓冲组件 - MiddleWare 作为一套在线实时流处理 组件 (轻) 场景分析 异步消息 使用Kafka MQ功能实现模块间异步通信,把一些费时的操作交给额外的服务或者设备去执行,这样可以提升系统运行效率,加速连接释放的速度,例如:用户注册模块,在用户注册成功后,业务系统需要给用户发送一个通知短信,通知用户登录邮箱去激活刚注册的用户信息。这种业务场景如图所示,因为短信通知和邮件发送是一个比较耗时的操作,所以在这里没必要将短信和邮件发送作为注册模块的流程,使用Message Queue功能可以将改业务和主业务注册分离,这样可以缩短用户浏览器和服务建立的链接时间,同时也能满足发送短信和邮件的业务。 系统间解耦|削峰填谷 ①在某些高吞吐的业务场景下

kafka 基础知识梳理及集群环境部署记录

流过昼夜 提交于 2020-01-19 14:35:06
一、kafka基础介绍 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。 kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一,Kafka可以实现高效文件存储,实际应用效果极好。 1.1) kafka名词解释(架构的四个部分) - producer:生产者。 - consumer:消费者。 - topic: 消息以topic为类别记录,Kafka将消息种子(Feed)分门别类,每一类的消息称之为一个主题(Topic)。 - broker:以集群的方式运行,可以由一个或多个服务组成

kafka

自闭症网瘾萝莉.ら 提交于 2020-01-19 08:28:17
学习kafka必会名词 producer:生产者,就是它来生产“鸡蛋”的。 consumer:消费者,生出的“鸡蛋”它来消费。 topic:你把它理解为标签,生产者每生产出来一个鸡蛋就贴上一个标签(topic),消费者可不是谁生产的“鸡蛋”都吃的,这样不同的生产者生产出来的“鸡蛋”,消费者就可以选择性的“吃”了。相当于“队列” broker:就是篮子了。 kafka的架构 一个典型的Kafka包含若干Producer,若干broker(Kafka支持水平扩展,一般broker越多,吞吐量越高),若干Consumer Group,以及一个zookeeper集群,通过zookeeper管理集群配置,选举leader,Producer使用push将消息发送到broker,Consumer使用pull模式从broker订阅并消费消息。 Kafka会为每一个Consumer Group保留一些metadata信息——当前消费的消息的position,也即offset。这个offset由Consumer控制。正常情况下Consumer会在消费完一条消息后递增该offset。 使用Consumer high level API时,同一Topic的一条消息只能被同一个Consumer Group内的一个Consumer消费,但多个Consumer Group可同时消费这一消息。 优化:

syslog简介——系统日志写入API

你说的曾经没有我的故事 提交于 2020-01-18 09:03:42
一、简介 syslog是Linux系统默认的日志守护进程 。默认的主配置文件和辅助配置文件分别是/etc/syslog.conf和/etc/sysconfig/syslog文件。通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。 二、配置文件 /etc/syslog.conf 文件按照以下格式进行配置 facility.level action 说明 :facility.level为选择条件,本身分为两个字段,之间用一个小数点(.)分隔。action和facility.level之间使用TAB隔开。 facility 消息类型,指定 syslog 功能,主要包括: kern 内核信息,首先通过 klogd 传递; user 用户进程; mail 邮件; daemon 后台进程; authpriv 授权信息; syslog 系统日志; lpr 打印信息; news 新闻组信息; uucp 由uucp生成的信息 cron 计划和任务信息。 mark syslog 内部功能用于生成时间戳 local0----local7 与自定义程序使用,例如使用 local5 做为 ssh 功能 * 通配符代表除了 mark 以外的所有功能 level 消息级别

大规模分布式存储系统原理解析与架构实战-读书笔记3-单机存储系统(2)

好久不见. 提交于 2020-01-18 04:53:34
大规模分布式存储系统原理解析与架构实战-读书笔记3-单机存储系统(2) 数据模型主要分为三类:文件,关系以及KV。 文件模型 文件系统以目录树的形式呈现。 对象模型和文件模型比较类似,用于存储视频,图片,文档等二进制数据块,典型的系统包括Amazon Simple Storage(S3),Taobao File System(TFS) 键值模型 Key-value模型简单,使用的场景有限,NoSQL中使用比较广泛的是表格模型,其弱化了关系模型中的多表关联,支持基于单表的简单操作,典型的是Google的BigTable和其Java实现的HBase SQL和NoSQL 事务:关系模型要求满足ACID,要么全部成功,要么全部失败。在分布式系统中,如果多个操作属于不同的服务器,满足原子性需要两阶段提交协议,而这个协议的性能很低,且不能容忍服务器故障,很难应用的海量数据场景。 并发控制 数据库锁:允许加多个读锁,但只能有一个写锁。解决死锁的办法有两个:一个是给事务加超时时间,另一个是死锁检测。 写时复制:因为读操作远远多于写操作,写时复制(Copy-On-Write)读操作不加锁,极大提高性能。 1 拷贝:将从叶子节点到根节点路径上的所有点拷贝出来 2 修改:对拷贝的节点执行修改。 3 提交:原子地切换根节点的指针,使之指向新的根节点。 多个写操作之间是互斥的,同一时刻只允许一个写操作

MySQL的日志系统

会有一股神秘感。 提交于 2020-01-17 15:26:34
前言 日志系统是用于保证MySQL数据不丢失、高性能和事务支持所需要的,不同的日志类型用于支持不同功能。下面列举MySQL目前使用的三种日志类型: Bin Log Undo Log Redo Log Bin Log 全称为二进制日志文件(Binary Log),是MySQL在 Server 层实现的一种日志。其作用是记录DML和DDL这类对数据有更改性质的操作,可以用来复制和恢复数据。bin log支持三种记录方式: ROW:记录的是修改的数据的具体行 STATEMENT:以SQL语句形式记录 MIXED:混合模式。优先选择STATEMENT,STATEMENT无法记录的会由ROW来记录 MySQL提供了 mysqlbinlog 这个工具来操作binlog文件: mysqlbinlog --no-defaults --start-datetime='2020-01-01' --stop-datetime='2020-01-15' -v --base64-output='decode-rows' log_bin.000001 > log.txt no-defaults:表示不使用默认值,查看默认值可以输入 mysqlbinlog --help start-datetime/stop-datetime:只查看特定时间范围内的bin log日志 -v(–verbose):显示详细信息

Log4net创建日志及简单扩展

风格不统一 提交于 2020-01-16 23:54:14
转: http://blog.csdn.net/CHENFEIYANG2009/article/details/5397342 1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步: 在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步: 程序启动时读取log4net的配置文件。 如果是CS程序,在根目录的Program.cs中的Main方法中添加: log4net.Config. XmlConfigurator .Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加: log4net.Config. XmlConfigurator .Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句: [ assembly : log4net.Config . XmlConfigurator ()] 也可以使用自定义的配置文件,具体请参见4.4

Log4net创建日志及简单扩展

我只是一个虾纸丫 提交于 2020-01-16 23:52:48
1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步: 在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步: 程序启动时读取log4net的配置文件。 如果是CS程序,在根目录的Program.cs中的Main方法中添加: log4net.Config.XmlConfigurator.Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加: log4net.Config.XmlConfigurator.Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句: [assembly: log4net.Config .XmlConfigurator()] 也可以使用自定义的配置文件,具体请参见4.4 关联配置文件。 第三步: 修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web