![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构
文章平均质量分 66
编程哲学家
资深PHP,擅长抽象编程,没有我实现不了的需求,没有我解决不了的问题;主导过多个成功的项目,带领过超过十人以上团队,擅长架构与程序设计、发掘业务以及解决各种各样的问题,知识面广,博学,爱智慧与思考。
展开
-
go-micro 微服务开发
Micro概述Micro是一个简化分布式开发的微服务生态系统。它为开发分布式应用程序提供了基本的构建模块。什么是Micro?Micro是一个微服务生态系统,致力于提供产品,服务和解决方案,以实现现代软件驱动型企业的创新。我们计划成为任何与微服务相关的事实资源,并期待公司能够利用这项技术为自己的业务。从早期的原型开始一直到大规模的生产部署。我们已经看到行业发生根本性转变。摩尔定律是有效的,我们每天都能获得越来越多的计算能力。但是,我们无法完全获取这种新的能力。现有的工具和开发实践在这个新时代并原创 2021-08-29 11:33:45 · 432 阅读 · 0 评论 -
微服务架构体系
互联网通信体,诞生各种技术体系。目前大致分为 以下几个派别:1 Java2 .Net 3 PHP 4 Python5 Ruby6 Node.js7 ........................开发语言形态越来越多,各个派系的口水仗 从未间歇.... 技术人员需要站队,选型的技术公司需要站队。其实事情的本质很简单,只不过是纵横捭阖;纵横捭阖 :纵系 Y 单个业务管线 ,横系 X 管线的脉络。每个纵 横 的连接点,之间有开关(捭阖)从3维的视角来看,还有一个Z轴,来衡量 ...原创 2021-08-29 11:16:51 · 676 阅读 · 0 评论 -
ApacheBench(ab)使用详解
ab命令原理Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载,因此是某些DDOS攻击之必备良药,老少皆宜。自己使用也须谨慎。否则一次上太多的负载,造成目标服务器直接因内存耗光死机,而不得不硬重启,得不偿失。在带宽不足的情况下,最好是本机进行测试,建议使用内网的另一台或者多台服务器通过内网进行测试,这..原创 2021-08-29 11:14:57 · 773 阅读 · 0 评论 -
nginx负载均衡 - 根据url做一致性hash
nginx负载均衡 - 根据url做一致性hash目标:按照指定的参数(如分类/商品编号)做一致性hash,从而保证相同数据到一台机器上先说下nginx里$request_uri和$uri的区别$request_uriThis variable is equal to the *original* request URI as received from the client including the args. It cannot be modified. Look at $uri for th原创 2021-08-29 11:12:41 · 739 阅读 · 0 评论 -
网站架构示意图
原创 2021-08-29 11:11:23 · 1129 阅读 · 0 评论 -
Nginx + Swoole 配置
于Http\Server对HTTP协议的支持并不完整,建议仅作为应用服务器,用于处理动态请求,并且在前端增加Nginx作为代理。server { root /data/wwwroot/; server_name local.swoole.com; location / { proxy_http_version 1.1; proxy_set_header Connection "keep-alive"; proxy...原创 2021-08-29 11:10:41 · 802 阅读 · 0 评论 -
多层负载均衡策略,可以承受得住日千万级别访问
dns负载均衡加四层负载均衡分发发加七层负载均衡分发,这个架构高可用可以说非常高了,可以扛得住千万级别,甚至亿级别的日访问量,如果访问量比较小可以不用四层负载均衡,直接dns负载均衡加七层看好了...原创 2021-08-29 11:07:28 · 310 阅读 · 0 评论 -
微服务之consul
一、概述consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。@clientCLIENT原创 2021-08-29 11:01:57 · 1026 阅读 · 0 评论 -
用Nginx部署Go应用
Nginx 是一个 Web Server,可以用作反向代理、负载均衡、邮件代理、TCP / UDP、HTTP 服务器等等,它拥有很多吸引人的特性,例如: 以较低的内存占用率处理 10,000 多个并发连接(每10k非活动HTTP保持活动连接约2.5 MB ) 静态服务器(处理静态文件) 正向、反向代理 负载均衡 通过OpenSSL 对 TLS / SSL 与 SNI 和 OCSP 支持 FastCGI、SCGI、uWSGI 的支持 WebSo原创 2021-08-29 10:58:00 · 2565 阅读 · 0 评论 -
深入剖析PHP的运行原理和运行流程
PHP的工作原理和运行流程php是一门适用于web开发的动态语言,它可以说是一个用C语言实现的包含大量组件的软件框架。那么,php是如何运行的呢?它的运行原理是什么?它的执行流程是怎么样的呢?php是以请求/响应为周期运行服务端应用程序,当请求进入应用程序,流程如下:php的每一个请求都会重复以上的交互。底层分析php的运行模式有两种:web模式和cli模式。无论是哪种公众模式,php的工作原理都是一样的,都是作为一种SAPI运行。首先,认识下SAPI,它是什么?...原创 2021-07-09 20:42:12 · 1525 阅读 · 3 评论 -
Nginx服务器之负载均衡策略分析
Nginx的upstream目前支持的五种方式的分配,分别是:轮询策略,权重轮询策略,ip_hash策略,fair策略,url_hash策略。目前我总结的nginx负载策略共两大类,分别是:内置策略和扩展策略。1) 内置策略有3种,包括:轮询策略、加权轮询策略和ip_hash策略。默认情况下内置策略会编译进Nginx的内核,只需要在nginx配置中指明参数即可。轮询策略顾名思义,该策略就是服务器将每个前端请求按顺序(时间顺序和排列次序)逐一分配到不同的后端服务器节点。如果后端服务器...原创 2021-07-06 21:47:42 · 247 阅读 · 0 评论 -
Nginx的upsteam负载均衡算法
Nginx 的负载均衡模块目前支持 4种调度算法,下面进行分别介绍,其中后两项属于第三方调度算法。 轮询(默认)。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响。Weight 指定轮询权值,Weight值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。 ip_hash。每个请求按访问 IP的 hash 结果分配,这样来自同一个 IP的访客固定访问一个后端服务器,有效解决了动态网页存在的 session...原创 2021-07-06 21:37:10 · 856 阅读 · 0 评论 -
几种Web服务器比较-(Apache、IIS、Lighttpd、Nginx、LiteSpeed、Zeus
到目前,Apache和IIS是用的最为普遍的Web服务器,但是它们太过单一,在此之外这里还有许多Web服务器软件,或是免费的或是商业的。In this article we present four popular alternative web servers: Lighttpd, Nginx, LiteSpeed and Zeus. The first two are free and open source while the other two are commercial, closed-sou原创 2021-07-06 08:00:20 · 1675 阅读 · 0 评论 -
MVC已死,是时候转向MOVE了(MVC is dead, it‘s time to MOVE on)
MVC 模式在编程中的应用,是一个很了不起的主意。“数据模型(Model)”可以封装与应用程序的业务逻辑相关的数据及对数据的处理方法;“视图层(View)”能够实现数据有目的的显示;“控制器(Controller)”能够在不同层面间起到组织作用,对应用程序的流程进行控制。 不过,可能你在使用这种三层架构模式的过程中会逐渐迷惑。因为有很多代码你不知道把它放哪,就只好把它放到控制层,最后发现在控制层中塞了太多的代码。 LinkedIn 的软件工程师Conrad Irwin也遇到同样的问题,于是他..转载 2020-08-17 12:14:26 · 152 阅读 · 0 评论 -
互联网架构设计:高性能的后端
对于互联网产品的高性能架构设计通常包括以下几个大方面:1)Web浏览器高性能设计2)App客户端高性能设计3)高性能的网络和硬件4)后台服务高性能设计后端服务一般指用户直接看到的远程服务,涉及到网络硬件、逻辑计算、通信协议和数据存储等部分。下面我们将着重介绍高性能后台服务的设计方法和策略。1、高性能的网络和硬件网络硬件是提供实现高性能服务的先决条件,如果网络硬件失...转载 2020-03-22 09:09:24 · 237 阅读 · 0 评论 -
【商城】商城购物车下单库存设计
购物车下单不是一个简单的添加商品然后下单的功能,其背后涉及的内容非常复杂复杂,它与会员系统、商品系统、库存系统、订单系统等紧密结合,设计购物车下单功能时要考虑到与其他系统产生的关联关系,尤其是订单系统、库存系统。在电子商务系统中,订单处理时,首先要考虑的核心的环节就是库存设计,然后围绕库存展开一系列的业务逻辑。那【如何减去库存,该在何时减库存】就成了首要问题,目前普遍采用的有以下几种方案。...原创 2020-02-22 14:49:49 · 3353 阅读 · 0 评论 -
20 | 高性能负载均衡:分类及架构
高性能集群本质:增加服务器提升系统计算能力。同样输入和逻辑,服务器相同输出。复杂度是分配策略(为任务选择合适算法)负载均衡器:有的基于负载考虑,有的基于性能(吞吐量、响应时间),有基于业务。3 种:DNS 负载均衡、硬件、软件负载均衡。一、DNS 负载均衡地理级别。例如,北方访问北京机房,南方访问深圳。本质是 DNS 解析同域名返回不同 IP 地址。www.baidu.com,北方...转载 2020-01-08 11:35:38 · 229 阅读 · 1 评论 -
【架构】什么是架构,为什么大部分人做不了架构师?
一、什么是架构?ISO/IEC 42010:20072 中对架构的定义如下:The fundamental organization of a system, embodied in its components, their relationships to each other and the enviroment, and the principles governing its des...原创 2020-01-26 23:34:16 · 1134 阅读 · 0 评论 -
Nginx负载均衡策略
文章目录一、Nginx五种均衡策略1.1 轮询(默认)1.2 指定权重1.3 IP绑定 ip_hash1.4 fair(第三方)1.5 url_hash(第三方)二、单Nginx配置多应用2.1 配置tomcat单应用2.2 配置tomcat多应用,hostname主机配置方式2.3 /etc/hosts配置2.4 配置php的httpd.conf三、DNS的负载均衡与反向...转载 2019-12-17 10:57:14 · 138 阅读 · 0 评论 -
分布式-缓存防穿透 、雪崩
一、缓存穿透预防及优化1.1 缓存穿透模型1.2 缓存穿透的解决方法1.2.1 缓存空对象1.2.2 布隆过滤器拦截1.2.3 两种方案对比二、缓存雪崩问题优化2.1 保证缓存层服务高可用性。2.2 依赖隔离组件为后端限流并降级。2.3 提前演练。三、缓存热点 key 重建优化3.1 互斥锁 (mutex key)3.2 永远不过期四、 缓存与数据一致性问题五、Redi...转载 2019-12-17 10:53:17 · 223 阅读 · 0 评论 -
Web业务性能优化技术总结
前言Web业务的性能优化是一个系统工程,既有深度,又有广度。以下所简称性能均特指Web业务性能。技术的广度上,主要从大背景下考虑到其各个相关方,基于共同的数据指标发掘和评估方案。技术的深度上是一个渐进和迭代的过程。可以从性能的本质展到目前各端的主要优化方向。性能的本质性能的本质是快速传播, 要素是内容(数据)和流程,效果是:完备、快速。完备不是完整,而是接受的信息要一致,没有歧义。...转载 2019-12-13 14:56:12 · 241 阅读 · 0 评论 -
微服务和分布式的区别详解
分布式架构是分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广,相关的书籍也非常多,也没有涉及这些技术的细节,只是从各种分布式系统平台产生的背景和在软件开发中应用的情况来探讨它们的主要异同。微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。...原创 2019-12-12 10:17:30 · 425 阅读 · 0 评论 -
非Java语言(php)接入SpringCloud微服务框架
微服务很火,实验室要求大部分语言接入微服务,比如:NET、JAVA、前端、PHP。微服务本来就是JAVA的,作为一个phper,只有想办法接入微服务。网上可以参考的东西不多,但还是找到了可利用的东西。先实现php注册到Spring Cloud的注册中心:http://eureka.springcloud.cn/结果如图:把php应用部署到openresty + PHP(FPM)注册工具...转载 2019-12-11 14:55:17 · 1518 阅读 · 0 评论 -
什么是SpringCloud
何为微服务在了解SpringCloud之前,我们先来大致了解下微服务这个概念吧。传统单体架构单体架构在小微企业比较常见,典型代表就是一个应用、一个数据库、一个web容器就可以跑起来。可以从上图看出,单体架构基本上就是如上所说的:一个应用,一个数据库,一个web容器,里面集成了所有的功能。这在小型项目里面时比较好维护的,毕竟功能不多,也不复杂,但扩展性和可靠性比较差,因为所有功能...转载 2019-12-11 14:45:47 · 211 阅读 · 0 评论 -
简单说下分布式事务
1、微服务架构存在的问题有哪些?(1)分布式系统,进程间的通讯机制和故障处理措施变的更加复杂(2)系统微服务化后,一个简单的功能,内部可能需要调用多个服务并操作多个数据库实现,产生服务调用的分布式事务问题(3)微服务数量众多,测试、部署、监控等等运维工作都变的更加困难2、解决方案随着RPC框架的成熟,第一个问题已经逐渐得到解决。例如dubbo可以支持多种通讯协议,springc...原创 2019-12-11 14:31:24 · 148 阅读 · 0 评论 -
双机热备的与Raid技术、数据备份的区别和简单介绍
随着企业数据信息越来越多,对备份和存储的要求也越来越高,而双机热备、Raid技术和数据备份作...原创 2019-12-10 16:37:17 · 1478 阅读 · 0 评论 -
高并发常用解决方案
1.分析了解服务器的峰值,平均值,cpu,内存占用2.查找高并发的原因,是机房的网络问题,还是程序卡死了还是硬件的问题,看看是程序的问题还是Mysql的问题导致的表锁什么的3.使用队列和缓存4.数据库的优化,静态资源和动态资源的分离5.使用多线程处理6.使用集群和分布式7.提高硬件配置,优化系统内核,修改服务器应用软件配置,让其充分利用资源,最大化发挥服务器性能8.将单机架构改为...原创 2019-12-10 16:10:48 · 369 阅读 · 0 评论 -
高并发解决方案图
缓存、队列、应用拆分、限流、数据库分库、分表、服务降级转载 2019-12-09 18:09:44 · 106 阅读 · 0 评论 -
几种常见的负载均衡
1)http重定向HTTP重定向服务器就是一个普通的服务器,当用户访问时,其会根据一定的算法得到服务器集群的一个真实服务器的IP地址,将其放在HTTP响应头中,响应状态码为(302),当用户浏览器接收到这个响应时,会将得到的真实服务器的IP地址提出并重新访问。如上图所示,当用户访问域名时通过DNS解析得到114.100.20.200,然后访问114.100.20.200,也就是HTTP重定向服...转载 2019-12-07 18:36:26 · 166 阅读 · 0 评论 -
大流量的网站如何优化
1.CSS,JS 打包压缩,cdn2.减少http请求,使用页面静态化3.优化数据库慢查询和优化代码4.使用缓存,如memcache,redis,使用mysql主从5.负载均衡加机器6.拆分应用项目,一个服务对应有一个项目,比如订单对应一个项目,面向服务开发。7.使用异步处理数据,消息队列,分布式数据库存储,一个业务类型数据库放在一个服务器上8.http://lib.c...转载 2019-12-07 12:31:42 · 183 阅读 · 0 评论 -
QPS 与 TPS是什么
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS是 TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器 做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,...原创 2019-12-07 12:30:14 · 355 阅读 · 0 评论 -
架构设计的几个痛点_我总结出的架构原则和模式
高可用的网站架构分层架构,每一层都分布式部署。使用冗余和故障转移的方式保证可用性。- 应用层用负载均衡服务器,能够监测服务器的可用性,把不可能的踢出集群- 服务层使用分布式调用框架dubbo- 数据库使用同步复制,实现数据冗余。- 还要考虑升级发布引起的宕机高可用的应用通过负载均衡进行无状态服务的失效转移集群的session管理Session复制, 开启web...原创 2019-12-07 12:29:20 · 283 阅读 · 0 评论 -
【APP架构】面对爆发流量如何进行架构调整
一、APP架构与WEB架构的最大不同移动APP的架构和传统PC的WEB架构有三点不同:1、连接的稳定性。在传统的web端连接成功后就可以认为它是稳定的,但在移动端、无线端,APP连接非常敏感,可能进出电梯、隧道、地铁,连接就会断,所以连接的稳定性是很显著的区别,也是很大的挑战。2、流量的敏感性。传统PC和web的应用架构可能不太关注数据量、流量,但移动端、无线端,流量有限,用户非常关注。所以在架...转载 2019-12-07 12:27:16 · 187 阅读 · 0 评论 -
大型网站架构 - LAMP
一 网站大访问量1. 负载均衡:大的访问量平均分流到多台PC机Linux LVS负载均衡2. 冗余技术:服务器集群,一台服务器宕机,另一台服务器会被激活(防止单点故障)二 网站大数据存储1. Mysql数据库集群(主从复制)2. Mysql数据库分库分表(垂直分表,水平分表)3. Mysql分区技术,将一个表底层存储上拆分成多个区,使用hash算法拆分,或直接取...转载 2019-12-05 12:03:02 · 160 阅读 · 0 评论