自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 数据库分库分表设计方案, 如何做到永不迁移数据和避免热点?

一、前言一般来说,数据拆分,有两种:垂直拆分,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分,是同一个业务,按一定范围规则进行拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把4000万数据拆分4张表或者更多。当然也可以分库,再分表;把压力从数据库层级分开。二、分库分表方案分库分表方案中有常用的方案,hash取模和range范围方

2022-02-28 10:25:37 409

转载 Golang:分布式高并发场景, 服务限流实现方案

服务限流场景在高并发大流量系统中,由于并发大造成服务资源不足,负载过高,进而引发致一系列问题,这里的流量一般都是突发性的,由于系统准备不足,很难短期扩容来应对 ,进行限流是最常用的手段,所以说限流也是服务稳定性治理重要的手段。限流可能发生在多个层面:1.用户网络层:突发的流量场景如热点事件流量(秒杀事件、热门抢购,微博热搜),恶意刷流,竞对爬虫等。2.内部应用层:上游服务的异常调用,脚本异常请求,失败重试策略造成流量突发。实现限流方案常用的限流方法主要有三种:计数器算法,漏斗桶算

2022-02-28 09:44:24 2624

原创 画图必备技能 - UML之用例图

11

2021-09-23 22:10:12 178

转载 画图必备技能 - UML之时序图

什么是时序图#时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。使用场景#时序图的使用场景非常广泛,几乎各行各业都可以使用。当然,作为一个软件工作者,我这边主要列举和软件开发有关的场景。1. 梳理业务流程一般的软件开发都是为了支撑某个具体的业务。有时候业务的流程会比较复杂,涉及到多种角色,这时就可以使用时序图来梳理这个业务逻辑。这样会使业务看起来非常清晰,代码写起来也是水到渠成的事情了。

2021-09-23 22:08:11 2713 1

转载 golang 依赖注入

我们在微服务框架kratos v2的默认项目模板中kratos-layout使用了google/wire进行依赖注入,也建议开发者在维护项目时使用该工具。wire 乍看起来比较违反直觉,导致很多同学不理解为什么要用或不清楚如何用(也包括曾经的我),本文来帮助大家理解 wire 的使用。What#wire是由 google 开源的一个供 Go 语言使用的依赖注入代码生成工具。它能够根据你的代码,生成相应的依赖注入 go 代码。而与其它依靠反射实现的依赖注入工具不同的是,wire 能在编译期(准

2021-09-18 10:32:11 986

原创 defer使用

1. 只对只对当前协程有效。

2021-09-18 09:23:26 140

转载 负载均衡SLB

前言在软件系统的架构设计中,对集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。负载均衡本质上是用于将用户流量进行均衡减压的,因此在互联网的大流量项目中,其重要性不言而喻。一、什么是负载均衡?早期的互联网应用,由于用户流量比较小,业务逻辑也比较简单,往往一个单服务器就能满足负载需求。随着现在互联网的流量越来越大,稍微好一点的系统,访问量就非常大了,并且系统功能也越来越复杂,那么单台服务器就算将性能优化得再好,也不能支撑这么大用户量的访问压力了,这个时候就需要使用多台机器,设计高性能..

2021-09-16 22:41:09 328

转载 rabbitmq ACK消息确认机制

https://www.cnblogs.com/xiangdongsheng/p/14258421.html

2021-09-07 00:54:53 136

转载 RabbitMQ 保证消息不被重复消费

https://www.cnblogs.com/zhixie/p/13444213.html

2021-09-07 00:46:33 192

转载 TP6 基于 redis 实现消息队列和延迟队列

http://t.zoukankan.com/lxd-ld-p-14012029.html

2021-08-13 12:06:26 542

转载 LVS原理详解(4种工作模式)

集群什么是集群计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务LVS在企业架构中的位置集群的特点

2021-07-04 21:18:30 444

原创 负载均衡、高可用、可扩展解决方案

目录1. 单机2.DNS轮询3.nginx4.keepalived5.lvs/f56.DNS轮询1. 单机  1)浏览器通过DNS-server,域名解析到ip  2)浏览器通过ip访问web-server  缺点:    1)非高可用,web-server挂了整个系统就挂了    2)扩展性差,当吞吐量达到web-server上限时,无法扩容2.DNS轮询  DNS轮询:通过在DNS-server上对一个域名设置多个ip解析,来扩充web

2021-06-28 16:16:57 640

转载 淘宝亿级流量如何抗住的?从单机到分布式演进

