随笔 - 385  文章 - 0  评论 - 448  0
  2019年1月31日
摘要:包括7大设计原则和23大设计模式。7大设计原则这7大设计原则不仅是23大设计模式要去遵守的,也是我们平常开发过程中要时刻去遵守的准则,所以说非常非常重要。1,单一职责原则1)定义:就一个类而言,应该仅有一个引起它变化的原因。简而言之,就是功能要单一。2)如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发... 阅读全文
posted @ 2019-01-31 18:05 永远的麦子 阅读 (1481) 评论 (0) 编辑
  2019年1月15日
摘要:包括nginx的入门和进阶学习。 目录 nginx系列1:认识nginx nginx系列2:搭建nginx环境 nginx系列3:搭建一个静态资源web服务器 nginx系列4:日志管理 nginx系列5:nginx的请求处理流程 nginx系列6:nginx的进程结构 nginx系列7:处理HTT 阅读全文
posted @ 2019-01-15 11:41 永远的麦子 阅读 (233) 评论 (0) 编辑
  2017年8月23日
摘要:Linux入门及进阶学习。 目录 阅读全文
posted @ 2017-08-23 10:10 永远的麦子 阅读 (785) 评论 (0) 编辑
  2017年7月23日
摘要:这个系统总结了在搭建大型网站的过程中,对于架构的搭建,以及选择支撑架构实现的中间件的相关经验。 大型网站架构演进(1)单机网站 大型网站架构演进(2)数据库与应用服务器分离 大型网站架构演进(3)使用缓存改善网站性能 大型网站架构演进(4)使用应用服务器集群 大型网站架构演进(5)数据库读写分离 大 阅读全文
posted @ 2017-07-23 15:36 永远的麦子 阅读 (686) 评论 (5) 编辑
  2017年7月7日
摘要:这里汇总了.net基础的相关文章,方便查阅! .net基础 参考资料 http://www.cnblogs.com/JeffreyZhao/archive/2009/08/05/from-delegate-to-others.html http://www.cnblogs.com/JimmyZhan 阅读全文
posted @ 2017-07-07 18:03 永远的麦子 阅读 (692) 评论 (0) 编辑
  2015年12月8日
摘要:这个系列主要总结学习MongoDb过程中的一些经验。 阅读全文
posted @ 2015-12-08 18:49 永远的麦子 阅读 (257) 评论 (0) 编辑
  2015年10月14日
摘要:持续集成在软件的版本发布以及测试中非常重要,这个系列包括使用Jenkins实现持续集成以及使用Team Foundation Build实现持续集成的总结。 Jenkins Jenkins之安装与环境配置 Jenkins之权限管理 Jenkins之全局配置 Jenkins之Deploy部署(包括站点 阅读全文
posted @ 2015-10-14 15:04 永远的麦子 阅读 (491) 评论 (0) 编辑
  2015年6月15日
摘要:ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。 ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。这个系列将记录我学习Web API的过程。 Web API初 阅读全文
posted @ 2015-06-15 16:19 永远的麦子 阅读 (917) 评论 (0) 编辑
  2015年3月5日
摘要:这个系列主要记录学习EF的过程和碰到的问题以及解决问题的方法。 EF中的那些批量操作 EF的Model First 阅读全文
posted @ 2015-03-05 11:40 永远的麦子 阅读 (755) 评论 (3) 编辑
摘要:这个系列主要总结学习和使用Redis过程中的一些经验。 阅读全文
posted @ 2015-03-05 11:36 永远的麦子 阅读 (554) 评论 (1) 编辑
  2014年10月23日
摘要:这个系列主要汇总在平常项目开发过程中碰到的性能问题,以及如何处理性能问题的经验。在以后写代码的过程中利用这些经验,写出更高效的代码和程序。 前端 服务端 一,数据库 二,ORM 三,WCF 四,序列化 五,外部接口调用 六,并行或异步 七,Session阻塞 阅读全文
posted @ 2014-10-23 21:12 永远的麦子 阅读 (616) 评论 (4) 编辑
  2014年10月15日
摘要:这里主要整理学习正则表达式的全部文章,包括从基础到高级,做一个目录,方便以后查找。 基础 正则表达式入门 一般应用场景 如何测试正则表达式 阅读全文
posted @ 2014-10-15 22:03 永远的麦子 阅读 (507) 评论 (1) 编辑
  2014年7月13日
摘要:这里整理了我学习SQL Server的全部文章,包括从基础到高级,做一个目录,方便以后查找。 SQL Server数据类型 SQL Server中开发常用的数据类型 单表查询和多表查询 一个单表查询的示例 利用OVER开窗函数分页 常用的谓词和逻辑运算符 CASE表达式的使用 多表查询 交叉联接查询 阅读全文
posted @ 2014-07-13 09:41 永远的麦子 阅读 (708) 评论 (1) 编辑
  2019年2月13日
摘要:定义将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 --《设计模式》GoFUML类图使用场景在遗留代码复用,类库迁移方面非常有用。适配器模式要求我们尽可能地使用面向接口编程风格,这样扩展性和可维护性比较好。关键组成部分1,目标角色(Target):定义Client使用的与特定领域相关的接口。2,客户角色(Client):与符合T... 阅读全文
posted @ 2019-02-13 15:39 永远的麦子 阅读 (126) 评论 (0) 编辑
摘要:定义定义一系列算法,将它们一个个封装起来,并且使它们可以互相替换,该模式使得算法可独立于使用它的客户而变化。 --《设计模式》GoFUML类图使用场景一个系统有许多类,而区分它们的只是他们直接的行为时。在有多种算法相似的情况下,使用if…else…所带来的复杂和难以维护。关键组成部分1,抽象策略角色(Strategy):定义公共接口,Context上下文使用这个接口调用不同的算法,一般使用接... 阅读全文
posted @ 2019-02-13 15:13 永远的麦子 阅读 (124) 评论 (0) 编辑
  2019年2月12日
摘要:定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 --《设计模式GoF》UML类图使用场景有多个子类共有的方法,且逻辑相同,可以抽象到父类中作为模板方法实现,避免代码重复。重要的,复杂的方法,可以考虑作为模板方法。C#代码实现using System; namespace DoFactory.GangOfFou... 阅读全文
posted @ 2019-02-12 18:08 永远的麦子 阅读 (59) 评论 (0) 编辑
摘要:定义保证一个类仅有一个实例,并提供一个该实例的全局访问点。 --《设计模式GoF》UML类图使用场景当类只能有一个实例并且用户可以从一个众所周知的访问点访问它时。创建一个对象需要消耗过多的资源,比如IO和数据库连接等。C#代码实现1,初始版本namespace DesignPatternDemo.ConsoleApp{ /// /// 单例类 /// public c... 阅读全文
posted @ 2019-02-12 17:08 永远的麦子 阅读 (158) 评论 (0) 编辑
  2019年1月31日
摘要:包括7大设计原则和23大设计模式。7大设计原则这7大设计原则不仅是23大设计模式要去遵守的,也是我们平常开发过程中要时刻去遵守的准则,所以说非常非常重要。1,单一职责原则1)定义:就一个类而言,应该仅有一个引起它变化的原因。简而言之,就是功能要单一。2)如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发... 阅读全文
posted @ 2019-01-31 18:05 永远的麦子 阅读 (1481) 评论 (0) 编辑
  2019年1月15日
