当前位置 : 主页 > 网页制作 > Nodejs >

Restful Webservices使用Java,Apache Axis2,Hibernate和MySQL及其性能

来源:互联网 收集:自由互联 发布时间:2021-06-24
我在应用程序中阅读了某些地方使用的webservcies.经过大量的研究,我能够创建一个Web服务,它将接受Json和JsonP两种格式作为请求和响应.我使用 Java,Apache Axis2,Hibernate和 MySQL作为数据库开发了
我在应用程序中阅读了某些地方使用的webservcies.经过大量的研究,我能够创建一个Web服务,它将接受Json和JsonP两种格式作为请求和响应.我使用 Java,Apache Axis2,Hibernate和 MySQL作为数据库开发了webservcies.问题很少,我不知道如何解决?

>插入或删除选项,有时如果一次超过两个用户调用插入或删除查询进入睡眠模式的任何行的服务,下次有人尝试获取他无法获取的服务.根据服务器日志记录,它说错误SQL锁定状态.如果我在MYSQL中检查Processlist它在Sleep中显示该查询,我必须杀死才能恢复.
> webservice的性能似乎没有达到标记,它需要时间更多的时间,因为我所经历的不应该.简单来说,如何通过服务获得更好的性能
>如何实现安全功能,以便在用户登录时,可以为他/她提供id并验证该id,以便可以防止未经授权的访问

或者只是指导我可以使用Java最合适和最优化的Web服务方法

对此问题的回答并非针对 Android.以下是我的调查,可能对您有用.

关于MySQL连接进入睡眠模式的问题,您可以执行以下操作.

>调试Hibernate使用的数据源,尝试增加池大小&检查其中的任何问题.
>定义连接的超时时间. JBoss有几个与此相关的配置,如blocking-timeout-millis,idle-timeout-minutes等.
>声明一种机制,以定期验证池中的连接资源的活动性.您可以浏览OracleStaleConnectionChecker以获取选项.
>在池中配置miniumn连接.这很重要,因为当所有陈旧的连接被丢弃时,需要预先填充空池.准备好主动连接.

即将执行插入/删除操作& SQL锁定状态,请尝试在每次请求时重新排序您向DB发送的查询序列.这可能不是死锁情况,但正确排序DB查询肯定会导致更少的锁定时间和更好的性能.

这个答案可能对您有用. Hibernate: Deadlock found when trying to obtain lock

您开发的Web服务可能需要进行一些性能优化才能使其达到标准.以下是您可以采取的最初几个步骤,以提高性能.

>避免嵌套循环.迭代欲望中的每个额外参数都以指数方式增加lopp的阶数.
>删除对象的早期初始化.这可能导致长时间不需要的GC循环.

除了上述优化之外,还有几个框架&为您服务的工具,用于评估代码质量和它的表现. PMD,FindBugs,JMeter,Java profiler是其中的一小部分.

Shishir

网友评论