架构设计
文章平均质量分 85
木小草
http://www.muxiaocao.cn/me
展开
-
Linux下FastDFS图片服务器的搭建
在真正的大型Web后台系统中,上传图片的操作可以算是耗时操作,而且其中最大的问题就是,在一个分布式系统中,图片上传不可能上传到当前服务器,这样如果下次访问的是其他服务器,在其他服务器上是没有上传的图片的。解决这些问题,可以采用分布式文件系统FastDFS来搭建Web后端的图片服务器。一、FastDFS简介1.1 什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统。Fa原创 2016-05-23 23:08:17 · 10045 阅读 · 2 评论 -
分布式系统架构——使用Redis做MyBatis的二级缓存
使用Redis做MyBatis的二级缓存 通常为了减轻数据库的压力,我们会引入缓存。在Dao查询数据库之前,先去缓存中找是否有要找的数据,如果有则用缓存中的数据即可,就不用查询数据库了。如果没有才去数据库中查找。这样就能分担一下数据库的压力。另外,为了让缓存中的数据与数据库同步,我们应该在该数据发生变化的地方加入更新缓存的逻辑代码。这样无形之中增加了工作量,同时也是一种对原有代码的入侵。这对于原创 2016-07-29 16:23:15 · 15127 阅读 · 3 评论 -
Ubuntu下Nginx简单使用
Nginx是一个使用c语言开发的高性能的http服务器及反向代理服务器。 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。一、Ubuntu安装Nginx详细步骤 sudo apt-get upda原创 2016-05-23 10:56:22 · 8280 阅读 · 0 评论 -
系统架构设计——设计模式之模板模式
假如生活欺骗了你,请不要抱怨。他一定是在考验你,你要经得住考验。毕竟牛逼的人生不可能总是风平浪静。——写给自己。一、模板模式定义 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。——《设计模式:可复用面向对象设计软件的基础》二、应用场景 对于代码有洁癖的人,绝不会容许一段代码被许多个方法重复使用。那我们我们怎么才能在原创 2016-07-24 16:38:26 · 1840 阅读 · 0 评论 -
分布式系统架构——Mysql数据库实现主从同步
mysql实现两台机器的主从同步准备工作 将Master服务器上的备份数据库拷贝到Slave服务器上 注意: 使用Navicat拷贝的时候,需要在Slave上先创建数据库,然后再把数据和格式拷贝到此数据库上。Master配置修改/etc/my.cnf:server-id=1 #需要备份的数据库名,如果需要备份多个数据库,重复设置这个选项即可。 binlog-do-db=r原创 2016-07-06 18:12:50 · 2657 阅读 · 0 评论 -
分布式系统架构——dubbo与SSM整合问题
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。其中阿里的dubbo就是一款分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案。一、Dubbo简介1.1 背景与需求 随着互联网的发展,上网的人越来越多。加之移动互联的普及,更加快了互联网的脚步。随之而来的,便是对网站应用的强大挑原创 2016-06-02 22:08:35 · 14522 阅读 · 4 评论 -
Ubuntu15.10下Solr 6.0的搭建与IKAnalyzer中文分词结合使用
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 因此,搭建solr之前,首先需要安装jdk1.8和Web 应用服务器。这里我们使用tomcat 8.0。一、Solr单机版安装步骤准备工作:目前最新原创 2016-06-06 12:32:42 · 1953 阅读 · 0 评论 -
系统架构设计——设计模式之代理模式(二)CGLIB动态代理实现
像上一篇所说的代理模式其实是静态代理,在实际开发中其实应用不大,因为他需要事先知道被代理对象是谁,而且被代理对象和代理对象实现了公共的接口。实际情况往往并不能满足这些条件,我们往往在写代理模式的时候并不知道到时候被代理的对象是谁。解决办法就是——动态代理。以下我们将使用CGLIB实现动态代理。一、动态代理概述 程序在运行期而不是编译器,生成被代理对象的代理对象,并且被代理对象并不需要和代理对象原创 2016-05-16 18:38:16 · 12743 阅读 · 0 评论 -
系统架构设计——学习篇之类的设计(UML)
概述 “编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确久完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和服用,只有这样才可以真正得到提高。写出优雅的代码真的是一种很爽的事情。UML类图也不是一学就会的,需要有一个慢慢熟练的过程。所谓学无止境,其实这(类的设计)才是理解面向对象的开始。” ——大话设计模式 对于初学者来说,我们不仅仅是要学会面向对象的封装原创 2016-05-01 16:08:17 · 13194 阅读 · 4 评论 -
系统架构设计——设计模式之策略模式
面向对象的变成,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。——大话设计模式策略模式的定义 它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。应用场景在我们软件开发过程中,经常会遇到需求变动,具体的算法变动也是常有的事。就拿商场打折促销的方式来说,久经常的变动。五一打8折,十一打7折,原创 2016-05-03 10:00:22 · 1610 阅读 · 0 评论 -
系统架构设计——设计模式之装饰者模式
许多模式是长期经验的实证,可通过提供扩展的方法来保护代码免于被修改。接下来我将介绍一下一个完全遵循开放-关闭原则的设计模式——装饰者模式。它可以给爱用继承的人一个全新的设计眼界。——Head First 设计模式装饰者模式的定义 动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。应用场景 与之前的策略模式不同,装饰者模式是用来解决多方案的组合问题的。试想一下五原创 2016-05-05 11:48:20 · 683 阅读 · 0 评论 -
系统架构设计——设计模式之代理模式(一)
在纷繁复杂的程序设计世界里,我们总是需要尽可能的考虑到各种情况。而有这么一种机制,我们可以将我们指责中的一部分隔离开来,让一个所谓的代理来帮我们解决一部分和主体业务关系不大的业务,从而让我们能更专心的设计我们的主体业务。这就是代理模式的初衷,也是很多流行框架的应用。——个人理解。一、代理模式(Proxy)的定义 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不合适或者不能原创 2016-05-15 20:38:07 · 1948 阅读 · 1 评论 -
分布式系统架构——Redis缓存的安装和使用
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。一、Redis的单机版1.1 安装步骤安装gcc编译环境 sudo apt-get install gcc 把redis上传到服务器 可以使用SecureCRT上传 解压缩原创 2016-06-04 22:53:58 · 3408 阅读 · 1 评论