自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(306)
  • 收藏
  • 关注

原创 微服务架构体系

互联网通信体,诞生各种技术体系。目前大致分为 以下几个派别:1 Java2 .Net 3 PHP 4 Python5 Ruby6 Node.js7 ........................开发语言形态越来越多,各个派系的口水仗 从未间歇.... 技术人员需要站队,选型的技术公司需要站队。其实事情的本质很简单,只不过是纵横捭阖;纵横捭阖 :纵系 Y 单个业务管线 ,横系 X 管线的脉络。每个纵 横 的连接点,之间有开关(捭阖)从3维的视角来看,还有一个Z轴,来衡量 ...

2021-08-29 11:16:51 658

原创 网站架构示意图

2021-08-29 11:11:23 1069

原创 多层负载均衡策略,可以承受得住日千万级别访问

dns负载均衡加四层负载均衡分发发加七层负载均衡分发,这个架构高可用可以说非常高了,可以扛得住千万级别,甚至亿级别的日访问量,如果访问量比较小可以不用四层负载均衡,直接dns负载均衡加七层看好了...

2021-08-29 11:07:28 299

原创 微服务之consul

一、概述consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。@clientCLIENT

2021-08-29 11:01:57 1011

原创 深入剖析PHP的运行原理和运行流程

PHP的工作原理和运行流程php是一门适用于web开发的动态语言,它可以说是一个用C语言实现的包含大量组件的软件框架。那么,php是如何运行的呢?它的运行原理是什么?它的执行流程是怎么样的呢?php是以请求/响应为周期运行服务端应用程序,当请求进入应用程序,流程如下:php的每一个请求都会重复以上的交互。底层分析php的运行模式有两种:web模式和cli模式。无论是哪种公众模式,php的工作原理都是一样的,都是作为一种SAPI运行。首先,认识下SAPI,它是什么?...

2021-07-09 20:42:12 1435 3

原创 Nginx服务器之负载均衡策略分析

Nginx的upstream目前支持的五种方式的分配,分别是:轮询策略,权重轮询策略,ip_hash策略,fair策略,url_hash策略。目前我总结的nginx负载策略共两大类,分别是:内置策略和扩展策略。1) 内置策略有3种,包括:轮询策略、加权轮询策略和ip_hash策略。默认情况下内置策略会编译进Nginx的内核,只需要在nginx配置中指明参数即可。轮询策略顾名思义,该策略就是服务器将每个前端请求按顺序(时间顺序和排列次序)逐一分配到不同的后端服务器节点。如果后端服务器...

2021-07-06 21:47:42 234

原创 谈计算(cpu)密集型和io密集型与php性能优化

多年来,php超高的开发效率、低成本的投入、灵活便捷、简单易学、短平快的开发周期,一直为人们所喜欢,也是php能走到今天作为大众主流语言的原因,可是高并发一直是php短板,尤其是在近些年来语言局势逐渐稳定,各种新语言层出不穷,与其他语言比,php似乎只剩下开发效率了,很多人也跟风起哄唱衰php,似乎现在的php一直在吃老本。php作为一门脚本语言,架构一直是它的短板,当我们来设计 作为一个从2013年纪开始接触php的资深phper,我见证它从低谷到高峰,再到走向成熟,我见...

2021-04-19 22:56:39 1748 6

原创 PHP的一些第三方编译器,可将php代码编译成二进制文、字节码或转换成其他静态语言

HipHop for PHPFacebook推出了HipHop for PHP,这可能是迄今为止经过最佳测试的PHP编译器(因为它运行了世界上最大的10个网站之一)。然而,Facebook停止使用HHVM,这是一个虚拟机,而不是编译器。除此之外,谷歌搜索引发PHP compiler了许多第三方解决方案。zephirzephir,可以用近似PHP的一种中间代码写程序,然后自动转...

2020-03-09 00:15:29 2296

原创 API接口安全设计

web端token、md5算法 签名加密参数 ,对生成加密算法的js文件进行加密用客户端复杂的用appid appkey+md5算法 参数签名,简单的用token,

2020-02-25 15:29:44 569

原创 【商城】商城购物车下单库存设计

购物车下单不是一个简单的添加商品然后下单的功能,其背后涉及的内容非常复杂复杂,它与会员系统、商品系统、库存系统、订单系统等紧密结合,设计购物车下单功能时要考虑到与其他系统产生的关联关系,尤其是订单系统、库存系统。在电子商务系统中,订单处理时,首先要考虑的核心的环节就是库存设计,然后围绕库存展开一系列的业务逻辑。那【如何减去库存,该在何时减库存】就成了首要问题,目前普遍采用的有以下几种方案。...

