精华内容
下载资源
问答
  • session存放数据
    千次阅读
    2018-03-22 11:31:44

    刚过完年,就一直比较忙,一直也没空更新。

    先是客户要求紧急上线,足足加了一个礼拜的班,紧赶慢赶做了一套订票系统出来。妈的。。。需求还没给,就提了上线申请。简直日了狗。(吐槽。。。。还一个傻逼业务,跟着客户一块烦我。)

    然后问题随之而来。哎,果然紧急上线的东西问题频出。


    直接记录问题吧。

    1,开发购票时,因为任务紧急,简单设计,直接把从EPM查出来的航班全部信息(EPM返回数据很庞大,并且控制权不在我们手里,它返回list,里面还有很多list,这些list里面还是list。简直了。。)放入了session方便后续比对得到他所选仓位的基础仓位及基础仓位运价,当初还在想:这东西有点大,会不会影响性能呢。先试试。到了测试环节发现并没有什么问题,也没太在意了。就草草上线了。上完线发现服务器可用性明显降低,CPU使用率提高了30%,经过和组内大神以及各种硬件中间件老师们的漫长的排查。发现大致原因如下:服务器上jboss的JVM内存是2G,之前应该已经是在出现问题的临界值了,所以,再往里放一个很大的东西,再高并发的情况下,内存一下就不够用了。导致GC回收频繁,系统响应时间变长,影响了可用性。最后我提出来两个解决方案:一,在前台点选时,就去遍历,选出旅客选中的舱位,基础仓位,基础仓位运价。二,在放入session中的时候,把他打散, 只取需要的数据放入,后续进行遍历比对。  最终领导采取的是方案2,原因大概是放入js中取遍历取这个东西,可能一定程度上会影响客户操作的响应速度。还是在服务器进行这类操作,避免影响用户体验。而且我们的前端最近比较忙。还是JAVA解决吧。

    整件事情吧,客户需求提的确实不太合理,正常情况下这个需求做下来要最少2个月,一周给他搞定的,设计和实现上肯定是有问题的。设计时确实我当初应该考虑到这个东西的影响,但光看组内几个人的测试,并不能模拟出问题,也没做压测,也是疏忽。最终问题解决了是好的,也算是个自己长个记性。这算是踩的第一个坑吧。


    2,上线当天,由于我新做的功能,换了一个IBE的JAR包,导致了上线失败,差点回滚出事故。

    原因是这样的,我又采坑了,我们的测试服务器和生产服务器以及8台生产服务器之间。都是存在差异的。再开发测试阶段,3台测试服务器是一样的,都没出现jar包冲突问题,但是上线之后,发现生产服务器却出现jar包冲突,但8台中2台却没有这个问题。经过组内大神和运行中心沟通,发现是存在差异的。而且,jboss在启动项目时,他在部署的war包的同级下,有一个lib文件夹,这个文件夹下存放的jar包,如果有同名的会覆盖掉war包内的jar包,导致jar包的地址变了,然后这个IBE包由于要读取ibe.properties文件,而且是相对路径,直接读取不到了。抛出异常。


    3,并发问题


    上完线之后,跟性能优化同期处理了一个接口方面的高并发问题。


    问题大概是这样,先说流程,三方发送报文到我们总部的一个系统,由他进行一下报文处理,转发到我们的系统。

    由于之前一个二把刀做了一个全舱位查询,没评估风险,直接就把全舱开放了。同程再3月搞了一次上线,把查询由低价改为全舱,而且是频繁使用,每天查询量相当高。每次查询都是全舱。全舱的报文一般都相当巨大,这就导致了我们系统处理每个同程进来的请求时间变长了。处理时间变长,导致后面的请求进不来,阻塞之后,等待时间变长,进而超过并发数,导致可用性下降。但由于上线日期和我们的上线日期是一样的,这就让客户联想到了我的需求导致的接口问题,其实并不会导致接口问题,因为接口跟官网是两个集群。泪奔。。。。差点又算我头上。。


    好了,大概最近烦心事就这么多吧。好在有个nice领导给扛着,有大神帮衬着去查找问题,这算是工作也来,遇到的比较大的挑战了,从紧急讨论。加班加点开发,处理客户之间关系,分清主次,出现问题的跟踪排查,不同角度的去思考,虽然过程不美好,但是是有收获的。

    更多相关内容
  • 本文实例讲述了SESSION存放在数据库用法。分享给大家供大家参考。具体如下: <?php /* CREATE TABLE `ws_sessions` ( `session_id` varchar(255) binary NOT NULL default '', `session_expires` int(10) ...
  • session数据保存

    千次阅读 2021-07-06 08:56:41
    2,关于Session并不陌生,Session是另一种记录客户状态的机制,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是SessionSession保存在服务器端。为了...

    在这里插入图片描述

    1,点击表格中的单选框,选择商品数据,然后点击加入所选商品,该商品就会添加到所选商品的列表中去。
    2,关于Session并不陌生,Session是另一种记录客户状态的机制,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。Session保存在服务器端。为了获得更高的存取速度,服务器一般把Session放在内存里。每个用户都会有一个独立的Session。如果Session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。因此,Session里的信息应该尽量精简。
    客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。上面该操作我们使用到的session属性,把需要的字段和属性保存到session中,当我们用到该内容的时候,在把该字段和属性调用出来。
    页面获取需要把选中的框的值绑定到另一个要添加数据的表格中去。
    首先需要封装一个session,
    List SessionItems = new List();
    if (Session[“SessionItem”] != null)
    {
    SessionItems = Session[“SessionItem”] as List;
    } 这是必须要有的条件
    查询需要保存到session中的数据,以及相关联的表,查询出来之后,就可以实例化进货明细信息实体了,把要显示的session数据给上对应的数据。
    控制器这边可以记录session保存数据的成功条数,如果当前session中已经添加了数据,数量增加。Session中数据不存在,直接添加到session,方便使用。

    这就是临时保存session数据的步骤,所以我要分享给你们,希望可以帮助到你们。
    以上就是我的分享,新手上道,请多多指教。如果有更好的方法或不懂得地方欢迎在评论区教导和提问喔!
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Session存储数据

    千次阅读 2019-06-27 22:05:04
    Session存储数据 开发工具与关键技术: 作者:熊琪 撰写时间:2019.06.26 首先要明白自己需要什么样的数据,然后得想明白怎么才能获取到数据,获取数据就不一一讲述了,首先这里是需要通过点击layui的table中去...

    用Session存储数据

    开发工具与关键技术:
    作者:熊琪
    撰写时间:2019.06.26
    

    首先要明白自己需要什么样的数据,然后得想明白怎么才能获取到数据,获取数据就不一一讲述了,首先这里是需要通过点击layui的table中去获取表中的数据然后通过某种提交方式提交到控制器的方法,方法中需要接收从页面传输过来的数据然后对数据进行保存然后用的时候调用seeeion中的数据就可以了,以上就是session保存数据的基本思路。接着看操作演示。
    首先看在视图的操作给layui的表格加一个监听行的点击事件,代码如下:

    layuiTable.on('row(TaSalesdetails)', function (obj) {
          var data = obj.data;//获取点击行数据
          obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
          obj.tr.find('div.layui-unselect.layui-form-checkbox')[0].click();
    });
    

    代码第二行为选中后的样式效果,第三行是复选框可选中多条。
    选中是选中了但选中的具体是哪条数据还不是很清楚,所以就得进一步操作了,直接上代码:
    var checkStatus = layuiTable.checkStatus(‘TaSalesdetails’); //获取选中值
    var selectData = checkStatus.data;
    console.log(selectData);
    看图一:
    在这里插入图片描述

    (图一)
    图中所示显示了三条数据,意思就是点击了三条数据,而这三条数据就是参数selectData中的值。
    然后在控制器就得接收传过来得数据具体怎么传看代码:
    $.post(“selectCommodity”, { commodity: selectData }, function (data) {
    if (data != “”) {
    TbCommoditylist = layuiTable.reload(‘TbCommoditylist’) } });
    Post请求方法,selectCommodity是方法名,commodity是控制器接收数据的参数,selectData是视图接收数据的一个变量。看控制器方法代码图:
    在这里插入图片描述
    因为传过来的是装着一条一条数据的数组,所以这里用对象列表来接收,先实例化一下对象列表,为了可以在的二次选择数据时不刷新session中的数据先判断session是否为空,不为空执行把session赋值与自己本身,就之前的数据都可以保存在session中了,接着声明一个局部变量用于接收每一条数据中对应的每一个字段代码:
    listCommodityVo.Add(commodity[i]);
    添加到对象列表中,最后两句代码
    Session[“selectCommodity”] = listCommodityVo ;
    return Json(returnJson, JsonRequestBehavior.AllowGet);
    保存到session和返回值。保存就完成了。
    接着就是提取session中的值代码如图:
    在这里插入图片描述
    实例对象然后判断session不为null,接着就是用listResult来接收session中的值,然后在应个局部变量来接收listResul并对其进行倒叙排序,分页等操作。最后获取总数。Session的存储完成!

    展开全文
  • 通过session保存数据

    千次阅读 2019-07-07 15:37:49
    通过session保存数据 开发工具与关键技术:Visual Studio 2015 作者:李德新 撰写时间:2019年7月4日 在IT技术的快速发展的今天,越来越多的技术被研发出来,浏览器的功能也越发完善。如我们在网页上经常可以看到...
                                      通过session保存数据
    
    开发工具与关键技术:Visual Studio 2015
    作者:李德新
    撰写时间:2019年7月4日
    

    在IT技术的快速发展的今天,越来越多的技术被研发出来,浏览器的功能也越发完善。如我们在网页上经常可以看到的在页面有许多的可以填写的表格,我们在填写完之后我们写的这些表格里面的数据会保存在哪里的呢?其实这就是浏览器里面的一个缓存机制的使用。
    浏览器的缓存机制为我们提供了可以将客户数据缓存在客户端上的方式,,可以利用cookie与session等跟服务器端进行数据交互。Cookie与session都是用来跟踪浏览器用户身的会话方式,不同的是cookie是保存在浏览器端而session是保存在服务器端。Cookie主要还是用来保存一些登陆的信息的,用来判断我们是否登录过某个网站,以及保存上次看过的页面的信息和浏览计数。而session则有更大的主观性,不但可以用来保存我们的登录的账号信息也可把我们需要用到的一些器它的信息,让这些保存在session中的数据在别的页面上也可以使用。session对比cookie而言存储的数据的量更大而且还具有更大的操作性以及安全性,而且cookie每一次访问都要传输一次,浪费宽带。不过session也并不是全都是好处,session保存的东西越多,服务器占用的内存也就越大,如果同时多人在线就会对我们的服务器内存造成比较大的压力。
    在这里插入图片描述
    如上图所示,session的创建时非常简单的,我们只需要把我们要的数据获取到之后,把它们保存到session中就好了。但是session的一个好处就是可以在不同网页上去调用保存在session中的数据,这样我们也就实现了,不同页面调用数据的效果了。在我们保存了数据之后,这个session在页面的会话期间都可以使用而且保存的数据的量也比较大。
    我们在保存了数据到session中不需要我们在自己重新封装,而是可以直接使用源生接口,而且我们也可以再次封装来对Object和Array有更好的支持。如我在上图中保存的数据一样。
    在这里插入图片描述
    如上图,我们可以看到我们在session中保存的数据在我们取出来之后我们就可以直接是用了而不用再对我们这些数据进行过多的操作。而且我们所获取到的这些数据在我们没有关闭浏览器之前是不会被取消的,会一直保存到我们整个会话的结束。
    在这里插入图片描述
    如图所示,我们在获取到我们需要的这些信息之后我们就可以直接使用,回填到我们所需要的回填的表格之中了。如此我们就可以可以在不同的页面上去使用我们所需要的所有的数据。

    展开全文
  • springboot 使用session 存储用户数据

    千次阅读 2021-12-03 15:27:51
  • 查看session存放数据

    万次阅读 2017-12-27 21:50:46
    HttpSession session = req.getSession(); for ( Enumeration e = session.getAttributeNames(); e.hasMoreElements(); ) { System.err.println(e.nextElement()+"-----"+req.getSession
  • 博客地址:...存放数据指的是这三个对象在工程中setAttribute(),removeAttribute()的时候,我们的监听器就会知道,然后在对应的方法中执行相应的操作。
  • 给前端页面request域中存放数据: **有Model、Map、ModelMap三种方法 (一)Model方法给前端页面request域中存放数据 在控制器组件(用于拦截前端页面发送的请求)中添加如下代码: @RequestMapping(value="/...
  • session存储用户数据

    2021-12-28 20:11:51
    session存储用户数据
  • java session如何存取数据

    千次阅读 2021-03-10 05:32:31
    展开全部java session存取数据的方法:session存数32313133353236313431303231363533e58685e5aeb931333363376461据方法:publicvoidsetAttribute(Stringname,Stringvalue)方法,设定指定名字的属性的值,并将它添加...
  • 获取存储在session数据的方法

    千次阅读 2020-03-08 23:00:43
    // 获取session HttpSession session = request.getSession(); // 获取存储在session里所有的键值 Enumeration<String> attrs = session.getAttributeNames(); // 遍历attrs中的键与值 while(attrs....
  • 将PHP的SESSION数据存放到Redis中

    千次阅读 2017-08-22 11:33:07
    将PHP的SESSION数据存放到Redis中 ...所以,我们一般将SESSION自定义,让SESSION中的数据存放到 数据库中、Memcache中、Redis中。今天介绍如何将SESSION数据存放到Redis中。 步骤如下修改php.ini session.sav
  • vuex结合session存储数据,解决页面刷新数据丢失问题 文章目录vuex结合session存储数据,解决页面刷新数据丢失问题前言一、原因:二、解决思路:1.本地存储方法:2.实现步骤:3.优化: 前言 在项目中表单筛选项里,...
  • vue用session存取数据

    千次阅读 2021-11-19 19:51:01
    1.存放数据 //将js数据转换为json格式数据存放到session sessionStorage.setItem("username", JSON.stringify(data)); 2.取数据 var user = sessionStorage.getItem("username"); if (user != null) { // 将...
  • 此篇文章主要分享的是websocket存储session信息,在网上经常看到有websocket的例子,此篇文章只是将websocket中的session提取并存储起来,便于用户之间的互动与查找,其实就是解耦合此实现采用的是springboot的...
  • 如何把数据保存到session

    千次阅读 2020-12-23 08:10:51
    让后再查询session的中的数据。我当时疑问为什么要报存到session中呢而不是直接报存到数据库中呢。我就想为什么不能直接报存到数据呢?后来认真细想了一下。就明白了很多就是如果直接保存数据库而操作员不小心选错...
  • SESSION数据保存在哪里呢?

    万次阅读 2019-03-18 08:41:34
    SESSION数据保存在哪里呢 PHP中的session存储 Java中的session存储 博主注 前言  文章内容转载或摘录自,如下文章。最后将在文末【博主注】这一部分,指出一些需要注意的地方。 阿里面试题————-...
  • 标题简单描述:先将一个对象放入session,只对对象属性值进行修改,但不将修改后的对象存放session中,发现session存放的对象属性值也相对应的改变。Person person=new PerSon();request.getSession()....
  • 查看session中所有的数据

    千次阅读 2019-12-26 13:39:47
    HttpSession session = SessionUtils.getSession(); Enumeration<String> attrs = session.getAttributeNames(); while(attrs.hasMoreElements()){ ...
  • session会话文件夹 保存连接时,可以根据需要分成不同的文件夹 如果同事之间需要维护同一个项目,可以将自己的xshell连接,拷贝给他,放入他的xshell会话存放位置,就可以直接使用 直接复制文件夹即可,但是不会...
  • xshell的session数据存放

    千次阅读 2016-06-21 15:07:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 提取session中的数据

    千次阅读 2019-05-17 08:31:22
    想要在session中提取某一条数据呢,就需要先上传一些数据session中,这样才可以提取里面的数据,前提下是需要session中存在数据才可以从中提取到,没有数据是提取不到的,或许很多人可能不知道session到底是个什么...
  • 文章目录一、Session工作...服务器在内存中(服务器端)为不同的客户端创建了用于保存数据Session对象。并将用于标识该对象的唯一SessionId发回给与该对象对应的客户端。 当浏览器再次发送请求时,SessionId也会被...
  • 一、使用读写文件的方式保存 SESSION 数据session.save_handler = files) 1、 session_start() (1). session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session存放在文件中,PHP自身的垃圾...
  • javascript怎么获取session的值?

    千次阅读 2021-06-10 16:11:04
    在JavaScript开发工作中,session是被经常使用的,把某一对象置于session缓存内,并在jsp页面中提取session中放进去的对象是很常见的,下面一起看看:1、获取Session中的整条数据//后台中向Session中放入值的代码:...
  • 数据的两种存储方式 cookie和session

    千次阅读 2020-11-18 08:13:10
    一:什么是cookie 1、cookie是在服务端创建 2、cooki是保存在浏览器这一端 ...6、cookie存放时候是以明文方式存放,因此安全性较低,可以通过加密后存放。 7、每次请求会携带与当前服务相关的键值对数据,cookie
  • 1、Session 登陆是在服务器端生成用户相关 session 数据,发给客户端 session_id 存放到 cookie 中,这样在客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户认证。这种认证方式...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 200,581
精华内容 80,232
关键字:

session存放数据