随笔分类 -  系统构架

B/S系统技术上的问题,主要是关于系统优化、解决高负载、高并发之类的问题,还有就是关于框架使用,系统重构方面的一些知识
摘要:前段时间公司产品进行了架构的进化,进化到了多租户架构。当我第一次听到多租户时,我也挺纳闷,不理解。但当我逐渐的翻阅资料,以及研发功能时。不断的加深了对多租户的理解。尽管我现在也只是浅浅的懂一点而已。 OK,Let's get this straight(让我们搞懂它),接下来让我们问自己几个问题: 阅读全文
posted @ 2019-09-05 11:04 系统攻城狮 阅读(11657) 评论(0) 推荐(3)
摘要:搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。 Elasticsearch是一个建立在全文搜索引擎 Apache 阅读全文
posted @ 2019-03-21 13:58 系统攻城狮 阅读(392) 评论(0) 推荐(0)
摘要:前言:这本书是之前公司一位构架师推荐的书,现在有空拿出来拜读下 第一章:阿里巴巴集团中台战略引发的思考 1.共享业务事业部,被淘宝和天猫 “挤兑” 2.业务下沉,成立业务中台,服务前台业务单元 3.“烟囱式”系统构建模式的弊病 第二章:构建业务中台的基础--共享服务体系 1.SOA架构的核心价值:服 阅读全文
posted @ 2018-11-21 11:49 系统攻城狮 阅读(500) 评论(0) 推荐(0)
摘要:基于redis的分布式锁 1 介绍 这篇博文讲介绍如何一步步构建一个基于Redis的分布式锁。会从最原始的版本开始,然后根据问题进行调整,最后完成一个较为合理的分布式锁。 本篇文章会将分布式锁的实现分为两部分,一个是单机环境,另一个是集群环境下的Redis锁实现。在介绍分布式锁的实现之前,先来了解下 阅读全文
posted @ 2018-11-16 14:23 系统攻城狮 阅读(264) 评论(0) 推荐(0)
摘要:前因:因为本系统中,有大数据高并发的场景。在向下游系统发送请求的时候,需要限流。否则会造成下游系统的堵塞。 实现方案1: Thread.sleep(ms). 优点:简单粗暴,一行代码搞定 缺点:有点low,万一线程被抢了,无法唤醒怎么办 实现方案2: Guava的RateLimiter类 优点:简单 阅读全文
posted @ 2018-11-15 15:36 系统攻城狮 阅读(1631) 评论(0) 推荐(0)
摘要:作为服务注册中心,Eureka比Zookeeper好在哪里 著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。 4 阅读全文
posted @ 2018-08-27 09:17 系统攻城狮 阅读(274) 评论(0) 推荐(0)
摘要:6个分离: 前台页面内容与样式布局分离 前台页面展现与后台业务逻辑分离 后台业务逻辑与整体业务控制分离 后台业务逻辑与数据持久化分离 后台数据持久化与实体对象分离 数据逻辑与业务逻辑分离 目标: 平台整体实现服务架构和领域模型设计 能够做到快速迭代、持续集成。 阅读全文
posted @ 2018-07-18 14:46 系统攻城狮 阅读(487) 评论(0) 推荐(0)
摘要:今天在用spring cloud的时候发现,配置的pom仓库一直无效(官网要求2.0版本直接从指定仓库里下)。于是上网搜索,发现(http://18810098265.iteye.com/blog/2369716)如果maven镜像里<mirrorOf>*</mirrorOf> 设为通配符,则会过滤 阅读全文
posted @ 2018-05-10 18:34 系统攻城狮 阅读(1957) 评论(0) 推荐(0)
摘要:一、基础知识 1.使用微服务比单应用模式,需要增加的挑战: 1)运维的变复杂,需要自动化工具来支持 2)接口的管理,服务接口化、接口服务化,接口的管理和维护工作很重要 3)分布式带来的复杂性:网络延迟、分布式事务、异步消息等 2.微服务架构的九大特性: 1)服务组件化:解耦、可替换 2)按业务组织团 阅读全文
posted @ 2018-05-07 17:50 系统攻城狮 阅读(301) 评论(0) 推荐(0)
摘要:待做的: 学习框架:nameko、double、spring cloud、书 微服务的定义: 一些协同工作的小而自治的服务 微服务的核心思想: 1.自治: 1)每个微服务(APP)可以独立部署到PAAS(platform as a service)上 2)作为服务方,需要避免方暴露过多给消费而产生耦 阅读全文
posted @ 2018-03-21 15:19 系统攻城狮 阅读(354) 评论(0) 推荐(0)
摘要:一、CSI (Client Side Includes) 含义:通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。 原理:整个页面依然可以静态化为html页面,不过在需要动态的地方则通过iframe,javascript或ajax来动态加载! 例子: 优点:相... 阅读全文
posted @ 2015-04-13 15:14 系统攻城狮 阅读(1994) 评论(0) 推荐(0)
摘要:在分布式系统中,冗余数据是保证可靠性的手段,因此冗余数据的一致性维护就非常重要。一般而言,一个写操作必须要对所有的冗余数据都更新完成了,才能称为成功结束。比如一份数据在5台设备上有冗余,因为不知道读数据会落在哪一台设备上,那么一次写操作,必须5台设备都更新完成,写操作才能返回。对于写操作比较频繁... 阅读全文
posted @ 2015-04-07 18:17 系统攻城狮 阅读(1309) 评论(0) 推荐(0)
摘要:一 概述1.大型网站构架技术的核心价值是随着网站所需灵活应对2.驱动大型网站技术发展的主要力量是网站的业务发展(同理,驱动个人技术提升的主要力量在于工作中接触此类工作的经验的积累)3.解决大型网站的问题,不能认死理,没有固定的解决方案,不能为了技术而技术,有时甚至改变下业务方的应用场景,也能解决问题... 阅读全文
posted @ 2015-03-12 17:25 系统攻城狮 阅读(263) 评论(0) 推荐(0)
摘要:做过网站的朋友都知道,选择一台合适、稳定的服务器,是建立一个好网站的重要前提。在选择服务器的时候,一般IDC运营商都会提出几种建议:购买VPS(虚拟专用服务器)、购买服务器后托管到IDC机房、直接跟IDC运营商租用服务器或者选择购买云服务器。 然而,对于这么多选择,很多客户往往对服务器托管、服务器... 阅读全文
posted @ 2015-03-09 15:35 系统攻城狮 阅读(347) 评论(0) 推荐(0)
摘要:前言:前段时间刚泛读了一遍《大型网站系统与Java中间件实践》一书,感觉这书无论广度和深度都非常出色,现在重新精读一遍,并整理一遍读书笔记,以此来更好的学习里面的内容。关于分布式系统 分布式系统的定义分布在网络计算机上组件之间仅仅通过消息传递来通信并协调行动 使用分布式分布式系统的原因升级单机处... 阅读全文
posted @ 2015-01-29 15:35 系统攻城狮 阅读(1137) 评论(0) 推荐(0)
摘要:autoconfig这种机制在软件开发和发布的过程中是非常方便也是非常必要的一种动态替换配置信息的一种手段,一种很贴切的比喻:这个就像在windows下面安装一个软件时,我们按照安装向导给我们弹出提示填写信息一样(这些信息就是一些定制化的信息)。Maven的强大插件机制,可以和autoconfig机... 阅读全文
posted @ 2015-01-28 18:01 系统攻城狮 阅读(2202) 评论(0) 推荐(0)
摘要:最近在做一个投票系统,关于缓存的使用上稍微思考了下,总结了以下几点:1.缓存的数据,一般为数据库查询出来的数据。要么就是大数据,要么就是访问频率很高的数据。2.缓存只是一个提高效率的手段,但不保险,编写代码的时候,要考虑万一缓存不命中的情况,而不知只单纯的从数据库中提取数据。一般的思路是,查询缓存数... 阅读全文
posted @ 2014-05-23 17:08 系统攻城狮 阅读(304) 评论(0) 推荐(1)
摘要:服务器&域名:1.静态资源(css\js\图片等)放在独立服务器和独立域名(浏览器并发限制)下。(详见《浏览器在同域名下有并发加载的限制》)2.不同功能独立放在不同的服务器上(分担服务器压力),如转码、webapp、邮件、数据库。3.通过监控技术了解系统的瓶颈在哪。WEB页面:1.合并和压缩Java... 阅读全文
posted @ 2013-11-15 14:26 系统攻城狮 阅读(458) 评论(0) 推荐(0)
摘要:浏览器在加载页面中用到的CSS、JS(JavaScript)、图片等样式、脚本和资源文件时,在同一个域名下并发加载的资源数量是有限的,例如IE 6和IE 7是两个,IE 8是6个,chrome各版本不大一样,一般是4~6个。一般大型网站的首页资源文件数量是很多的,那么如此小的并发连接数自然会加载很久。所以前端开发人员往往会将上述这些资源文件分布在多个域名下,变相地绕过浏览器的这个限制。当然除了这个限制的原因,将静态资源文件(图片、CSS、JS)独立存放在特定的服务器上也便于管理和提高效率。因此解决B/S系统高并发的优化方法之一:将资源文件分布在不同的域名下。 阅读全文
posted @ 2013-11-13 19:57 系统攻城狮 阅读(1671) 评论(1) 推荐(0)