后端技术

了解Nginx

﹥>﹥吖頭↗ 提交于 2020-03-07 01:40:57
Nginx同Apache一样都是一种Web服务器. 基于REST架构风格, 以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据, 通过HTTP协议提供各种网络服务 这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个 Web 服务器有着各自鲜明的特点 Apache 的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等,它不支持高并发的服务器。在 Apache 上运行数以万计的并发访问,会导致服务器消耗大量内存, 操作系统对其进行进程或线程间的切换也消耗了大量的 CPU 资源,导致 HTTP 请求的平均响应速度降低, 这些都决定了 Apache 不可能成为高性能 Web 服务器,轻量级高并发服务器 Nginx 就应运而生了 俄罗斯的工程师 Igor Sysoev,他在为 Rambler Media 工作期间,使用 C 语言开发了 Nginx, Nginx 作为 Web 服务器一直为 Rambler Media 提供出色而又稳定的服务. Igor Sysoev 将 Nginx 代码开源,并且赋予自由软件许可证 Nginx 是一款自由的、开源的、高性能的

奉上简单的.Net后端开发模板

蹲街弑〆低调 提交于 2020-03-04 18:14:19
假定一个场景,开始做开发的你,领导走到你的面前说道:“小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你”,当时你内心读白:“CMS什么东西,还好我可以百度,但我要在哪个项目上开搞啊”,这时的领导又说道:“项目你自己建立,然后上传git就行了”,这时的你是否已经石化,本篇文章就为您提供一个快速建立后端开发的模板,作者自己总结出品,如有不妥,指正即可。 模板代码下载: https://github.com/cqhaibin/ApiTemplate.git 目标 由于搭建的只是后端开发模板,主需要满足基本要求即可。 框架结构简单 数据库支持:Mssql, Mysql 构架易于上手 支持良好的业务扩展 是一套基础开发模板 技术选型 开发语言:c# 运行时 .net Framework4.5 IoC:Autofac、Autofac.WebApi2 Dto:AutoMapper 序列化:Newtonsoft.Json Orm:FreeSql Api:Aspnet.WebApi 数据库:首先MSSQL、次先Mysql 缓存:基于List或Dictionary实现单机内存级缓存 架构分层 数据库访问层 Freesql实体定义,也就是我们常说的是数据库实体 提供dbContext上下文的方式访问 复杂的sql操作接口定义及实现,如:多表查询

Nginx负载均衡

心不动则不痛 提交于 2020-03-04 10:04:30
转载:http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html 最近迷上了Nginx,真实麻雀虽小,五脏俱全..功能实在强大.. nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。 如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器. 下面简单的介绍下我使用Nginx做负载的体会 下载---安装Nginx这些不介绍了,前篇有介绍. windows和Linux下配置Nginx负载的写法一样,故不分开介绍. Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 2)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 3)、fair(第三方)

不使用任何后端代码可以开发应用程序吗?

做~自己de王妃 提交于 2020-03-04 05:12:16
在一个一切都在加速的世界里,你需要快速迭代以避免被抛弃。 技术有很多,但你不可能掌握每一项。你可能会问自己:“我怎么能在不了解后端代码的情况下构建应用程序呢?” (1)你需要快速、安全地进行迭代 (2)不太了解后端代码、主机或DevOps (3)专注于已经很复杂的前端开发工作 那么,在没有任何后端代码的情况下,你能开发出一个可以工作的应用程序吗? 小芯告诉你:可以的。 下面我们就来一一介绍: 后端作为服务(BaaS)进行救援作为服务的后端是一个远程工具箱,不需要一行代码,它就可以帮助你快速构建通用的应用程序功能,比如自动验证、数据库持久性、搜索和统计信息。 有很多工具提供了这样的工具。 Firebase可能是最知名的,它是由谷歌和谷歌云平台支持的。它非常高效和酷,是作为一个云黑盒工具托管的。如果你需要本地工具,你可以使用自己的主机查看一些解决方案,比如 (1)Kuzzle,一个基于NodeJS、弹性搜索和Redis的特别强大的物联网和高性能/流量应用服务(BaaS)。 (2)FeatherJS,一个有各种连接器的NodeJS服务器,可用于MySQL, Postgres或MongoDB。 (3)Strapi,一个帮助你快速建立CMS的NodeJS服务器。 当使用Baas时,你需要稍微改变主意。 与调用将根据自定义逻辑更改数据的自己的端点不同,与根据自定义逻辑调用端点来更改数据不同

muduo学习笔记 - 第五章 高效的多线程日志

扶醉桌前 提交于 2020-03-03 00:54:16
第五章 高效的多线程日志 日志有两种意思: 诊断日志 交易日志 本章讲的是前一种日志,文本的供人阅读的日志,通常用于故障诊断和追踪,也可用于性能分析。 日志通常要记录: 收到的每条消息的id(关键字段,长度,hash等) 收到的每条外部消息的全文 发出每条消息的全文,每条消息都有全局唯一的id 关键部分状态的变更,等等 5.1 功能需求 日志库大体分为前端和后端两个部分 前端负责提供应用程序使用的接口API,并生成日志消息 后端负责把日志消息写到目的地 C++日志库的前端大体有两种API风格 printf的格式化输出风格 stream<<风格 stream风格的好处是当输出日志级高于语句的日志级别时,打印日志操作时个空操作,运行时开销接近零 分布式系统中的服务进程而言,日志的目的地只有一个:本地文件。往网络写日志消息时不靠谱的,因为诊断日志功能之一正是诊断网络故障,如果日志消息也是通过网络发到另一台机器就一损俱损… 本地文件作为destination,日志文件的滚动时必须的,可以简化日志的归档实现 文件大小(例如写满10GB就换下一个文件) 时间(例如每天零点新建一个日志文件,不论上一个文件是否写满) 日志文件压缩和归档,不应该是日志库应有的功能,应该交给专门的脚本去做 日志重复利用空间的功能,只会帮倒忙 往文件写日志的常见问题是,如果程序崩溃,最后几条日志信息就会丢失

