信息架构

zabbix部署+邮件报警

▼魔方 西西 提交于 2020-02-26 02:30:50
zabbix介绍 要想实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的选择,而zabbix监控系统则在众多监控软件中脱颖而出。 zabbix是一个基于web界面的企业级开源监控软件,Zabbix服务器需要LAMP环境或LNMP环境,提供分布式系统监控与网络监视功能。具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表、图表的绘制等功能。监测对象可以是Linux或Windows服务器,也可以是路由器、交换机等网络设备,通过SNMP、zabbix Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能。 zabbix监控架构: 在生产环境中,zabbix根据网络环境、监控规模等外界因素分为三种架构:server-client(直接连接)、master-node-client(Node架构)、server-proxy-client(proxy架构),如下图所示: 1、server-client架构: server-client架构是zabbix最简单的架构,监控机和被监控机之间不经过任何代理,直接在zabbix server(监控服务器) 和zabbix agent(agent:部署在被监控端,用于采集数据)之间进行数据交互,适用于网络比较简单,设备较少的监控环境。 2、master-node-client架构

[译]软件架构师之路

拟墨画扇 提交于 2020-02-25 19:12:37
今天给大家带来一篇自己翻译的干货《软件架构师之路》。本周Github上升很快的项目。其内容对致力于成为软件架构师(不论前后端)的同学应该都会有极大的帮助。 项目地址: 中文地址 https://github.com/gamedilong/SoftwareArchitect-CN 原文地址 https://github.com/justinamiller/SoftwareArchitect 如果有看完英文原文,发现本文翻译内容中存在问题或者错误的欢迎到中文Git地址PR,如能够对大家起到一定的帮助也欢迎star 内容 什么是软件架构 软件架构的层次 软件架构师的典型工作内容 软件架构师的重要技能 架构师的技术路线图 相关书籍 什么是软件架构? 软件架构师是一名软件开发专家,他可以进行高层设计选择并决定技术标准,包括软件编码标准,工具和平台。 (出处: 维基百科:软件架构师) 软件架构(architecture)是一个系统的基本组织,由其组件、它们之间的相互关系和环境以及决定系统设计和演化的原则来表示。 (出处: 软件架构手册) 软件架构的层次 软件架构可以被抽象的分为几个层次,不同的层次对技能的要求不同。对层次有很多不同的划分,我最喜欢如下这三种划分: 应用级 : 最低层次的架构。聚焦单个具体的应用。 非常注重细节, 底层设计。 沟通仅限入单个开发团队。 解决方案级 : 中级别的架构

MySQL 逻辑架构

