自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 系统架构设计与优化的几个关键点

非功能性需求识别:关注性能指标(如响应时间、并发处理能力、数据吞吐量等)、可用性要求(如SLA、故障恢复时间)、安全性需求(如数据加密、访问控制、安全审计)、可维护性与可扩展性需求等。技术总监在系统架构设计与优化的思考过程中,需要兼顾业务需求、技术可行性、团队能力、成本效益等多个因素,做出科学、合理、前瞻性的决策,为系统的长期稳健运行打下坚实基础。技术栈选择:根据业务需求、团队技术栈熟悉度、社区活跃度、生态系统完善程度等因素,合理选择编程语言、框架、数据库、中间件等基础技术组件。

2024-04-14 15:36:50 412 2

原创 技术总监--工作技能

*案例:**面临行业数字化转型浪潮,技术总监带领团队研究新兴技术趋势,如云计算、大数据、人工智能等,并结合公司业务需求,制定出为期三年的技术发展战略。技术总监作为企业技术部门的领导者,其工作技能不仅涵盖了深厚的编程基础和系统架构能力,还包括了战略规划、团队管理、项目协调、决策制定等多方面的综合能力。为提升团队协作效率,推行敏捷开发方法论,指导团队使用Scrum或Kanban框架进行项目管理,并定期进行团队 retrospectives,及时调整工作流程和沟通机制。

2024-04-14 15:32:41 311

原创 ubuntu中使用docker搭建redis集群

docker的安装,redis镜像拉取创建外部桥接网络docker network create -d macvlan --subnet=192.168.148.0/24 --gateway=192.168.148.1 -o parent=ens33 mycluster配置docker-compose.yml帮助快速启动redis镜像version: "3"services: redis7001: image: redis:latest # 指定redis镜像,可以是na

2021-12-03 08:02:56 1226

转载 以电商网站为例,谈大型分布式架构设计与优化

本文大纲:目录一、使用电商案例的原因二、电商网站需求三、网站初级架构四、系统容量预估五、网站架构分析六.网站架构优化本文主题为电商网站架构案例,将介绍如何从电商网站的需求,到单机架构,逐步演变为常用的、可供参考的分布式架构原型。除具备功能需求外,还具备一定的高性能、高可用、可伸缩、可扩展等非功能质量需求(架构目标)。根据实际需要,进行改造、扩展、支持千万PV,是...

2019-05-24 15:31:45 843

转载 PHP消息队列实现及应用:队列处理订单系统和配送系统

解耦案列:队列处理 订单系统和配送系统我们在前面了解过消息队列的使用场景:http://blog.csdn.net/github_26672553/article/details/78194336这里,我们要来处理其中一个场景:系统的解耦。在电商项目中,当客户提交了一个订单之后,客户在个人中心可以看到订单处于配送中。这个时候就要参与进来一个系统,叫做『配送系统』。如果我们在做架构...

2019-05-23 09:32:50 1677

转载 浅析B2C电商产品中的“库存”概念

电商产品最复杂的模块莫过于“后台模块”,而后台模块中较为复杂的又莫过于“库存管理”,而一般来讲B2C电商产品中的库存包括七大部分,分别是:可销售库存、订单占用库存、不可销售库存、锁定库存、调配占用库存、调配中库存、虚库存。而这几个的关系是这样的:总库存=可销售库存+订单占用库存+不可销售库存+锁定库存+调配占用库存-调配中库存-虚库存关于这个关系,下边会详细说。可销售库存可销售...

2019-05-23 09:31:30 816

转载 redis、kafka、rabittMQ对比 (转)

本文不对三者之间的性能进行对比,只是从三者的特性上区分他们,并指出三者的不用应用场景。redis 消息推送(基于分布式 pub/sub)多用于实时性较高的消息推送,并不保证可靠。其他的mq和kafka保证可靠但有一些延迟(非实时系统没有保证延迟)。redis-pub/sub断电就清空,而使用redis-list作为消息推送虽然有持久化,但是又太弱智,也并非完全可靠不会丢。另外一点,r...

2019-05-23 02:30:51 4223

转载 浅谈秒杀系统架构设计

秒杀是电子商务网站常见的一种营销手段。原则不要整个系统宕机。 即使系统故障,也不要将错误数据展示出来。 尽量保持公平公正。实现效果秒杀开始前,抢购按钮为活动未开始。 秒杀开始时,抢购按钮可以点击下单。 秒杀结束后,按钮按钮变成秒杀已结束。技术攻关短时间内的大访问量对现有网站业务造成的冲击。 秒杀是一个网站营销的一个附加活动,时间短,并发量大。 如果和网...

