- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 一般的 Java 项目需要 JVM 调优吗?
体现系统性能的参考因素首先我们需要知道系统当前的运行状况,也就是系统的性能好坏,才能判断是否需要调优。如果系统的响应时间很短,计算机的资源使用也很低,那我们做系统调优就完全是为了调优而调优。那么衡量系统性能的指标到底有哪些呢?响应时间:响应时间是衡量系统性能的重要指标之一,响应时间越短,性能越好,一般一个接口的响应时间是在毫秒级。响应时间还包括数据库响应时间、服务端响应时间、网络响应时间、客...
2020-04-11 23:57:05 340
原创 什么是微服务架构?
近几年来,“微服务架构”这个术语频繁出现在技术人的眼里,它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。尽管这种架构风格没有确切的定义,但围绕业务能力、自动化部署、端点智能以及语言和数据的分散控制等方面存在着某些共同特征。本文就以浅显易懂的语言解释下什么是微服务架构。什么是微服务?微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同...
2020-04-06 20:54:59 229
原创 项目管理中的三个技巧
第一个技巧,我们在做项目计划的时候,要对多个项目进行细分重组。先评估能力,再分配任务,每个人的能力要和任务的难度匹配。每个人任务完成所需时间要尽量平等,也就是要达到一种负载平衡。每个人得到的任务里,挑战有意思的工作和脏活累活的比例要大致相等。每个人任务里有足够的挑战,能够帮助其成长,又不至于太难而让其望而生畏并产生挫败感。不同人的任务之间如果有依赖性,在分配任务时要安排合理的顺序,确保不会有人...
2020-03-22 10:23:07 281
原创 不推荐使用单例模式的五个理由
尽管单例是一个很常用的设计模式,在实际的开发中,我们也确实经常用到它,但是,有些人认为单例是一种反模式(anti-pattern),并不推荐使用。所以,今天,我就针对这个说法详细地讲讲这几个问题:单例这种设计模式存在哪些问题?为什么会被称为反模式?单例对 OOP 特性的支持不友好单例这种设计模式对于其中的抽象、继承、多态都支持得不好。一旦你选择将某个类设计成到单例类,也就意味着放弃了继承和...
2020-03-17 18:29:25 797 1
原创 门面模式在实际开发中的应用场景
门面模式,也叫外观模式,英文全称是 Facade Design Pattern。应用场景比较明确,主要在接口设计方面使用。1.解决易用性问题:门面模式可以用来封装系统的底层实现,隐藏系统的复杂性,提供一组更加简单易用、更高层的接口。实际上,从隐藏实现复杂性,提供更易用接口这个意图来看,门面模式有点类似之前讲到的迪米特法则(最少知识原则)和接口隔离原则:两个有交互的系统,只暴露有限的必要的接口。...
2020-03-15 11:41:03 765
原创 适配器模式应用场景总结
一般来说,适配器模式可以看作一种“补偿模式”,用来补救设计上的缺陷。应用这种模式算是“无奈之举”。如果在设计初期,我们就能协调规避接口不兼容的问题,那这种模式就没有应用的机会了。封装有缺陷的接口设计假设我们依赖的外部系统在接口设计方面有缺陷(比如包含大量静态方法),引入之后会影响到我们自身代码的可测试性。为了隔离设计上的缺陷,我们希望对外部系统提供的接口进行二次封装,抽象出更好的接口设计,这...
2020-03-14 11:01:27 5373
原创 常见操作的响应时间
在性能测试中,针对一次交易我们如何判断响应时间是快还是慢?如果我们知道这些常用操作的耗时,那么就可以大概判断出交易的响应时间是否合理。下面我搜集了常用操作的时间消耗,分享与你。在数据库中查询一条记录;十几毫秒 机械磁盘一次寻址定位:4毫秒 ;从机械磁盘顺序读取1mb数据:2毫秒;从ssd磁盘顺序读取1mb数据:0.3毫秒 ;从远程redis读取一个数据:0.5毫秒 ;从内存读取1mb...
2020-03-12 20:00:06 1074
原创 ThreadLocal在springboot使用中的坑
ThreadLocal 适用于变量在线程间隔离,而在方法或类间共享的场景。现在在Springboot中我做如下场景的使用:使用 Spring Boot 创建一个 Web 应用程序,使用 ThreadLocal 存放一个 Integer 的值,来暂且代表需要在线程中保存的用户信息,这个值初始是 null。在业务逻辑中,我先从 ThreadLocal 获取一次值,然后把外部传入的参数设置到 Thre...
2020-03-10 10:26:41 2019
原创 在腾讯云上搭建zookeeper集群遇到的坑
前段时间我在腾讯云上购买了一台云计算机,环境是centos,在学习zookeeper集群搭建过程中遇到了好些问题,在这里和大家共享下。1.因为只有一台机器,为了搭建集群,我是把ip地址写成都是一样的,只是port不通,也算是模拟zookeeper集群。2.网上有很多关于如何在一台机器搭建zookeeper集群的文章,在这里我就不详细写搭建的过程,只说明在其中遇到的问题,以及如何解决。问题 1...
2020-03-08 11:21:35 1085 1
原创 架构师的四大思维模型
1.技术思维模型包括“势、道、法、术”:具体来看,“势”指的是市场趋势、是产品定位,同时也是自我的优势与劣势。“道”指的是产品的灵魂、设计理念以及价值观。“法”是方法论,体现在产品的设计原则、产品创新、产品交付以及功能与非功能特性的定义。 “术”指的是技能,“器”指的是工具,“界”指的是约束,也是限制。2.创新思维模型破坏,找到产品奇点并加以破坏,类似于使得宇宙奇点能量失去平衡;下移,产品奇...
2020-03-07 14:04:31 919
原创 性能测试常见问题及瓶颈判断分析
1.录制登录脚本后回放,结果失败登录中为了安全,一般会对密码进行加密,查看录制的脚本中密码是否加密,如果是加密信息,有两种解决:一个是让开发修改应用,使用明码;一个是开发修改应用不做密码验证,脚本输入任何密码都通过。2.增加并发后,TPS基本没有变化,应用和数据库的CPU也都消耗不高可以先选择一个非登录的交易,最好是查询类交易,做1并发、5并发、10并发,试运行5分钟查看平均响应时间和TPS...
2020-03-06 14:19:09 1240
原创 loadrunner处理过量请求及时释放资源
loadrunner在接收http请求的时候,有时候处理非常快,但loadrunner不会处理完立刻释放连接,导致后续的压力机资源被占满而出错,这个时候可以在请求中增加http请求结束立刻释放资源的命令,如下:Action(){ web_set_sockets_option("SHUTDOWN_MODE","ABRUPT") // 相当于迭代重置,初始化 web_set_max_h...
2020-03-05 13:43:29 836
原创 开发工程师需了解的常用缩写
领域驱动设计(Domain Driven Design,简称 DDD)MVC模型中常用到的几个缩写:VO(View Object);BO(Business Object);M 表示 Model,V 表示 View,C 表示 Controller;DTO(Data Transfer Object,数据传输对象)OOA:面向对象分析(OOA)OOD:面向对象设计(OOD)OOP:面向对象编...
2020-03-04 10:23:32 579
原创 Zuul路由网关的概念理解和配置访问
在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服务,服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理,配置服务的配置文件放在git仓库,方便开发人员随时改配置。Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服...
2020-03-03 10:41:27 298
原创 Docker的常用镜像及使用方式
Docker作为眼下最流行的技术,已经越来越成为开发人员的必备技能。它可以方便的让我们快速的搭建起需要应用环境,像常用的redis、mq、tomcat、zookeeper、mysql、nginx镜像,在这里我总结一下使用方式,可以让你一篇文章就把这些知识点串链起来。拉取镜像目前我常用的是国内的网易的镜像,下载速度非常快。docker pull hub.c.163.com/library/...
2020-03-03 08:46:15 1057
原创 关于loadrunner录制发送http请求的几种脚本格式
1. 基于key/value格式,可参照下列格式:web_submit_data(“queryForeign.do”,“Action=http://10.3.1.91:9001/cms/queryForeign.do”,“Method=POST”,“RecContentType=text/plain”,“Referer=http://10.3.1.21:9001/pweb/welcome...
2020-03-02 22:50:02 749
原创 SpringBoot与SpringCloud的关系
SpringBoot专注于快速、方便的开发单个微服务个体;SpringCloud关注全局的服务治理框架。它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、事件总线、全局锁、决策竞选、分布式会话等等集成服务。SpringBoot并不是重复制造轮子,而是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过S...
2020-03-02 22:07:23 218
原创 作为程序员的你,常用的工具软件有哪些?
作为一个有几年开发经验的java程序员,我分享一下日常工作的常用工具,方便新踏入这个行业的你用最快的速度进入工作状态。当然,同一方面的工具有很多,这里我只说明自己常用的工具。1. Java 集成开发环境(IDE)作为java程序员,一款方便的开发工具是必不可少的,我使用的是老牌的开放源码的eclipse,使用这个软件最大的好处就是完全免费,不需要破解,可以直接从其官网下载,它支持window...
2020-03-02 21:21:33 1342
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人