自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

科技D人生

做正确的事情永远都比把事情做对更重要。在错误的方向上努力再多也不如找到正确的方向。

  • 博客(21)
  • 资源 (8)
  • 收藏
  • 关注

原创 Java基础学习总结(175)——分布式ID的9种生成方式总结

背景业务量小于500W的时候单独一个mysql即可提供服务,再大点的时候就进行读写分离也可以应付过来。但当主从同步也扛不住的是就需要分表分库了,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。那么这个全局唯一ID就叫分布式ID。分布式ID需满足那些条件:全局唯一:基本要求就是必须保证ID是全局性唯一的。 高性能:高可用低延时,ID生成响应要快。 高可用:无限接近于10

2021-03-16 10:27:08 1158

原创 Java多线程学习总结(7)——创建线程池的正确姿势

一、通过Executors创建线程池的弊端在创建线程池的时候,大部分人还是会选择使用Executors去创建。下面是创建定长线程池(FixedThreadPool)的一个例子,严格来说,当使用如下代码创建线程池时,是不符合编程规范的。ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);原因在于:(摘自阿里编码规约)线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的.

2021-03-31 12:03:49 357 1

原创 Git学习总结(25)——Git 常用的分支开发模式及规范总结

一、master 分支master 为主分支,也是用于部署生产环境的分支,所有提供给用户使用的正式版本,都在这个主分支上发布。为确保 master 分支稳定性, master 分支一般由 develop 以及 hotfix 分支合并,任何时间都不能直接修改代码。二、develop 分支master 分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做 develop。develop 为开发分支,始终保持最新完成以及 bug 修复后的代码,一般开发的新功能时,fea

2021-03-30 09:56:36 510

原创 压测学习总结(7)——Jmeter性能测试之脚本增强

参数化在Jmeter中,实现参数化的方式很多。 本质上来说,参数化的实现方式有两种:文件方式:一般建议通过配置元件--CSV 数据文件设置组件来实现。CSV 数据文件设置组件函数方式:一般通过调用Jmeter内置的、第三方插件、自定义的函数来实现。 一般通过函数助手来生成调用的字符串。调用方式在jmeter中,任何鼠标点击可以输入的地方(输入字符串),都可以实现调用参数化操作,在Jmeter中,参数、变量、函数的调用方式是固定的: ${参数名} ${变量名} ${函数名}

2021-03-26 14:13:34 555

原创 压测学习总结(6)——Jmeter同步定时器的使用

添加同步定时器同步定时器介绍:同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的。Jmeter中使用同步定时器功能,模拟多用户并发测试,即多个线程在同一时刻并发请求。用来保证我们的取样器在同一时刻向服务器发起负载参数介绍模拟用户组的数量:集合多少用户后再执行请求(也就是执行的线程数)PS:等同于设置为线程组中的线程数,设置的值不能大于线程数。超时时间以毫秒为单位:指定人数 多少秒没集合到算超时(设置延迟时间以毫秒为单位)PS:如果设置“超时时间以毫

2021-03-26 14:03:59 2334

原创 压测学习总结(5)——如何使用Jmeter 进行简单的并发操作

建立线程组:鼠标右键“测试计划” -> “添加” -> "线程组(用户)" -> “线程组”, 建立线程组。添加HTTP请求:鼠标右键“线程组” -> “添加” -> “取样器” -> “HTTP请求”, 添加HTTP请求请求内容:输入“服务器名称或IP”,对应的端口号(一般没有指定端口不用输入)。选择请求的方法,, 输入对应的路径,添加参数及值。添加察看结果数:鼠标右键“HTTP请求” -> “添加” -> “监听器” -> “

2021-03-26 14:00:03 283

原创 压测学习总结(4)——Jmeter 脚本构成

一、测试计划:是默认存在的组件,所有的Jmeter的组件都是依赖于测试计划的。 在这个组件中,可以设置全局变量,可以设置线程组的启动方式。二、Threads:线程组件,又叫用户组件,是Jmeter中的必加组件,是Jmeter用来控制线程计划的。有三个可选组件:线程组、setUp线程组、tearDown线程组。这三类线程组本质上是一样的,只有当多种线程组组件同时出现在一个测试计划下时,会有执行顺序的区别。 所有的setUp线程组是优先执行的,执行完毕之后,才会执行线程组,最后才会执行tearD

2021-03-26 13:47:50 446

原创 压测学习总结(3)——Jmeter 脚本如何生成

一、第三方工具录制。 常用的工具有两种:badboy、blazemeter。badboy是基于内置的浏览器来进行录制的。录制成功导出JMX格式文件,再进行导入Jmeter。缺陷:因为内置浏览器的内核是IE的内核,所以可能会因为浏览器的兼容性导致无法使用badboy进行录制。blazemeter是提供了chrome浏览器的插件,可以在chrome浏览器中直接录制。二、Jmeter自带的http代理服务器方式录制代理服务器录制操作详解:第一步:右键测试计划,添加组件--Threads