2019-05-23 02:16:21 117

转载 Redis常见7种使用场景(PHP实战)

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。本篇文章,主要介绍利用PHP使用Redis,主要的应用场景。String 简单字符串缓存实战$redis->connect('127.0.0.1', 6379);$strCacheKey = 'Test_bihu';//SET 应...

2019-05-23 01:33:07 1337

转载 redis学习(八)——redis应用场景

毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。一、Redis常用数据类型Redis最为常用的数据类型主要有以下五种:String Hash List Set Sorted set在...

2019-04-26 11:35:24 207

转载 redis学习(七)——五大数据类型总结:字符串、散列、列表、集合和有序集合

目录字符串类型(String) 散列类型(Hash) 列表类型(List) 集合类型(Set) 有序集合类型(SortedSet) 其它命令一、字符串类型(String)1.介绍:  字符串类型是 Redis 中最基本的数据类型,可以存储二进制数据、图片和 Json 的对象。  字符串类型也是其他 4 种数据库类型的基础,其它数据类型可以说是从字符串类型中进行组织的,如...

2019-04-26 11:29:57 163

转载 redis学习(六)——Sorted Set数据类型

一、概述:Sorted Set(有序集合)和Set类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted Set中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted Set中的成员必须是唯一的,但是分数(score)却是可以重复的。 ...

2019-04-26 10:02:21 325

转载 redis学习(五)——Set数据类型

一、概述 在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是,这些操作的时间复杂度为O(1),即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。和List类型不同的是,Set集合中不允许出现重复的元素,这一点和C++标准库中的set容器...

2019-04-26 10:01:46 305

转载 redis学习(四)——Hash数据类型

一、概述 我们可以将Redis中的Hash类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储4294967295个键值对。二、相关命令1、赋值命令命令原型:HSETkey...

2019-04-26 10:01:01 129

转载 redis学习(三)——List数据类型

一、概述在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是4294967295。 从元素插入和删除的效率...

2019-04-26 10:00:33 135

转载 redis学习(二)——String数据类型

一、概述 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。二、相关命令1、赋值命令命令原型:SETkey value时间复杂度:O(1)命令描述:设定该Key持有指定的字符串Val...

2019-04-26 09:59:59 137

转载 redis学习(一)——redis介绍及安装