Java 后端自学之路

让人想犯罪 __ 提交于 2020-03-02 00:24:46
文章转载自: http://objcoding.com/2018/02/07/javaweb-learning/ 最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很迷茫,不知从何下手。我就以过来人的经历,写在这篇博客里,不一定都对,但都是我根据自己的经历总结出来的,供你们的参考。 Java 基础 Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装、继承、多态。此外还有泛型、反射的特性,很多框架的技术都依赖它,比如 Spring 核心的 Ioc 和 AOP,都用到了反射,而且 Java 自身的动态代理也是利用反射实现的,这里我特意写了一篇 Java动态代理原理分析 。此外还有 Java 一些标准库也是非常常见,比如集合、I/O、并发,几乎在 Web 开发中无处不在,也是面试经常会被问到的,所以在自学 Java 后端之前,不妨先打好这些基础,另外还有 Java8 的一些新特性,也要重点关注,比如 Lambda 表达式、集合的 Stream 流操作、全新的 Date API 等等,关于新特性,我也写了几篇关于这方面的博客,请自行找吧,就不贴出来了。 关于书籍推荐,我是不建议初学者一开始就拿着「Java

nginx简介和配置gd

旧时模样 提交于 2020-02-23 22:30:20
转自:https://www.cnblogs.com/zhouxinfei/p/7862285.html nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简单介绍nginx 反向代理 负载均衡 nginx特点 1. 反向代理 关于代理 说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道; 此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户 正向代理 说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式,我们会从两个方面来说关于正向代理的处理模式,分别从软件方面和生活方面来解释一下什么叫正向代理 在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器

Nginx安装及配置详解

大兔子大兔子 提交于 2020-02-23 22:25:54
枫飞飞 Nginx安装及配置详解 转自:https://www.cnblogs.com/zhouxinfei/p/7862285.html nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简单介绍nginx 反向代理 负载均衡 nginx特点 1. 反向代理 关于代理 说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道; 此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户 正向代理 说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式,我们会从两个方面来说关于正向代理的处理模式,分别从软件方面和生活方面来解释一下什么叫正向代理 在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问

大火的前端时代,使用前端技术能实现什么?

一世执手 提交于 2020-02-21 01:14:06
什么是前后端分离,要区分前端和后端,需要有个明确的界限。一般,用户可以直接看到的东西,都是属于前端的范畴,除了前端之外都属于后端了。 在传统的像ASP,JSP和PHP等开发模式中,前端是处在一个混沌的状态中,可以说是没有独立的“人格”可言。 前端负责切图和编写静态页面模板,后端将数据渲染到前端提供的页面模板中,最后将页面渲染到浏览器展示。 这个过程中,前端只提供页面模板或者写一些JavaScript脚本,有的甚至JS脚本都是后端来写,前端的作用只局限于切图和样式模板文件,这种角色就是传说中的“切图仔”。 这也是为什么行业内都觉得前端是一个很简单的工作,只要花个一周,学下HTML、CSS和PS的简单技巧就可以胜任的工作。 现在看来,那时候的前端就是一个打酱油的,发展前景很有限。那时候的JavaScript脚本也比较简单,一个jQuery就可以横扫天下,所以对于精通语言类代码的后端程序员来说,可以很快的上手JavaScript,对前端来说,发展空间就更小了。 前后端分离,不只是简单的代码的分离。 首先是要架构上分离解耦,逐渐摆脱前后端在架构上的依赖,前后端各司其职,分开部署在不同的服务器上,通过RESTful接口传递数据。减轻后端服务器的压力,后端服务器不再负责页面渲染,只负责输入数据,吞吐量提升了好几倍。 其次是逻辑分离,不分离的时候,对于业务代码的界限很不明确

BugPhobia休息篇章:Beta阶段第IX次Scrum Meeting前奏

倾然丶 夕夏残阳落幕 提交于 2020-02-19 13:56:01
特别说明:此次 Scrum Meeting 不计入正式的 Scrum Meeting ,因此此次工作仅为第 IX 次 Scrum Meeting 的前奏,而笔者也首次采用休息篇章作为子命题 0x01 : Scrum Meeting 基本摘要 Beta 阶段第九次 Scrum Meeting 前奏 敏捷开发起始时间 2015/12/23 00 : 00 A.M. 敏捷开发终止时间 2015/12/26 23 : 00 P.M. 会议基本内容摘要 ü 近期,由于 12 月 23 日至 12 月 26 日各专业课程均进入了收尾工作而导致软件工程的开发时间大幅度缩减,因此项目经理在与团队的开后端开发组、架构师讨论整体的进度后,决定 BugPhobia 团队暂停整体的开发进度;因此,此阶段的工作重心交付项目经理,其完成的必要的工作包括: n 整理 Beta 阶段的工作进度,同时规划 Beta 阶段后期的敏捷开发进程和分工安排 n 整理 Alpha 阶段、 Beta 阶段前期的文档,对需求分析、功能规格说明书、技术规格说明书进行整理和更新,保证项目本身文档稳步更新至 Beta 阶段版本 n 开始测试工作的布置,其中包括:后端单元测试的自动测试平台、 Django 单元测试的布置和安排、 ReactJS 前端的测试安排工作 n 开始 Beta 阶段文档的准备工作,其中包括: Semantic