2020-02-22 14:49:49 3213

原创 【操作系统】Unix的哲学

Douglas McIlroy是Unix系统上管道机制的发明者,也是Unix文化的缔造者之一。他归纳的Unix哲学如下:程序应该只关注一个目标,并尽可能把它做好。让程序能够互相协同工作。应该让程序处理文本数据流,因为这是一个通用的接口总的来说是:"简单原则"----尽量用简单的方法解决问题----是"Unix哲学"的根本原则。这也就是著名的KISS(keep it simple, stupi...

2020-02-15 15:58:57 1008

原创 浅谈PHP导出百万excel问题解决思路与解决方案

前两年做外包时候的事了,记录一下吧,也正好梳理一下思路,温故而知新。php导出excel,数据量小的时候使用phpexcel可轻松解决问题,仅仅限于5w行以下数据,但实际上我在使用phpexcel导出4w行数据的时候就出问题了:一开始是报内存溢出,然后随手给了1g内存,当然是程序里ini_set动态设置没动配置文件。 然后又报运行时间超过30秒,我又设置了在程序执行完在结束 又过了一段...

2020-01-25 01:29:22 965 1

原创 网站性能优化:懒加载和预加载

一、懒加载1.什么是懒加载懒加载也叫延迟加载,指的是在长网页中延迟加载图像,是一种很好优化网页性能的方式。用户滚动到它们之前,可视区域外的图像不会加载。这与图像预加载相反,在长网页上使用延迟加载将使网页加载更快。在某些情况下,它还可以帮助减少服务器负载。常适用图片很多,页面很长的电商网站场景中。2.为什么要用懒加载能提升用户的体验,不妨设想下,用户打开像手机淘宝长页面的时候,如...

2020-01-08 10:25:16 335

转载 浏览器内部工作原理

目录  一、介绍  二、渲染引擎  三、解析与DOM树构建  四、渲染树构建  五、布局  六、绘制  七、动态变化  八、渲染引擎的线程  九、CSS2可视模型  英文原文:How Browsers Work: Behind the Scenes of Modern Web Browsers  一、介绍  浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作...

2020-01-03 17:06:41 179

原创 什么是单元测试?如何做好单元测试?

什么是单元测试?如何做好单元测试?单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。单元测试都是以自动化的方式执行,所以在大量回归测试的场景下更能带来高收益。单元测试代码里提供函数的使用示例,因为单元测试的具体表现形式就是对函数以各种不同输入参数组合进行调用。如何做好单元测试?1)代码的基本特征与...

2020-01-02 11:36:12 680

原创 爬虫技术现状分析

需求万维网上有着无数的网页,包含着海量的信息,无孔不入、森罗万象。但很多时候,无论出于数据分析或产品需求,我们需要从某些网站,提取出我们感兴趣、有价值的内容,但是纵然是进化到21世纪的人类,依然只有两只手,一双眼,不可能去每一个网页去点去看,然后再复制粘贴。所以我们需要一种能自动获取网页内容并可以按照指定规则提取相应内容的程序,这就是爬虫。原理传统爬虫从一个或若干初始网页的URL开始,...

2019-12-21 12:04:16 4912

原创 【编程语言】静态语言与动态语言的本质区别以及其应用场景

从宏观的语言层面来说,编程语言类型共分为两大类:静态语言(又叫强类型语言)与动态语言(又叫弱类型语言)。静态语言通常是低级(底层)语言,动态语言一般为高级(应用)语言,静态语言运用通常是通过编译器,而动态语言解释器。动态语言动态语言即脚本语言又叫弱类型语言(严格的来说不算编程语言),依靠解释器解释运行(解释器不会做任何的代码优化的),每次运行每次解析。这样编译运行机制,让其在运行效率上...

2019-12-19 18:03:20 1435

原创 软件测试:黑盒测试、白盒测试和灰盒测试

1. 黑盒测试和白盒测试的直观图  从图中可以直接看出来,黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。而白盒测试可以当盒子是透明的,里面的一切我们都看的清楚,从而我们可以通过去测内部结构来测试。  2. 黑盒测试 (Black-Box Testing)  黑盒测试又称为功能测试、数据驱动测试或基于规格说明书的测试,是...

