`
sinotsing
  • 浏览: 2916 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

单点登录(cas)、缓存技术与负载均衡

阅读更多
提纲
动态缓存技术
集群与负载均衡
网罗天下实现策略
关键技术
动态缓存

基于动态缓存的电子商务优化
针对电子商务网站的特点和性能要求,在Web服务器前端设置动态缓存服务器,作为Web服务器的前置机,实现动态内容的缓存,加快了响应用户访问的速度;通过一定的替换和更新策略保证用户访问到最新的内容,对提高Web服务器峰值负载下的运行能力,减少访问动态内容的延迟时间起到优化作用。
参考文献: http://www.docin.com/p-152105671.html
《基于动态缓存的电子商务平台优化研究》
集群与负载均衡
welcome to use these PowerPoint templates, New Content design, 10 years experience
集群 Cluster
概念:
一组独立的计算机系统构成 一个松耦合的多处理器系统,他们之间通过网络实现进程间的通信。应用程序之间可以通过网络共享内存信息消息传送。实现分布式计算。
集群与负载均衡
welcome to use these PowerPoint templates, New Content design, 10 years experience
负载均衡Load balance
概念:
网络的负载均衡是一种动态均衡技术。基于现有的网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效方法。提高了数据的处理能力、灵活性和可用性。
特点:
(1)高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。 (2)高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理。 (3)负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
网罗天下实施策略
总体网络架构图
Nginx代理RedisCluster Tomcat1Cluster Tomcat2Mysql MusterMysql SlaveFTP应用服务器集群MysqlDB 主从缓存服务器5Web 服务器1PC1以太网2数据库服务器1通信链路1智能手机1云1便携电脑1平板电脑1防火墙1FTP 服务器.191代理服务器.14符号计数说明单位说明图例Cluster Tomcat3Cluster Tomcat4
网罗天下实施策略 设计原理
Nginx:服务的代理与客户端请求与分发。SSL证书的配置。80及443端口的监听。
Redis:动态缓存服务器,Session共享。
Tomcat:Web应用服务器集群。
JbossCache:单点登录票据的共享。
关键技术
Nginx 安装
安装nginx,下载下面的插件安装,否则nginx无法识别tomcat中jvmRoute,从而无法达到session复制的效果。
tar xzf nginx-upstream-jvm-route-0.1.tar.gz
tar xzf nginx-1.0.5.tar.gz
Nginx 配置
1、 nginx.conf中http{}中配置upstream wlotx {
ip_hash;
server 192.168.1.218:8080;#Tomcat1
server 192.168.1.219:8080; #Tomcat2
}
关键技术
Nginx 配置
2、 Server 80端口选段:
server {
listen 80;
server_name buseniss.wlotx.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
index index.html index.htm index.jsp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 3;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_pass http://wlotx;
}
关键技术
Nginx 配置
3、 HTTPS 443端口 Server 选段:
server {
listen 443;
server_name cas.wlotx.com;
ssl on;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 3;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_pass http://wlotx;
}
}
关键技术
Redis安装及配置
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024
关键技术 Redis安装及配置
将上面内容写为redis.conf并保存到/usr/local/redis/etc/目录下。
然后在命令行执行: /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
即可在后台启动redis服务,这时通过 telnet 127.0.0.1 6379 可查看redis的服务状态。
关键技术
JBossCacheTicketRegistry+组播
由于单点登录系统的特殊性,不能简单使用session复制技术来实现多服务器间的登录信息共享。
JBossCacheTicketRegistry提供了针对单点登录系统集群的共享策略。
在cas项目工程里spring-configuration/ticketRegistry.xml文件里面的DefaultTicketRegistry换成JBossCacheTicketRegistry缓存 ;在class文件里添加jbossCache.xml文件添加jboss的缓存配置。
jbossCache.xml中依赖组播。
<attribute name="ClusterConfig">
<config>
<UDP mcast_addr="224.0.0.8" mcast_port="48866"
ip_ttl="32" ip_mcast="true"
bind_addr="192.168.1.219"
关键技术
Tomcat Cluster 安装
安装tomcat
tar zxf apache-tomcat-6.0.29.tar.gz
mv apache-tomcat-6.0.29/usr/local/tomcat
cp tomcat-replication.jar /usr/local/tomcat/lib
在另一台机器上安装tomcat_2,步骤同1
分别在tomcat服务器安装jdk
chmod 755 jdk-6u26-linux-i586-rpm.bin
./jdk-6u26-linux-i586-rpm.bin
cat >>/etc/profile <<EOF
export JAVA_HOME=/usr/java/jdk1.6.0_26
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
EOF;
source /etc/profile //使环境变量立即生效
关键技术
Tomcat Cluster 配置1
<Connector port="8443" className="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
cceptCount="100" scheme="https" secure="true"
SSLEnabled="true" clientAuth="false"
keystoreFile="wlotx2012" keystorePass="wlotx2012"
sslProtocol="TLS"
truststorefile="%JAVA_HOME%/jre/lib/security/cacerts" truststoretype="JKS" truststorepass="changeit"
/>
关键技术
Tomcat Cluster 配置2
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>
注:标红部分为Nginx和TomcatSSL请求间的证书转化。
关键技术
Tomcat Cluster 配置3
基于JBossCache的单点登录系统Tomcat配置:
<Host name="cas.wlotx.com" appBase="/data/www"
unpackWARs="true" autoDeploy="false" deployOnStartup="false">
<Context path="" docBase="/data/www/cas" reloadable="true" distributable="true">
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="cas_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
关键技术
Tomcat Cluster 配置4
基于Redis session 共享的应用系统配置:
<Host name="edu.wlotx.com" appBase="/data/www"
unpackWARs="true" autoDeploy="false" distributable="true">
<Context path="" docBase="/data/www/teachmysql" reloadable="true" distributable="true">
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className=“com.radiadesign.catalina.session.RedisSessionManager” host="192.168.1.218"
port="6379" database="0" maxInactiveInterval="600" />
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="edu_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
关键技术
Nginx+Tomcat+SSL
实际上,大规模的网站都有很多台Web服务器和应用服务器组成,用户的请求可能是经由 Varnish、HAProxy、Nginx之后才到应用服务器,中间有好几层。而中小规模的典型部署常见的是 Nginx+Tomcat 这种两层配置,而Tomcat 会多于一台,Nginx 作为静态文件处理和负载均衡。
如果Nginx作为前端代理的话,则Tomcat根本不需要自己处理 https,全是Nginx处理的。用户首先和Nginx建立连接,完成SSL握手,而后Nginx 作为代理以 http 协议将请求转给 tomcat 处理,Nginx再把 tomcat 的输出通过SSL 加密发回给用户,这中间是透明的,Tomcat只是在处理 http 请求而已。因此,这种情况下不需要配置 Tomcat 的SSL,只需要配置 Nginx 的SSL 和 Proxy。
分享到:
评论

相关推荐

    改造CAS单点登录部署文件

    CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single ...以上是改造CAS单点登录部署文件时可能涉及的关键步骤和技术点。在实际操作中,应根据具体业务需求和安全规范进行详细规划和实施。

    spring boot 集成kisso单点登入

    考虑SSO系统对性能的影响,如令牌存储策略、缓存机制、负载均衡等。Kisso的轻量化设计使得它在性能方面有较好的表现,但仍需根据实际需求进行优化。 通过以上步骤,你可以成功地在Spring Boot项目中集成Kisso实现...

    单点登录源代码.rar

    7. 性能优化:大规模SSO系统要考虑性能问题,如减少数据库查询,缓存用户信息,以及使用负载均衡和分布式缓存来处理高并发情况。 8. 测试与调试:SSO系统的测试包括功能测试、安全测试、性能测试等,确保在不同场景...

    单点登入--CAS3.0

    单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。在本文中,我们将深入探讨基于CAS(Central Authentication Service)3.0实现...

    cas4.1最新版

    CAS(Central Authentication Service)是基于Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,它提供了一种在多个应用系统间共享用户认证信息的方式。"cas4.1最新版"指的是CAS的4.1版本,这是一个...

    单点登录系统

    单点登录系统(Single Sign-On, SSO)是一种身份验证机制,允许用户在一次登录后,可以访问多个相互关联的应用系统而无需再次进行身份验证。SSO的核心目标是提高用户体验,减少频繁输入用户名和密码的繁琐,同时也有...

    x-uni-session:单点登录session服务端

    综上所述,"X-uni-session:单点登录session服务端"是一个基于Java构建的SSO解决方案,它利用Java的Web技术,如Servlet、Filter和session管理,以及可能的Token机制,实现用户在多个应用之间的无缝登录。同时,考虑到...

    cas验证方案

    - **性能优化**:考虑负载均衡和缓存策略,以应对大量并发请求。 总之,CAS验证方案为企业提供了一种高效、安全的身份验证框架,简化了用户登录流程,同时也为IT管理员提供了统一的用户管理和安全控制手段。正确...

    java统一认证中心单点登录系统源码,开箱即用

    部署时,可能要考虑高可用性和负载均衡,以保证服务的持续性和效率。 在理解和掌握这些知识点的基础上,开发者可以顺利地将这个"smart-sso"源码部署到生产环境中,或者根据业务需求进行定制化的开发和扩展。

    JAVA技术架构及开发规范文档.docx

    Shiro与CAS单点登录整合,便于扩展多个应用模块。此外,自定义了UsernamePasswordToken和Realm,实现基于验证码和数据库用户密码的登录验证。 Spring的注解控制器用于控制器层,支持返回Velocity视图、Ajax JSON和...

    高可用的电商购物网站,包括后台管理系统、前台系统、会员系统、订单系统、搜索系统、单点登陆系统等子模块

    在构建高可用的电商购物网站时,涉及到多个关键子模块,包括后台管理系统、前台系统、会员系统、订单系统、搜索系统以及单点登录系统。这些系统共同协作,为用户提供顺畅的购物体验。在这个过程中,技术选型至关重要...

    2019品优购.txt

    使用spring-jms 负载均衡:nginx 搜索:solr集群(solrCloud),配合zookeeper搭建, 使用spring-data-solor 缓存:redis集群,使用spring-data-redis 图片存储:fastDFS集群 网页静态化:freemarker 单点登录:cas ...

    JAVA技术架构及开发规范文档.pdf

    权限安全控制则由Apache Shiro框架负责,它支持基于角色和资源的权限校验,并能与CAS单点登录集成。Shiro的过滤器层提供了匿名访问、认证过滤和自定义登录验证等功能。 在后端,控制器层采用Spring的注解驱动,支持...

    我们公司用了6年的通用的权限管理系统设计方案.docx

    - **高可用性**:CAS作为关键组件,需要具备高可用性和负载均衡能力。 - **兼容性**:确保CAS能够与现有系统无缝集成。 - **日志审计**:记录用户活动的日志信息,便于审计追踪。 - **性能优化**:优化CAS服务器配置...

    技术架构规范标准.doc

    - 权限安全控制:利用Apache Shiro框架实现,Shiro提供角色和资源的权限验证,并可与CAS单点登录集成。 4. 控制层: - 使用Spring的注解式控制器,支持Velocity视图、Ajax JSON和Ajax文本返回。 - 数据验证:...

    JavaEE求职简历-姓名-JAVA开发工程师.docx

    10. **单点登录**:CAS单点登录系统提供用户认证服务,便于用户在多个系统间无缝切换。 11. **全 文检索**:Solr用于商品数据的全文检索,提升搜索体验。 12. **消息队列**:activeMQ处理订单下峰,避免系统瞬间...

    JavaEE求职简历-姓名-JAVA开发工程师.doc

    - 参与商品管理、商品类型管理、商品详情、CAS单点登录的开发及Redis缓存预热。 - 技术栈:SpringBoot+MyBatis+Dubbo+ZooKeeper,Maven构建,数据库为MySQL和Redis,前端技术为Thymeleaf+Ajax。 - 集成CAS单点...

    SSO实例安装和配置指南

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。这极大地提高了用户体验,减少了密码管理的复杂性,并增强了安全性。本指南将深入...

Global site tag (gtag.js) - Google Analytics