一、redis简介 redis是一个高性能的key-value非关系数据库,它可以存键(key)与5种不同类型的值(value)之间的映射(mapping),支持存储的value类型包括:String(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(散列表)。这些收据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作...

2019-04-26 09:59:24 175

转载 Redis实战经验及使用场景

随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽。这里我们将为大家分享社交巨头新浪微博、传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们看新浪微博@启盼cobain的Redis实战经验分享:新浪微博:史上最大的Redis集群Tape is Dead,Disk is Tape,Flash is Disk,RAM Lo...

2019-04-26 09:58:13 278

转载 Redis 的 5 个常见应用场景

前言Redis 是一个强大的内存型存储,具有丰富的数据结构,使其可以应用于很多方面,包括作为数据库、缓存、消息队列等等。如果你的印象中Redis只是一个 key-value 存储,那就错过了Redis很多强大的功能,下面就是实际应用场景中5个最普遍的案例。1. 全页面缓存如果你使用的是服务器端内容渲染,你又不想为每个请求重新渲染每个页面,就可以使用 Redis 把常被请求的内容缓存起来...

2019-04-26 09:57:18 284

原创 IOT系统上位机从OPC 服务器采集,时间戳的问题哪些现象?

多源时间同步困难:在涉及多个OPC服务器或设备的时间同步场景中,确保所有设备时间一致可能较为复杂,特别是跨地域、跨网络环境的部署。- 数据分批到达:由于网络延迟或数据打包传输,不同数据点的时间戳可能不完全同步,导致在上位机上看到的时间序列不连续。- 采样周期与时间戳分辨率不匹配:如果设备采样周期与时间戳分辨率不一致,可能会导致时间戳值重复或跳过某些实际采样点。- 低精度时钟:部分低成本设备可能使用精度较低的时钟源,导致时间戳精度不足,影响基于时间的精细分析。

2024-04-14 18:31:01 588

原创 物联网(IoT)规则引擎中,处理计算条件中长时间未发生变化的参数

设计规则时,允许定义针对不同数据更新频率的条件。例如,可以设定规则在某个参数长时间未更新时,使用最近一次的有效值进行计算,或者触发特定的处理逻辑(如报警、默认值填充等)。规则引擎应支持这种基于数据新鲜度的条件判断和逻辑分支。

2024-04-14 17:31:39 201

原创 IOT系统中订阅模式采集OPC,不同批次数据的处理策略

在使用IoT规则引擎处理来自OPC(OLE for Process Control)采集的数据时,尤其是在采用订阅模式下,确实可能会遇到不同批次的条件参数。这是因为订阅模式下,数据通常以异步、实时的方式推送,不同参数的更新时间可能并不完全同步。

2024-04-14 17:28:43 266

转载 Docker下使用Redis6.x.x 搭建RedisCluster集群方案

RedisCluster集群方案是Redis官方推荐的一种集群方案,他没有中心节点。客户端与redis节点直连,不需要中间代理层,RedisCluster集群方案可以将数据分片存储。为避免其中一个节点宕机丢失分片数据,我们需要设置冗余节点。 架构设计:使用3个节点作为主节点,3个节点作为从节点(冗余节点) RedisCluster 集群方案 2.1 拉取redis 镜像docker pull redis3 创建私有网络3.1 创建私有网络创建docker容.

2021-12-03 18:50:21 481

原创 windows wsl2环境下修改docker的镜像

1.查询docker镜像wsl -l -v --all2.导出镜像名字到d盘的docker目录下wsl --export Ubuntu-18.04 d:\docker\Ubuntu-18.04.tar3.注销镜像wsl --unregisterUbuntu-18.044.导入之前保存的镜像wsl --import docker-desktop d:\docker\Ubuntu-18.04 d:\docker\Ubuntu-18.04.tar --version.

2021-12-03 02:05:18 580

转载 ThinkPHP主从读写分离+MySQL底层配置半自动复制同步

多站点为了保证服务器的效率,数据库读写分离是有必要的。百度了很多,全都是说不到重点COPY来COPY去的。不啰嗦,上代码。MySQL 5.7+版本:TP 配置主从数据库return [ //数据库连接配置 'DB_DEPLOY_TYPE' => 1, //是否启用分布式 'DB_RW_SEPARATE' => tru...

2019-06-14 16:18:47 280

转载 电商平台-redis缓存在商品中的设计与架构

说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构。1. 各种计数,商品维度计数和用户维度计数  说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc),Redis的命令都是原子性的,你可以轻松地利用INCR,DECR等命令来计数。商品维度计数(喜欢数,评论数,鉴定数,浏览数,etc)   采用Redis 的类型:Hash. 如果...

2019-05-23 18:39:29 2324

转载 开发后台项目的套路是什么?

需求评估产品经理、开发工程师、测试工程师,组织需求评审会议,讲解本次的开发功能。开发需分析: 是否涉及到其他开发部门? 是否需要创建数据库/数据表? 本次需要做多少页面? 有多少功能点,哪些是功能难点? 根据以上,给出开发工期(X/人/天)。跨部门沟通沟通确定后,沟通结果以邮件的形式确认抄送相关Leader。创建/更改 数据库...

2019-05-23 10:29:58 432

转载 MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解

安装环境操作系统 :CentOS 6.5 数据库版本:MySQL 5.6.27主机A:192.168.1.1 (Master)主机B:192.168.1.2 (Slave)这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的。本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望大家不要采坑。注:这里有一篇CentOS安装MySQL的文章,在这里...

2019-05-23 09:34:03 164

原创 微信支付小结

一.公众平台设置网页授权域名方案一:在做项目集成微信登录以及微信支付的时候,都需要进行用户授权。这个授权的流程可以简单描述为:1. 用户从我们的应用触发需要授权的操作,比如点击微信登录;2. 应用收到这种用户请求后,将用户重定向到微信提供的一个授权页面:3. 用户通过微信扫码(PC端授权,上边左图)或者点击确认按钮(移动端授权,上边右图)告...

2019-05-23 09:31:05 526

转载 网站架构的伸缩性设计

网站开发初期,我们习惯性把所有代码都写到一个项目中。前台、后台、缓存、数据库、静态资源... 等等。网站系统物理分离慢慢的系统会原来越大,很显然需要面对大量用户的高并发访问和存储海量数据。很多用户的请求,不可能在一台服务器上完成。很多缓存数据,数据库数据,也不可能在一台服务器上完成。这是,网站的伸缩性架构就变得尤为重要。如下图。原理我们通过多台...

2019-05-23 02:22:46 137

转载 系统的讲解 - PHP 接口签名验证

概览工作中,我们时刻都会和接口打交道,有的是调取他人的接口,有的是为他人提供接口,在这过程中肯定都离不开签名验证。在设计签名验证的时候,一定要满足以下几点:可变性:每次的签名必须是不一样的。 时效性:每次请求的时效性,过期作废。 唯一性:每次的签名是唯一的。 完整性:能够对传入数据进行验证,防止篡改。下面主要分享一些工作中常用的加解密的方法。常用验证举例:/api/lo...

2019-05-23 02:04:37 453

转载 系统的讲解 - PHP WEB 安全防御

常见漏洞看到上图的漏洞是不是特别熟悉,如果不进行及时防御,就会产生蝴蝶效应。往下看,可能会找到你要的答案。SQL注入攻击定义SQL注入攻击是通过WEB表单提交,在URL参数提交或Cookie参数提交,将怀有恶意的“字符串”,提交给后台数据库,欺骗服务器执行恶意的SQL语句。案例//以用户登录为例,当验证用户名和密码是否正确时$sql = "SELECT * FR...

2019-05-23 01:50:45 186

转载 系统的讲解 - SSO单点登录

概念SSO 英文全称 Single Sign On,单点登录。在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。比如:淘宝网(www.taobao.com),天猫网(www.tmall.com),聚划算(ju.taobao.com),飞猪网(www.fliggy.com)等,这些都是阿里巴巴集团的网站。在这些网站中,我们在其中一个网站登录了,再访问其他的网站时,就...

2019-05-23 01:40:57 150

转载 为什么要在服务层设计读写分离?

作者:陈叶皓(携程邮轮研发部软件架构师)我的架构师同事问我:“为什么你总说要在服务层实现读写分离,我们已经在数据库实现了读写分离,是不是已经够用”。以下是我的解释,在做网站性能优化的时候,我常常忘记还有数据库读写分离这件事,因为数据库读写分离,对性能带来的提高太有限了,实际上,就是一倍(一台服务器变成两台服务器)。当你的网站业务发展,如果从无到有地使用数据库读写分离,提高了一倍的服务能力,...

2019-05-22 23:56:44 348

转载 你想建设一个能承受500万PV/每天的网站吗?服务器每秒要处理多少个请求才能应对?

你想建设一个能承受500万PV/每天的网站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?PV是什么:PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。计算模型:每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60秒*40%)) / 服务器数量 。其中关键的参数是80%、40%。表示一...