摘要:包括nginx的入门和进阶学习。 目录 nginx系列1:认识nginx nginx系列2:搭建nginx环境 nginx系列3:搭建一个静态资源web服务器 nginx系列4:日志管理 nginx系列5:nginx的请求处理流程 nginx系列6:nginx的进程结构 nginx系列7:处理HTT 阅读全文
posted @ 2019-01-15 11:41 永远的麦子 阅读 (233) 评论 (0) 编辑
摘要:proxy_pass指令URL参数规则需要注意的是,url中携带和不携带URI时发往上游请求的行为不同! 阅读全文
posted @ 2019-01-15 11:30 永远的麦子 阅读 (116) 评论 (0) 编辑
摘要:最少连接算法使用最少连接算法可以使得nginx优先选择连接最少的上游服务器,需要用到upstream_least_conn模块。如何跨worker进程生效因为nginx是多进程结构的,默认多个worker进程间无法共享数据。使用upstream_zone模块可以实现这个需求。 阅读全文
posted @ 2019-01-15 11:13 永远的麦子 阅读 (203) 评论 (0) 编辑
  2019年1月14日
摘要:前面一节的hash算法存在一个问题,当上游的应用服务器因某一台down掉导致服务器数量发生变化时,会导致大量的请求路由策略失效,一致性哈希算法可以缓解这个问题。一致性哈希算法1,hash算法存在的问题2,一致性哈希扩容前:扩容后:使用方法:只需要在hash key后面添加consistent就可以了。 阅读全文
posted @ 2019-01-14 17:55 永远的麦子 阅读 (270) 评论 (0) 编辑
摘要:使用默认的round-robin负载均衡算法无法保证某一类请求只能由上游的某一台应用服务器处理,它只适用于AKF扩展中的水平扩展,如果要保证某一类请求只能由上游的某一台应用服务器处理,就需要用到AKF扩展中的Z轴扩展,一般使用基于哈希算法来实现。ip_hash模块基于客户端的IP地址。使用方法:hash模块基于任意的参数和变量。使用方法: 阅读全文
posted @ 2019-01-14 17:17 永远的麦子 阅读 (745) 评论 (0) 编辑
摘要:upstream模块的使用方法1,使用upstream和server指令来选择上游服务器这两个指令的语法如下图:示例:2,对上游服务使用keepalive长连接负载均衡策略round-robin加权Round-Robin算法是其它所有负载均衡算法的基础。 阅读全文
posted @ 2019-01-14 16:14 永远的麦子 阅读 (320) 评论 (0) 编辑
摘要:HTTP反向代理请求处理流程如下图: 阅读全文
posted @ 2019-01-14 14:51 永远的麦子 阅读 (194) 评论 (0) 编辑
摘要:反向代理是nginx的一个非常重要的功能。反向代理nginx支持四层反向代理和七层反向代理,如下图。负载均衡负载均衡是实现服务高性能和高可用的重要手段,而nginx是实现负载均衡的重要工具。 阅读全文
posted @ 2019-01-14 14:33 永远的麦子 阅读 (647) 评论 (0) 编辑
  2019年1月12日
摘要:处理HTTP请求的11个阶段如下图:序号阶段指令备注1POST_READrealip获取客户端真实IP2SERVER_REWRITErewrite3FIND_CONFIG4REWRITErewrite5POST_REWRITE6PRE_ACCESSlimit_conn, limit_req7ACCESSauth_basic, access, auth_requestauth_basic可以做访问限... 阅读全文
posted @ 2019-01-12 17:21 永远的麦子 阅读 (648) 评论 (0) 编辑
摘要:nginx的进程结构如下图:通过ps –ef | grep nginx可以看到共有三个进程,一个master进程,两个worker进程。nginx是多进程结构,多进程结构设计是为了保证nginx的高可用高可靠,包含:master进程:也是父进程,负责worker进程的管理。worker进程:也是子进程,worker进程一般配置成与服务器的CPU核数相同,worker进程用来处理具体的请求的。cac... 阅读全文
posted @ 2019-01-12 16:39 永远的麦子 阅读 (309) 评论 (0) 编辑