目录基本概念单机架构Tomcat与数据库分开部署引入本地缓存和分布式缓存引入反向代理实现接入层负载均衡数据库读写分离数据库按业务分库把大表拆分为小表使用LVS或F5接入层负载均衡通过DNS轮询实现机房间的负载均衡引入NoSQL数据库和搜索引擎等技术大应用拆分为小应用复用的功能抽离成微服务引入企业服务总线ESB屏蔽服务接口的访问差异引入容器化技术实现运行环境隔离与动态服务管理以云平台承载系统基本概念在介绍架构之前,为了避免部分读者对架构设

2021-06-28 13:18:02 408

转载 数据库分库分表设计方案, 如何做到永不迁移数据和避免热点?

数据库分库分表设计方案, 如何做到永不迁移数据和避免热点?——转自地址:www.toutiao.com/i6677459303055491597一、前言一般来说,数据拆分,有两种:垂直拆分,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分,是同一个业务,按一定范围规则进行拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把40..

2021-01-16 09:50:43 335 2

原创 nginxi配置 http跳转https http响应状态码为301

if ($server_port !~ 443){ rewrite ^(.*) https://www.hiphp.net$1 permanent; }

2020-04-23 14:25:00 885

转载 浅谈数据库用户表结构设计,第三方登录

说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情。用户表结构的设计,算是整个后台架构的基石。如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地方也不少。与其如此,不妨设计用户表之初就考虑可拓展性,争取不需要太多额外代价的情况下一步到位。先前设计idusernamepassword用户名加上密码,解决简单需求,留个id作为其他表...

2020-04-17 09:38:29 411 1

原创 thinkphp多语言切换

版本 tp 3.2.3原理:  系统多语言功能 + 主题模板切换看懂下图就可以理解了

2016-04-13 16:11:10 531

原创 thinkphp插件开发(上)

用thinkphp做插件开发之前,可以先参考下onethink的插件模块;本人用的版本是 tp3.2.3版本,可以通过如下截图了解它的行为扩展和钩子来实现多入口插件开发:

2016-04-13 11:38:34 4160

转载 PHP 服务器变量$_SERVER 服务器环境变量 $_ENV

PHP $_SERVER 变量$_SERVER 是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。它是 PHP 中一个超级全局变量,我们可以在 PHP 程序的任何地方直接访问它。$_SERVER 包含着众多的信息,你可以尝试直接打印它:print_r($_SERVER);限于篇幅,在此不再列出打印的结果,且不同的服务器上,打

2015-11-27 10:47:09 652

转载 $_SERVER 函数中 QUERY_STRING 和 REQUEST_URI

1,http://localhost/aaa/ (打开aaa中的index.php)结果:$_SERVER['QUERY_STRING'] = "";$_SERVER['REQUEST_URI']  = "/aaa/";$_SERVER['SCRIPT_NAME']  = "/aaa/index.php";$_SERVER['PHP_SELF']     = "/aaa/ind

2015-11-27 10:41:15 401

转载 进制之间的转换

前面两节对二进制、八进制和十六进制进行了说明,接下来讲一下不同进制之间的数字是如何转换的,这在编程中有时会用到。首先,二进制、八进制和十六进制向十进制转换都是非常容易的,就是“按权相加”。所谓“权”,也即“位权”。例如,十进制第1位的位权为100=1,第2位的位权为101=10,第3位的位权为102=100;而二进制第1位的位权为20=1,第2位的位权为21=2,第3位的位权为22

2015-11-22 13:24:44 760

转载 超实用PHP函数总结整理

1、PHP加密解密  PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。function encryptDecrypt($key, $string, $decrypt){ if($decrypt){ $decrypted = rtrim(mcrypt_decrypt(MCRYPT_

2015-10-30 10:36:02 298

转载 Linux下crontab的使用

1.作用使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。2.格式crontab [-u user] {-l | -r | -e}3.主要参数-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi-r:删除目前的时程表-l列出目前的时程表。Crontab文件

2015-10-30 10:30:27 236

转载 3-5年的PHPer常见的面试题

看到有很多,的总结一下,比较适合有一定经验的PHPer1、平时喜欢哪些php书籍及博客?CSDN、虎嗅、猎云  2、js闭包是什么?  3、for与foreach哪个更快?  4、php鸟哥是谁?能不能讲一下php执行原理?  5、php加速器有哪些?apc、Zend、xcache.....能不能讲一下它的加速原理?  6、Node.js能彻底代替php+apache是

2015-10-30 10:23:54 694

转载 php缓存技术

1、普遍缓存技术:   数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。   用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。   举个常用的方法,多表关联

2015-10-27 12:52:28 220

转载 Windows7 x64在Wampserver下安装memcache

Windows7 x64在Wamp集成环境下安装Memcache,步骤如下:1.Memcached-win64 下载(1)最新版本下载:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available(2)本站下载:memcached-win64-1.4.4-14.zip2.将上述下载文件解压放到某个目

2015-09-28 15:32:09 953

转载 php &传址

php的引用(就是在变量或者函数、对象等前面加上&符号) 在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 [php] $a="ABC"; $b =&$a; echo $a;//这里输出:ABC

2015-09-11 14:33:03 379

转载 Linux中使用SecureCRT上传、下载文件命令sz与rz用法实例

sz和rz命令需要服务器支持,如果提示没有个命令:-bash: rz: command not found-bash: sz: command not found可以用yum安装(Centos为例):yum install lrzsz -y#下载一个文件sz filename#下载多个文件sz filename1 filena

2015-08-28 15:44:27 243

转载 javascript闭包(Closure)

闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。

2015-07-24 14:13:20 241

转载 php flush类输出缓冲剖析

for ($i=10; $i>0; $i--) { echo $i; flush(); sleep(1); } ?> 按照php手册里的说法 该函数将当前为止程序的所有输出发送到用户的浏览器。 上面的这段代码,应该隔一秒钟输出一次$i。但是实际中却不一定是这样。有可能是等了10秒钟后,所有的输出同时呈现出来。 好,我们来改一下这段代码,改成 ob_e

2015-07-19 17:11:51 299

转载 php缓冲区

什么是缓冲区?简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.至于为什么要有缓冲区,这是一个很广泛的问题,如果有兴趣,可以在网山找下资料.其实缓冲区最本质的作用就是,协调高速CPU和相对缓慢的IO设备(磁盘等)的运作. PHP在执行的时候,在什么地方有用到缓冲区?想要了解PHP的缓冲区,就要知道执行PHP的时候,缓冲区被设置到了什么地方.当执行

2015-07-19 17:09:47 247

转载 资料链接

http://www.phome.net/doc/manual/   帝国cms手册

2015-07-19 08:59:07 255

转载 PHP实现一个简单url路由功能

现在写一个php例子,假设我的ip为192.168.0.33,我加了一层名为router的路径,之后跟随的是 “/模块名/方法名/参数1的key/参数1的value/….”类似这样的地址:192.168.0.33/router/Hello/router/a/b/c/d/abc/index.html?id=3&url=http:………………也就是要调用Ha这个模块中的router方法,并

2015-07-16 17:08:02 2410

转载 关于PATHINFO的重写规则解析

最近比较流行的框架比如laravel,yii国内的thinkphp都提供了以重定url的方式来实现pathinfo的url风格。 以thinkphp为例,提供了名为 "s"的get参数,只需要将路径重定向到这个参数上即可,比如nginx下: ?12345location / {      if(!-e $req

2015-07-16 11:54:02 377

原创 kkpager仿淘宝js分页控件

官方github:https://github.com/pgkk/kkpager

2015-07-12 09:40:26 379

转载 简单的php-mvc设计

PHP的框架众多,对于哪个框架最好,哪个框架最烂,是否应该用框架,对于这些争论在论坛里面都有人争论,这里不做评价, 个人觉得根据自己需求,选中最佳最适合自己MVC框架,并在开发中能够体现出敏捷开发的效果就OK了,作为一个PHPer要提高自己的对PHP和MVC的框架的认识,所以自己写一个MVC框架是很有必要的,即使不是很完善,但是自己动手写一个轻量简洁的PHP MVC框架起码对MVC的思

2015-07-11 11:20:19 248

原创 php目录和文件路径基础

$_SERVER['DOCUMENT_ROOT']   =》 网站根目录路径$_SERVER['REQUEST_URI']  =》 当前url__FILE__  =》  当前文件的绝对路径

2015-07-09 11:58:40 396

转载 stripslashes和addslashes的区别

我们在向mysql写入数据时,比如:mysql_query(”update table set `title`=’kuhanzhu’s blog’”);   那就会出错。同asp时一样,数据库都会对单引号过敏。而addslashes在这个时候就最长面子了,跟asp的replace(”‘”,”””,”kuhanzhu’s blog”)功能一样。PHP为了安全性,所以引入了个m

2015-07-09 11:42:33 280

转载 ini_set的用法介绍

PHP ini_set用来设置php.ini的值,在函数执行的时候生效,对于虚拟空间来说,很方便,下面为大家介绍下此方法的使用PHP ini_set用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置,对于虚拟空间来说,很方便。函数格式:string ini_set(string $varname, string $new

2015-07-09 10:23:37 586

转载 DIRECTORY_SEPARATOR -- 转自百度百科

在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符,在linux上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,,而我们又使用了(\)作为文件分隔符,调试机器上指定的上传文件保存目录是:define('ROOT',dirname(__FILE__)."\upload"),在本地调试都很正常,但是上传到linux服务器的时候会发现会出错。

2015-07-09 10:06:59 289

空空如也

空空如也

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

TA关注的人

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