2019-12-17 11:48:03 968

原创 【php爬虫】网络爬虫开发领域常见问题分析以及解决方案

这里只谈数据采集/爬虫开发过程中可能遇到一些问题/反爬机制,以及如何解决(问题解决思路),其他的暂时不谈。可能会遇到的一些问题:目标网站/app没有做反扒机制,那这就很好搞了,你就放开了随便爬,爬他个天荒地老、海枯石烂,只要服务器不到。 目标网站/app会做一些简单的Referer、host、head请求头验证等。 目标网站会做一些登录之类的cookie验证(如淘宝)。 目标网站会一...

2019-12-15 15:27:34 505

原创 网站前端和后台性能优化的34条宝贵经验和方法

1 减少HTTP请求数量 (Minimize HTTP Requests)tag:content80%的用户响应时间被花费在前端,而这其中的绝大多数时间是用于下载页面中的图片、样式表、脚本以及Flash这些组件。减少这些组件的数量就可以减少展示页面所需的请求数,而这是提高网页响应速度的关键。朴素的页面设计当然是减少组件的一种途径,但有没有能兼顾丰富的页面内容和快速的响应速度的方法呢?...

2019-12-14 10:34:06 505

原创 浅谈MySQL索引优化分析

为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等啥子?撸起袖子就是干!案例分析我们先简单了解一下非关系型数据库和关系型数据库的区别。MongoDB是NoSQL中的一种。NoSQL的...

2019-12-12 19:14:26 244

原创 微服务和分布式的区别详解

分布式架构是分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广,相关的书籍也非常多,也没有涉及这些技术的细节,只是从各种分布式系统平台产生的背景和在软件开发中应用的情况来探讨它们的主要异同。微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。...

2019-12-12 10:17:30 420

原创 关于各种命令(linux、sql、git)的引发的一些思考和个人观点

死记硬背命令没有任何意义,无论linux、sql还是git、redis等,这些万年不变的命令没必要花时间花精力刻意去记,用的多了自然就记住了,根本无需去刻意记,小时候背课文、英文单词、工作了背命令?脑子不是用来干这些体力活的。编程的真谛是思想,编程思想、解决问题思维,而不是刻板冰冷的命令,就有那么一些以死记硬背各种命令为能事,我深鄙视之,殊不知,新手程序员和老程序员差的就是编程思想、解决问题思...

2019-12-11 15:21:47 219

原创 js 实现上传图片/拍照预览功能(无须上传即可预览)

我们在做网页时经常会需要有上传图片的需求,可能是选择图片或者拍照上传。本文记录了使用css+js实现图片选中后的预览及压缩上传功能,需要的朋友参考下吧HTML code:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta ...

2019-12-11 10:28:55 502

原创 用Fiddler对移动设备网络Android/ios应用进行抓包,监控手机网络请求

Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多。不仅如此,它还可以支持请求重放等一些高级功能。显然它是可以支持对手机应用进行http抓包的。本文就来介绍下如何用fiddler对手机应用来抓包。启动Fiddler,打开菜单栏...

2019-12-10 16:04:34 442

转载 过早的优化是万恶之源?

代码优化的好处多多,但是这并不意味着所有的代码都需要进行优化,有时过度的优化反而适得其反——费时、费力、不讨好。“现代计算机科学的鼻祖”Donald Knuth曾说过“过早的优化是万恶之源”,因为:让正确的程序更快,要比让快速的程序正确容易得多。在项目开发中,总是有程序员浪费宝贵的时间去改进那些不需要改进的代码,而没有通过所做的改进增加价值。在对项目进行优化时,究竟哪些地方应该优化,应该如...

2019-12-09 18:06:14 519

原创 重构原则

一、何谓重构(What)视上下文的不同,重构有两种定义:重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构(动词):使用一系列重构的手法,在不改变软件可观察行为的前提下,调整其结构。1、重构的目的是使软件更容易被理解和修改。2、重构不会改变软件的可观察的行为——重构之后软件的功能一如以往。在使用重构技术开发...

2019-12-09 18:03:43 690 1

转载 MySQL数据库三大范式和反范式

https://blog.csdn.net/qq_32828933/article/details/82828783

2019-12-07 18:39:43 153

原创 架构设计的几个痛点_我总结出的架构原则和模式

