柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!
全部博文(1669)
分类: 架构设计与优化
2015-01-26 10:59:33
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如有转载,请保留源作者博客信息。
如需交流,欢迎大家博客留言。
首先参考一下微软架构师分类:企业架构师EA(Enterprise Architect)、基础结构架构师IA(Infrastructure Architect)、特定技术架构TSA(Technology-Specific Architect)和解决方案架构师SA (Solution Architect)。微软的这个分类是按照架构师专注的领域不同而划分的。
|
1、基础平台架构师:该职位职责,更多的是架构一个通用的,平台性的,与语言相关性较少的框架系统。ex:图片服务系统、分布式缓存、分布式存储、统一监控系统等等,很容易发现这些基础系统都不受制于开发语言,也就是说,用java开发的系统,和用c语言开发的系统,抑或php系统,如果需要使用分布式缓存,只需要调用各自语言的分布式缓存接口即可。
2、软件开发架构师:该职位职责,更多的是在某个特定领域具有比较深入的技术沉淀,从而根据特定环境制定特定的优秀软件架构系统。ex:JAVA架构师、DotNet架构师、LAPM架构师。
|
架构师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的。总结架构师自我培养过程大致如下,仅供参考。
1、架构师胚胎()
学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、、uml、RUP、XML、socket通信()——学习搭建应用系统所必须的原材料。
2、架构师萌芽(高级)
学习、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(可以研究网络计算机、高性能并发处理等内容)
3、架构师幼苗(设计师)
应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(版本、java版本)、ejb设计模式、J2EE构架、UDDI、等。在此期间,最好能够了解在实际项目中的应用以及小组开发、管理。
4、的正式成型在于机遇、个人努力和天赋其实是一种职位,但一个在充分掌握软构架师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和归纳自己的构架模式、如何深入行业成为能够胜任分析、构架为一体的精英人才这可不是每个人都能够遇上的馅饼……
架构师应具能力:
一般来讲,系统架构师应该拥有以下几方面的能力:
1:具备 8 年以上行业工作经验;
2:具备 4 年以上 C/S 或 B/S 体系结构产品开发及架构和设计经验;
3:具备 3 年以上的编写工作经验;
4:具备丰富的大中型开发项目的、方案设计及技术队伍管理经验;
5:对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;
6:对 .Net/JAVA 技术及整个解决方案有深刻的理解及熟练的应用,并且精通WebService/J2EE 架构和设计模式,并在此基础上设计产品框架;
7:具有分析、设计、开发能力(OOA、OOD、OOP),精通 UML 和 ROSE,熟练使用 Rational Rose、PowerDesigner 等工具进行设计开发;
8:精通大型如 Oracle、Sql Server 等的开发;
9:对、网络和安全、应用系统架构等有全面的认识,熟悉,并有实践基础;
10:在应用系统开发和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;
11:良好的意识和协作精神,有较强的内外沟通能力。
架构师的隐形职责
1、为技术部门提供技术支持
2、在最需要的时刻去攻克最艰巨的技术壁垒
3、幕后
4、业务部门与技术部门间的粘合剂
5、业务发展的催化剂
|
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如有转载,请保留源作者博客信息。
如需交流,欢迎大家博客留言。
接下来简要分析下DNS又是如何达到负载均衡的:
在DNS中为多个域名地址配置同一个名字,因而查询这个域名地址的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。即给网站访问者随机分配不同IP。DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。
像taobao有开发自己的dns负载均衡器,来处理高QPS。对于一些中小型公司可以使用第三方服务,比如DNSPod等。
更多DNS负载均衡请参考DNSPod官网:
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如有转载,请保留源作者博客信息。
如需交流,欢迎大家博客留言。
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如有转载,请保留源作者博客信息。
如需交流,欢迎大家博客留言。
转发代理服务器
普通的转发代理服务器是客户端与原始服务器之间的一个中间服务器。为了从原始服务器获取内容,客户端发送请求到代理服务器,然后代理服务器从原始服务器中获取内容再返回给客户端。客户端必须专门地配置转发代理来访问其他站点,如在浏览器中配置代理服务器地址及端口号等。
转发代理服务器的一个典型应用就是为处于防火墙后的内部客户端提供访问外部Internet网,比如校园网用户通过代理访问国外网站,公司内网用户通过公司的统一代理访问外部Internet网站等。转发代理服务器也能够使用缓存来缓解原始服务器负载,提供响应速度。
反向代理服务器
而反向代理服务器则相反,在客户端来看它就像一个普通的Web服务器。客户端不要做任何特殊的配置。客户端发送普通的请求来获取反向代理所属空间的内容。反向代理决定将这些请求发往何处,然后就好像它本身就是原始服务器一样将请求内容返回。
反向代理服务器的一个典型应用就是为处于防火墙后的服务器提供外部Internet用户的访问。反向代理能够用于在多个后端服务器提供负载均衡,或者为较慢的后端服务器提供缓存。此外,反向代理还能够简单地将多个服务器映射到同一个URL空间。
两者区别
两者的相同点在于都是用户和服务器之间的中介,完成用户请求和结果的转发。主要的不同在于:
(1)转发代理的内部是客户端,而反向代理的内部是服务器。即内网的客户端通过转发代理服务器访问外部网络,而外部的用户通过反向代理访问内部的服务器。
(2)转发代理通常接受客户端发送的任何请求,而反向代理通常只接受到指定服务器的请求。如校园网内部用户可以通过转发代理访问国外的任何站点(如果不加限制的话),而只有特定的请求才发往反向代理,然后又反向代理发往内部服务器。
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如有转载,请保留源作者博客信息。
如需交流,欢迎大家博客留言。
假设windows机器不能访问外网,能访问内网。(windows7)
有一台linux服务器,能访问外网,且windows机器能够与该机器互相访问。(centos 6.5 mini版,ip:192.168.10.36)
|
#停止squid
最安全的停止squid的方法是使用squid -k shutdown命令: # squid -k shutdown # squid -k reconfigure acl deny_net src 192.168.20.6/32 http_access deny deny_net acl Working_times MTWHF 08:00-17:00 http_access allow Working_times http_access deny !Working_times # 禁止某个代理客户建立过多连接 acl MaxConnLimit maxconn 4 http_access deny MaxConnLimit |
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如有转载,请保留源作者博客信息。
如需交流,欢迎大家博客留言。
反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当 WEB 服
务器的内容缓存器。
反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。
目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。
Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如图 2:
搭建squid web缓存服务器
1、实验环境(由于机器有限,都在单机上面实验)
centos 6.5 X64 mini版
squid服务器: ip 192.168.10.20
web服务器:ip 192.1v8.10.21
所有机器配置为16G内存
2、配置web服务器(node21):
测试方便,关闭selinux、关闭iptables
一下都采用默认,不做配置即可。
# vim /etc/httpd/conf/httpd.conf
httpd监听端口:
DocumentRoot:网页存放的路径,文档的根目录
重启httpd
# service httpd rstart
页面访问httpd:
修改显示内容:
# vim /var/www/html/index.html
I' node21...
再次访问:
3、配置squid反向代理(node20):
# yum install squid
# vim /etc/squid/squid.conf
配置文件修改后使之生效:
squid -k parse
squid -k reconfigure
或
/etc/init.d/squid restart 或reload
|
附上重点配置截图:
配置生效:
squid -k reconfigure
|
访问192.168.10.20(被squid代理到node21上去了):
测试squid反向代理成功。
接下来测试真实场景下的squid代理openstack web:
已经存在的openstack访问地址为:
再用node20的squid做反向代理:
附上重要配置文件:
配置生效:
squid -k reconfigure
|
访问20(20的ip方向请求的内容为138内容)
查看:X-Cache-Lookup:参数HIT from node20:80(缓存命中)
查看缓存命中率:(squidclient 自行安装)
squidclient -p 80 mgr:info
查看squid缓存了哪些内容:
讲解完毕。
最后附上squid的一些参考文章:
squid配置-cache_peer和cache_peer_domain详