![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统架构
刘春强
这个作者很懒,什么都没留下…
展开
-
1对多业务,数据库水平切分架构一次搞定
本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践:如何来实施水平切分,水平切分后常见的问题典型问题的优化思路及实践 一、什么是1对多关系所谓的“1对1”,“1对多”,“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的映射关系。转载 2017-07-10 22:23:36 · 224 阅读 · 0 评论 -
在Nodejs中使用JSON WEB Tokens
诸如Ember,Angular,Backbone之类的前端框架类库正随着更加精细的Web应用而日益壮大。正因如此,服务器端的组建也正正在从传统的任务中解脱,转而变的更像API。API使得传统的前端和后端的概念解耦。开发者可以脱离前端,独立的开发后端,在测试上获得更大的便利。这种途径也使得一个移动应用和网页应用可以使用相同的后端。转载 2017-07-09 18:36:50 · 382 阅读 · 0 评论 -
【JWT】JWT+HA256加密 Token验证
最近了解下基于 Token 的身份验证,跟大伙分享下。很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,也更安全点,非常适合用在 Web 应用或者移动应用上。Token 的中文有人翻译成 “令牌”,我觉得挺好,意思就是,你拿着这个令牌,才能过一些关卡。原创 2017-07-09 16:59:08 · 3534 阅读 · 1 评论 -
微服务架构扩展FreeStyle
随着越来越多的互联网技术团队开始采用微服务实施系统架构,伴随着业务的扩大,系统扩容的问题就会摆上议程,那么微服务架构该如何扩容呢?今天本文就尝试将从上到下扩容方案梳理一下,供大家做为一个参考。 一个常见的微服务架构如下: 微服务基于Dubbo + Zookeeper的组合,缓存和数据库采用Redis + Mysql的经典组合。利转载 2017-07-17 22:30:43 · 456 阅读 · 0 评论 -
三大主流ETL工具选型
ETL(extract, transform and load) 产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维护工作中,更是往往让人伤透脑筋。之所以出现这种状况,恰恰与项目初期没有正确估计ETL工作、没有认真考虑其工具支撑有很大关系。转载 2017-07-17 22:09:54 · 11121 阅读 · 0 评论 -
前后端分离之JWT用户认证
在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了。于是我们的程序就不知道谁是谁,就要再验证一次。所以为了保证系统安全,我们就需要验证用户否处于登录状态。转载 2017-07-08 18:27:16 · 32130 阅读 · 6 评论 -
PHP HTTP客户端-Guzzle原理解析
在PHP后台开发过程中,经常会遇到模块间需要通过HTTP通信的情形。PHP语言本身只提供了socket操作的接口,并未提供HTTP相关操作的接口。许多现有的实现采用curl扩展充当HTTP Client与HTTP Server通信,但仍需自己封装curl的接口。有鉴于此,本文介绍一款流行的PHP HTTP Client客户端---Guzzle(https://github.com/guzzle/guzzle/)的用法,深入分析其底层实现原理。原创 2017-07-16 14:52:38 · 3027 阅读 · 0 评论 -
关于垂直切分Vertical Sharding的粒度
垂直切分的粒度指的是在做垂直切分时允许几级的关联表放在一个shard里.这个问题对应用程序和sharding实现有着很大的影响.转载 2017-07-14 21:41:52 · 182 阅读 · 0 评论 -
数据库sharding技术
数据库的扩展是一个永恒的话题。对于传统的关系数据库,采用的是纵向扩展(ScaleUp)的方式,即买更好的机器添加 更多的资源来取得更好的性能(如硬件升级、更快更多的CPU、更大的内存、更多更大的磁盘等)。而形式上采用的是并行数据库、分布式数据库的模式,具体细 节依赖水平分区或者垂直分区的技术。关系数据库通过ScaleUp方式已在传统的企业应用环境中统治了将近三十多年。转载 2017-07-14 21:25:47 · 566 阅读 · 0 评论 -
分库分表需要考虑的问题及方案
Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(server)上。当然,现实中更多是这两种情况混杂在一起,这时候需要根据实际情况做出选择,也可能会综合使用垂直与水平切分,从而将转载 2017-07-14 21:20:19 · 3641 阅读 · 0 评论 -
八幅漫画理解使用JSON Web Token设计单点登录系统
用户认证八步走所谓用户认证(Authentication),就是让用户登录,并且在接下来的一段时间内让用户访问网站时可以使用其账户,而不需要再次登录的机制。转载 2017-07-09 18:47:35 · 267 阅读 · 0 评论