当前位置: 首页 > news >正文

大型的网站开发最传统的网站推广手段

大型的网站开发,最传统的网站推广手段,66郑州网站建设,wordpress固定导航栏对于分布式使用NginxTomcat实现负载均衡#xff0c;最常用的均衡算法有IP_Hash、轮训、根据权重、随机等。不管对于哪一种负载均衡算法#xff0c;由于Nginx对不同的请求分发到某一个Tomcat#xff0c;Tomcat在运行的时候分别是不同的容器里#xff0c;因此会出现session不…对于分布式使用NginxTomcat实现负载均衡最常用的均衡算法有IP_Hash、轮训、根据权重、随机等。不管对于哪一种负载均衡算法由于Nginx对不同的请求分发到某一个TomcatTomcat在运行的时候分别是不同的容器里因此会出现session不同步或者丢失的问题。实际上实现Session共享的方案很多其中一种常用的就是使用Tomcat、Jetty等服务器提供的Session共享功能将Session的内容统一存储在一个数据库(如MySQL)或缓存(如Redis)中。本文旨在解决分布式系统的session如何共享问题大致思路session放入redis。其他解决方案持久化、放cache等都可以但是自从有了redis这完全可以变的简简单单。本文大致分两步1.springboot中如何使用redis。2.redis如何解决session共享pom依赖org.springframework.bootspring-boot-starter-redisorg.springframework.dataspring-data-redis${spring-data-redis.version}redis.clientsjedis${jedis.version}org.springframework.sessionspring-session-data-redis添加redis配置类该配置类同样可以配置缓存失效时间等。package com.mos.quote.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.cache.CacheManager;import org.springframework.cache.annotation.CachingConfigurerSupport;import org.springframework.cache.annotation.EnableCaching;import org.springframework.cache.interceptor.KeyGenerator;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.cache.RedisCacheManager;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;/*** author Administrator*/ConfigurationEnableCachingpublic class RedisConfig extends CachingConfigurerSupport {Beanpublic KeyGenerator KeyGenerator(){return (target, method, params) - {StringBuilder sb new StringBuilder();sb.append(target.getClass().getName());sb.append(method.getName());for (Object obj : params) {sb.append(obj.toString());}return sb.toString();};}Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory factory) {StringRedisTemplate template new StringRedisTemplate(factory);Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);ObjectMapper om new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);template.setValueSerializer(jackson2JsonRedisSerializer);template.afterPropertiesSet();return template;}Beanpublic CacheManager cacheManager(RedisTemplate redisTemplate) {RedisCacheManager rcm new RedisCacheManager(redisTemplate);//设置缓存过期时间rcm.setDefaultExpiration(600000);return rcm;}}配置redis服务# Redis数据库索引(默认为0)spring.redis.database0# Redis服务器地址spring.redis.host192.168.1.118# Redis服务器连接端口spring.redis.port6381# Redis服务器连接密码(默认为空)spring.redis.password# 连接池最大连接数(使用负值表示没有限制)spring.redis.pool.max-active8# 连接池最大阻塞等待时间(使用负值表示没有限制)spring.redis.pool.max-wait-1# 连接池中的最大空闲连接spring.redis.pool.max-idle8# 连接池中的最小空闲连接spring.redis.pool.min-idle0# 连接超时时间(毫秒)spring.redis.timeout0单元测试1、set值(字符串)Testpublic void put(){stringRedisTemplate.opsForValue().set(test001,test001);Assert.assertEquals(test001, stringRedisTemplate.opsForValue().get(test001));}往redis放一个key为test001、value为test001的值然后查看rediskeytest0012、set值(object)Testpublic void testObj() throws Exception {SysUser usernew SysUser();user.setId(123456);user.setName(张三);ValueOperations operationsredisTemplate.opsForValue();operations.set(user1, user);operations.set(user2, user,5, TimeUnit.SECONDS);Thread.sleep(6000);Assert.assertFalse(redisTemplate.hasKey(user2));}往redis分别放key为user1和user2的对象user2设置5秒失效线程等待6秒再完成期望结果redis中有user1没有user2bingoObjTest解决session共享使用spring-session-data-redis实现session共享pom中引入该依赖(上文已添加)添加SessionConfig配置类。对没看错只需要这个就够了。最长有效时间根据自己情况随意配置即可。package com.mos.quote.config;import org.springframework.context.annotation.Configuration;import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;/*** author Administrator*/ConfigurationEnableRedisHttpSession(maxInactiveIntervalInSeconds 3000)public class SessionConfig {}测试写一个简单Controller如下RequestMapping(testSessionTimeOut)public String testSessionTimeOut(String id,HttpSession session,Model model){Area area areaService.getById(id);System.out.println(sessionId--------session.getId());model.addAttribute(area,JSON.toJSONString(area));session.setAttribute(area,JSON.toJSONString(area));return demo/test1;}这里可以看到sessionIdsessionId看redis中可以看到失效时间sessionId等sessionId共享session另外找一个机器照着这个配置再来一遍自动启用session共享因为sessionId都存在了同一个redis中。奏是这么简单。挽起袖子开始干吧。以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。
http://www.zqtcl.cn/news/20380/

相关文章:

  • 如何做网站 百度经验新媒体运营培训学校
  • 久其软件公司网站如何访问云南建设厅网站
  • 做网站好app网站建设制作
  • 石家庄有那些网站开发公司提升网站开发效率
  • 用什么软件做网站最简单wordpress淘宝ued
  • 一个网站有多大学生模拟网站开发
  • 快速建站服务器网站数据库太大搬家还原500错误
  • 新余集团网站建设asp.net mvc 做网站
  • 成都市建设厅网站查询大学网站模板html
  • 深圳网站优化排名公司wordpress 登陆 插件
  • linux网站服务器配置网络推广怎么优化
  • wordpress 子域名建站新手建站论坛
  • 湖北外贸网站建设php做外贸网站好吗
  • 地方门户网站建设多少钱中国市场营销培训网
  • 外贸网站seo推广方案域名绑定网站
  • 做视频特技的网站wordpress daxue
  • 建设网站服务器的方式有自营方式空港经济区内的建设工程网站
  • 吉林省高等级公路建设局 网站wordpress推介
  • 免费网页推广企业网站关联优化
  • 分类信息网站如何做优化网站站内关键词优化
  • c++网站开发商城网站制作
  • 关于建设工程招标类的公共网站当当网站建设与易趣网站对比
  • 诸暨网站制作公司 网页做PS的赚钱的网站
  • 网站规划书包含哪些内容网站开发招聘要求
  • 部队网站建设男女做暧网站
  • 网站建设实战案例全国送花网站
  • 呼伦贝尔哪里做网站公司网站一年费用
  • 站长工具里查看的网站描述和关键词都不显示做医疗的网站
  • 怎么免费建设个人博客网站上海网站建站
  • 汝州建站公司一个网站怎么做app