2019-04-25 21:03:00 809 1

转载 CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

一、系统环境实验拓扑实验环境:Vmware 9.01 + Windows 8 x64 企业版+8G内存虚拟机步骤:1、安装一台CentOS 6.3 x64主机,内存为1GB,网络为NAT模式,注意检查Vmware中EDIT菜单下Virtual Network Editor中VMnet82、加电,安装系统。基础知识了,不再多说,注意:选择英文而不要选择中...

2018-11-02 13:45:19 1829

转载 【技术干货】阿里云构建千万级别架构演变之路

本文作者:乔锐杰,现担任上海驻云信息科技有限公司运维总监/架构师。曾任职过黑客讲师、java软件工程师/网站架构师、高级运维、阿里云架构师等职位。维护过上千台服务器,主导过众安保险、新华社等千万级上云架构。在云端运维、分布式集群架构等方面有着丰富的经验。前言    一个好的架构是靠演变而来,而不是单纯的靠设计。刚开始做架构设计,我们不可能全方位的考虑到架构的高性能、高扩展性、高安全等各...

2018-10-24 17:11:38 1352

转载 Web集群与负载均衡服务实现

集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。       负载均衡(Load balance cluster,LBC): 它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果一个应用使用的人多了,那么用户请求的相应时间就会增大,机器的性能也会受到影...

2018-10-23 16:25:04 339

转载 构架稳定与可扩展的优惠券系统

每次打完滴滴, 我们都可以分享领券页面到朋友圈, 让大家一起来领券. 而领完券后, 一大堆5折券到账的感觉一定很爽(可惜现在的折扣越来越少了). 想必大家都对滴滴的优惠券影响深刻. 滴滴的用户规模如此之大, 送券力度如此之高, 如果由我们来做,该如何构架这样一个稳定且有扩展性的系统呢?可扩展的定义我们这里主要考虑这两个方面的扩展: 业务扩展 变更或新增业务逻辑时, 尽量对已有的核心...

2018-10-22 18:18:23 741

转载 浅谈12306核心模型设计思路和架构设计

   浅谈12306核心模型设计思路和架构设计出处:观察者网站+cnblogs网址:http://m.guancha.cn/Science + http://www.cnblogs.com/netfocus 1月11日起,12306网站开始销售除夕当日火车票。每到此时,铁路系统唯一的官方购票网站12306就会成为众矢之的。知乎网站曾有问答,辨析如果将12306 外包给阿里巴...

2018-10-22 16:12:20 2891

空空如也

空空如也

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

TA关注的人

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