高可用的网站架构分层架构,每一层都分布式部署。使用冗余和故障转移的方式保证可用性。- 应用层用负载均衡服务器,能够监测服务器的可用性,把不可能的踢出集群- 服务层使用分布式调用框架dubbo- 数据库使用同步复制,实现数据冗余。- 还要考虑升级发布引起的宕机高可用的应用通过负载均衡进行无状态服务的失效转移集群的session管理Session复制, 开启web...

2019-12-07 12:29:20 242

原创 Php网站如何优化才好?

尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内...

2019-12-05 12:16:38 304

原创 MySQL性能优化之表结构优化

设计规范化表,消除数据冗余第一范式:属性(字段)的原子性约束,要求属性具有原子性,不可再分割;第二范式:记录的惟一性约束,要求记录有惟一标识,每条记录需要有一个属性来做为实体的唯一标识。第三范式:属性(字段)冗余性的约束,即任何字段不能由其他字段派生出来。外键解决适当的冗余,增加计算列设计原则:在数据冗余和处理速度之间找到合适的平衡点传说中的‘三少原则’①...

2019-12-05 12:09:34 237

原创 CentOS、Ubuntu、Debian三个linux发行版本的区别

Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。商业版本以Redhat为代表,开源社区版本则以debian为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用,不能一概而论。而绝大多数VPS上只提供开源社区维护的发行版本。下面就这些不同的Linux发行版进行简单的分析。UbuntuUbuntu近些年的粉丝越来...

2019-09-15 08:38:53 2869

原创 Mysql索引类型和索引结构以及那些情况下需要建立索引

索引只是一个提高效率的因素,mysql索引的几种类型:4)、单值索引,只包含一个列,一张表可以有多个单值索引。5)、唯一索引,索引列的值必须唯一,允许为空。6)、复合索引,包含多个列。7)、索引的相关操作几种索引结构:Hash索引full-text全文索引R-Tree 索引BTree索引哪些情况要创建索引。1)、主建自动建立唯一索引2)...

2019-09-13 17:04:00 278

原创 有意向一起创业的安卓开发私聊我

目前正在创业,招几个有意向的安卓开发一起创业,有兴趣的私聊我

2023-03-15 12:24:33 161 1

原创 go:expected ‘package‘, found ‘import‘

看看是不是忘了在第一行加packge了:-),忘记在文件的首行写package包声明会报expected ‘package‘, found ‘import‘

2022-04-19 08:16:29 1285

原创 【Go MySQL】Go操作MySQL

MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。Go操作MySQL连接Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。我们常用的数据库基本上都有完整的第三方实现。例如:MySQL驱动下载依赖go get -u github.com/go-sql-driver/mysql使用MySQL驱动func Open(drive

2022-04-13 20:47:59 611

原创 go sqlx库使用指南

在项目中我们通常可能会使用database/sql连接MySQL数据库。本文借助使用sqlx实现批量插入数据的例子,介绍了sqlx中可能被你忽视了的sqlx.In和DB.NamedExec方法。sqlx介绍在项目中我们通常可能会使用database/sql连接MySQL数据库。sqlx可以认为是Go语言内置database/sql的超集,它在优秀的内置database/sql基础上提供了一组扩展。这些扩展中除了大家常用来查询的Get(dest interface{}, ...) error和Sele

2022-04-13 20:45:19 967

原创 Go语言基础之net/http

Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。net/http介绍Go语言内置的net/http包提供了HTTP客户端和服务端的实现。HTTP协议超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP客户端基本的HTTP/HTTPS请求Get、Head、Post和Pos

2022-04-13 20:27:59 1238

原创 VS Code配置Go语言开发环境

VS Code是微软开源的一款编辑器,插件系统十分的丰富。本文就介绍了如何使用VS Code搭建Go语言开发环境。VS Code配置Go语言开发环境说在前面的话,Go语言是采用UTF8编码的,理论上使用任何文本编辑器都能做Go语言开发。大家可以根据自己的喜好自行选择。编辑器/IDE没有最好只有最适合。下载与安装VS Code官方下载地址:Download Visual Studio Code - Mac, Linux, Windows三大主流平台都支持,请根据自己的电脑平台选择对应的安装

2022-04-13 20:23:30 1684

原创 go携程并发请求

package main import ( "fmt" "io/ioutil" "net/http" "time") // HTTP get请求func httpget(ch chan int) { resp, err := http.Get("http://csdn.net") if err != nil { fmt.Println(err) return } defer resp.Body.Cl.

2022-04-11 17:07:36 595

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除