眉间皱痕 提交于 2020-02-25 12:07:46
1.MySQL整体逻辑架构 mysql 数据库的逻辑架构如下图: 第一层,即最上一层 ,所包含的服务并不是MySQL所独有的技术。它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等。 第二层值得关注 。这是MySQL的核心部分。通常叫做 SQL Layer。在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断, sql解析,行计划优化, query cache 的处理以及所有内置的函数(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视 图等。 第三层包括了存储引擎 。通常叫做StorEngine Layer ,也就是底层数据存取操作实现部分,由多种存储引擎共同组成。它们负责存储和获取所有存储在MySQL中的数据。就像Linux众多的文件系统 一样。每个存储引擎都有自己的优点和缺陷。服务器是通过存储引擎API来与它们交互的。这个接口隐藏 了各个存储引擎不同的地方。对于查询层尽可能的透明。这个API包含了很多底层的操作。如开始一个事 物,或者取出有特定主键的行。存储引擎不能解析SQL,互相之间也不能通信。仅仅是简单的响应服务器 的请求。 连接管理和安全 在服务器内部,每个client连接都有自己的线程。这个连接的查询都在一个单独的线程中执行。这些线程轮流运行在某一个CPU内核

MyBatis的深入原理分析之1-架构设计以及实例分析

久未见 提交于 2020-02-24 20:23:54
MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单、优雅。本文主要讲述MyBatis的架构设计思路,并且讨论MyBatis的几个核心部件,然后结合一个select查询实例,深入代码,来探究MyBatis的实现。 一、MyBatis的框架设计 注:上图很大程度上参考了iteye 上的 chenjc_it 所写的博文 原理分析之二:框架整体设计 中的MyBatis架构体图,chenjc_it总结的非常好,赞一个! 1.接口层---和数据库交互的方式 MyBatis和数据库的交互有两种方式: a.使用传统的MyBatis提供的API; b. 使用Mapper接口 1.1.使用传统的MyBatis提供的API 这是传统的传递 Statement Id 和查询参数给 SqlSession 对象,使用 SqlSession 对象完成和数据库的交互; MyBatis 提供了非常方便和简单的API,供用户实现对数据库的增删改查数据操作,以及对数据库连接信息和 MyBatis 自身配置信息的维护操作。 上述使用 MyBatis 的方法,是创建一个和数据库打交道的 SqlSession 对象,然后根据 Statement Id 和参数来操作数据库,这种方式固然很简单和实用,但是它不符合面向对象语言的概念和面向接口编程的编程习惯。由于面向接口的编程是面向对象的大趋势,

狼群的架构暗示

拈花ヽ惹草 提交于 2020-02-22 19:59:15
接前文: 基因与架构 《狼图腾》的作者吕嘉民中说狼除了美人计外《孙子兵法》上的技法基本上都会用,不但会打战术战还会打战略战。我们不管狼与狼之间使用了多么复杂的沟通技术,来实现这些难以想象的群体活动,我们来关注一下沟通的信息传输过程。在这个模型中存在3个对象:狼、信息、环境。首先狼产生信息并能够消费信息; 其次狼所产出的信息可以游离于狼身体之外而存在并传输,既信息不是狼身体的一部分;最后是环境,它是信息的载体,狼的信息产生后不是直接进入对方的身体,而是先附加到大自然这个载体,然后传递给其他的狼,对方最后再从环境载体中拾取对自己“有用”的信息。 这使我想起软件设计的一条准则“高内聚、低耦合”。狼的个体是一个高度智能化、功能强劲、高度自治、独立存在的信息处理系统,这是高内聚的体现。狼与狼之间通过借助于“大自然”这个廉价、开放、通用、高可用的环境将谁都可以理解的且独立于狼身体之外的松散的“数据”进行交互,这种只和“大自然”耦合的方式是一种松耦合的典范。 狼为了自身的存活,不断强化自身的功能,并充分利用开放的环境资源 , 不断融入到环境中去,不断完善体外信息的沟通机制,来进一步提升狼群的整体生存能力。而这种进化行为在生物界举不胜举,这是否预示着“上天”这个架构师的第一架构法则是高内聚、低耦合呢?如果成立,那么软件的生存能力和生存空间就看高内聚、低耦合的水平了。 来源: https://www

斗鱼已公开的运维技术和架构分析

自古美人都是妖i 提交于 2020-02-21 10:57:46
斗鱼已公开的运维技术和架构分析 By 12月01日 2016 Architecture Douyu Ops Architecture 引言 最新一个比较全面的斗鱼运维架构分享是在 GITC 2016 北京站的运维专场,以下架构分享文档。 用户在斗鱼看直播时,斗鱼在看什么 从用户电脑浏览器访问一个网站的过程(还有结合一些公开资料)分析斗鱼网站使用的相关运维技术信息和架构方案。 客户端层 1. 浏览器 包含 Cookie、浏览器缓存协商(Last-Modified、Expires、Etag)、组件分离、前端优化、运维检测工具等内容。 上述可以通过浏览器开发者工具进行具体查看。 2. DNS 域名 包含浏览器 DNS 缓存、DNS 缓存、自建 DNS 服务器、商业 DNS 产品、智能 DNS 等内容 用户使用浏览器访问一个网站,是输入网站域名进行访问的。 下面我们来看看斗鱼网站的相关域名信息,它的主域名是 douyu.com。 我们使用阿里的 whois 查询服务来查下, 具体信息去以下链接查看 https://whois.aliyun.com/whois/domain/douyu.com 从上面查询到的信息我们可以看到 douyu.com 域名注册商是 GoDaddy。 然后还有一个重要的信息,配置的权威 DNS 服务器为: DNS1:NS3.DNSV4.COM DNS2:NS4

SQL注入原理

核能气质少年 提交于 2020-02-17 02:44:59
原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html 1.1.1 摘要 日前,国内最大的程序员社区CSDN网站的用户 数据库 被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。 网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,由于设计的漏洞导致了不可收拾的恶果,验证了一句话“出来混的,迟早是要还的”,所以我想通过专题博文介绍一些常用的攻击技术和防范策略。 SQL Injection也许很多人都知道或者使用过,如果没有了解或完全没有听过也没有关系,因为接下来我们将介绍SQL Injection。 1.1.2 正文 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 首先让我们了解什么时候可能发生SQL Injection。 假设我们在浏览器中输入URL www.sample.com

MySQL架构组成之物理文件组成

那年仲夏 提交于 2020-02-14 03:26:17
一、日志文件 1、错误日志:Error Log 内容:MyQL Server 执行过程中全部较为严重的警告和错误信息,以及MySQL Server 每次启动和关闭的具体信息。 路径:默认存放位置在数据文件夹下 名称:默认文件名称以hostname.err 命名 改动:“--log-error[=file_name]”。改动其存放文件夹和文件名称 扩展:FLUSH LOGS 命令来告诉MySQL 备份旧日志文件并生成新的日志文件。备份文件名称以“.old”结尾。 2、二进制日志:Binary Log & Binary Log Index 内容:MySQL 会将全部改动数据库数据的query(query 语句、运行的时间、所消耗的资源,以及相关的事务信息) 以二进制形式记录到日志文件里。 路径:默认存放位置在数据文件夹下 名称:mysql-bin.******(*代表0~9 之间的某一个数字。来表示该日志的序号) 改动:“--log-bin[=file_name]”,改动其存放文件夹和文件名称 扩展:“--max_binlog_size”设置binlog 的最大存储上限 “--binlog-do-db=db_name”对某个(db_name)数据库记录binlog “--binlog-ignore-db=db_name”忽略某个(db_name)数据库的binlog 记录 注意:db

rocketMQ基本架构简介

一笑奈何 提交于 2020-02-09 19:07:50
1、RocketMQ 简介: RocketMQ前身是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能、高可靠、高实时、分布式特点。 2、RocketMQ基本架构: 如图所示RocketMQ架构上主要分为四部分: Producer: 充当消息发布的角色,支持分布式集群方式部署。producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递。投递的过程支持快速失败并且低延迟。 Consumer: 充当消息消费者的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消费。同时也支持集群方式和广播形式的消费,它提供实时消息订阅机制,可以满足大多数用户的需求。 NameServer: NameServer是一个功能齐全的服务器,其角色类似dubbo中的zookeeper,支持Broker的动态注册与发现。主要包括两个功能: Broker管理。NameServer接受Broker集群的注册信息并且保存下来作为路由信息的基本数据。然后提供心跳检测机制,检查Broker是否还存活。 路由信息管理。每个NameServer将保存关于Broker集群的整个路由信息和用于客户端查询的队列信息。然后Producer和Conumser通过NameServer就可以知道整个Broker集群的路由信息

集群架构

纵然是瞬间 提交于 2020-02-08 05:20:11
回到顶部(go to top) 01. 了解集群架构服务器组成 基本架构组成:(用于让用户进行访问) 前端服务部分: 1 )顾客 - 用户 是一个访问者,请求访问网站页面 2 )保安 - 防火墙设备 对访问架构用户进行策略控制,正常访问网站用户,可以放行进入;非法人员(黑客)访问网站,禁止进入 3 )对讲机 - 交换机(外网) 提供架构中服务器相互通讯交流的需求(提供外部人员访问) 4 )迎宾人员 - 负载均衡服务器 对用户的访问请求进行调度处理 5 )服务员 - 网站 web 服务器 对用户的请求进行响应处理 后端服务部分: 1 )对讲机 - 交互机(内网) 提供架构中服务器相互通讯交流的需求(提供内部局域网服务器通讯交流) 2 )厨师 - 数据库服务器 主要用于存储用户提交文字(字符串)数据信息 3 )厨师 - 存储服务器 主要用于存储用户上传视频 音频 图片 附件等数据资料 4 )厨师 - 备份服务器 主要用于对用户存储(上传)数据信息进行统一备份管理 5 )厨师 - 缓存服务器 主要用于存储用户经常访问的数据信息,提升请求数据信息的响应效率 扩展架构组成:(用于让运维人员远程管理架构中的服务器) 1 )员工 - 运维人员 可以远程管理架构中服务器(通过特殊通道-VPN隧道) 2 )审计 - 跳板机服务器 用于监管内部运维人员操作记录信息,一旦出现架构问题