2021-03-26 13:38:26 890

原创 压测学习总结(2)——Jmeter 基本知识入门

Jmeter的简介:Jmeter是一款基于纯JAVA语言开发的开源的性能测试工具。jmeter启动界面Jmeter的下载:·最新版:http://jmeter.apache.org/download_jmeter.cgi·历史版本:https://archive.apache.org/dist/jmeter/binaries/PS:如果是windows下使用,则下载zip压缩包,如果linux平台使用,则下载tgz。安装和使用:Jmeter是基于java的应用,所以需

2021-03-26 11:29:34 420

转载 关于软件架构的一切

现有软件架构方法的详细概述软件开发可以描述为一个复杂的系统过程,需要在各个技术领域以及相关业务方面的专业知识。就像总体规划的蓝图一样,通过定义软件的体系结构,可以促进此软件开发过程的组成部分。为什么我们需要软件架构> Big Ball of Mud早期的开发人员用来设计无体系结构的软件,这种软件最初看起来像是没有计划开销以及更快的原型制作的优点。但是,随着他们深入到过程中,该软件变得像泥泞的球一样变得僵化和难以管理。随着每项变更的成本越来越高,这种方法后来被称为“泥浆大球”(B

2021-03-25 09:12:24 328

转载 我在架构设计和代码开发中的一些常用原则

不管我一生中取得了多大的成功,其主要原因都不是我知道多少事情,而是我知道在无知的情况下自己应该怎么做。我一生中学到的最重要的东西是一种以原则为基础的生活方式,是它帮助我发现真相是什么,并据此如何行动。——瑞·达利欧(Ray Dalio)在日常的开发和设计过程中,大家对技术设计上的一些问题往往会面临很多的选择,不同的人会有不同的选择,每每如此,我都会尝试着问自己:我做出选择和判断背后的原则是什么?经过这么多年的发展,在软件设计过程,目前沉淀下来的原则有很多,但很多情况下,很多原则为了普适性,总结得.

2021-03-24 09:26:07 302

原创 Java基础学习总结(177)——关于Oracle对JDK长期支持(LTS)路线图

长期支持版(LTS)LTS,Long-term support,长期支持,软件的产品生命周期政策,延长了软件维护的周期,增加了软件开发过程及软件版本周期的可靠度。长期支持(LTS)版本通常与应用程序或操作系统有关,会在较长的时间内获得安全、维护和(有时有)功能的更新。Oracle的长期支持的JDK版本:JDK8、 JDK11、JDK17,学习、应用、商用,都可以选择Oracle Java SE支持路线图:地址:https://www.oracle.com/java/technologie

2021-03-24 09:23:41 2768

原创 Java基础学习总结(176)——JDK 16 正式发布,一次性发布 17 个新特性

JDK 16 正式发布JDK 16 不是一个长期支持的版本,只支持 6 个月到 2021 年 9 月,上一个长期支持版本还是 JDK 11,下一个长期支持版本是 JDK 17,还有半年也要发布了。所以千万不要把 JDK 16(非长期支持版本)用于生产,大家了解一下就好。JDK 16 新特性一览ID JEP Feature 1 394 Pattern Matching for instanceof 2 395 Records 3 392

2021-03-18 09:58:21 952

转载 自动驾驶专题研究报告:自动驾驶产业链全梳理

核心观点2021年自动驾驶正加速向L3买进。2020年L3级自动驾驶开始普及已成为行业共识。2021年作为 自动驾驶技术进入L3等级的元年,是自动驾驶技术发展的重要节点。全球自动驾驶迈入商用探索新阶段。我们预计2024年全球L1-L5级自动驾驶汽车出货量有望突破 5000万。据百度Apollo智能交通白皮书,预计2035年后可完全实现无人驾驶。自动驾驶相关标准渐行渐近。LTE-V、5G等通信技术成为自动驾驶车辆通信标准的关键,将为自 动驾驶提供高速率、低时延的网络支撑。端、管、云服务体系逐渐推.

2021-03-16 15:30:57 1234

原创 Linux学习总结(67)——shell脚本中$0 $1 $# $@ $* $? $ 等总结

$# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$ 是脚本运行的当前进程ID号$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误eg:...

2021-03-15 09:56:43 435

原创 为什么要重构,何时进行重构

重构的目的代码重构是DevOps软件开发方法中使用的过程,该过程涉及编辑和清除以前编写的软件代码,而不更改代码的功能。代码重构的基本目的是使代码更加有效和可维护。这是降低技术成本的关键,因为现在清理代码比错误(Error)已然发生要好得多。代码重构提高了可读性,使质量保证和调试过程更加顺畅。 虽然它不能消除错误,但肯定可以在将来防止它们发生。这就是为什么需要例行代码重构的原因。如果要避免可怕的代码腐烂,代码重构很重要。 代码重复是由重复的代码,无数的补丁,错误的分类和其他编程差异引起的。 由不同开发人员

2021-03-09 09:44:52 1023

原创 Java基础学习总结(174)——Java 开发者应该会的流程图绘制技巧

一、流程图简单介绍流程图 (Flow Chart )是流经一个系统的信息流、观点流或部件流的图形代表。在企业中,流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务的管理过程。流程图是揭示和掌握封闭系统运动状况的有效方式。作为诊断工具,它能够辅助决策制定,让管理者清楚地知道,问题可能出在什么地方,从而确定出可供选择的行动方案。(摘自MBA智库·百科)相比于时序图而言,流程图不需要过多考虑时间的维度,它能更加一目了然地描述各种分支情况的走向。针对不同的用户群,流程图有很多种

2021-03-08 10:17:07 12060 4

原创 Java基础学习总结(173)——Java 8到Java 15新功能总结

函数式编程(Java 8)在Java 8中,功能编程和lambda被添加为语言功能。函数式编程的两个核心范例是不变的值和将函数提升为一等公民的方法。数据经过一系列修改步骤,其中每个步骤都需要一些输入并将其映射到新的输出。函数式编程可与Java中的Streams和null安全monad(可选)一起使用,如下所示…List<String> stringList = Arrays.asList("Hello", "World", "How", "Are", "You", "Today");

2021-03-05 10:10:50 463 3

转载 架构设计:文件服务的设计与实现

功能文件服务器的核心功能就两个:「文件上传」和「文件下载」!其中上传可能需要支持断点续传、分片上传。而下载可能需要进行下载保护,例如非指定客户端无法下载。除了这两个核心功能,一般都会有一个额外功能,就是「转换」!转换包括:图片规格转换:一张图片需要切分多个不同的尺寸 添加水印:图片或视频需要添加水印 格式转换: 文件格式转换:office转pdf,pdf转word,pdf转图片,office转图片等 视频格式转换:mp4转m3u8,码率转换等除了上面的业务功能外,还包括如下非功能性约束:

2021-03-05 09:52:01 2025 2

原创 Redis学习总结(20)——Java 开发人员Redis 使用军规

一、缩短键值对的存储长度键值对的长度是和性能成反比的,比如我们来做一组写入数据的性能测试,执行结果如下:从以上数据可以看出,在 key 不变的情况下,value 值越大操作效率越慢,因为 Redis 对于同一种数据类型会使用不同的内部编码进行存储,比如字符串的内部编码就有三种:int(整数编码)、raw(优化内存分配的字符串编码)、embstr(动态字符串编码),这是因为 Redis 的作者是想通过不同编码实现效率和空间的平衡,然而数据量越大使用的内部编码就越复杂,而越是复杂的内部编码存储的

2021-03-02 15:25:06 332

原创 Redis学习总结(19)——Redis 5种集群方式对比

一、常用的5种集群方式Redis 的几种常见使用方式包括:Redis 单副本 Redis 多副本(主从) Redis Sentinel(哨兵) Redis Cluster Redis 自研二、各种使用方式的优缺点1、Redis 单副本Redis 单副本,采用单个 Redis 节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适用于数据可靠性要求不高的纯缓存业务场景。优点:架构简单,部署方便;高性价比:缓存使用时无需备用节点(单实例可用性可以用.

2021-03-01 17:41:48 386 1

Kubernetes 实用技巧大全

K8S 实用命令总结

2021-12-22

Javag工程师简历模版.zip

Java 工程师简历专用模版,供技术人员参考,如何写出好看实用的Java 简历。相关技术从业人员的简历书写可参考改压缩包中的两份简历模版。

2020-08-06

清华-2018人工智能之自动驾驶研究报告.pdf

自动驾驶技术已经成为整个汽车产业的最新发展方向。应用自动驾驶技术可以全面提升汽车驾驶的安全性、舒适性,满足更高层次的市场需求等。自动驾驶技术得益于人工 智能技术的应用及推广,在环境感知、精准定位、决策与规划、控制与执行、高精地图与车联网 V2X 等方面实现了全面提升。

2019-09-02

最新版Myeclipse2018.8破解

最新版Myeclipse2018.8破解,亲测100%有效,欢迎大家下载尝试!

2018-08-25

容器网页终端(websocket-webshell)

Java WebSockt DockerSSH Html5 Tomcat8 等技术写的WebShell 容器网页终端 传统websockt终端和容器化终端解决方案!

2017-09-23

开源博客系统

博客系统

2016-09-22

短信平台,activemq 及常用第三方短信平台接入

短信平台

2016-09-22

netty推送系统

netty推送系统,点对点推送

2016-07-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除