自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jeff 的专栏

架构师之路

  • 博客(69)
  • 资源 (3)
  • 收藏
  • 关注

原创 分布式系统全链路压测方法

前言继上一篇JMeter的基本使用介绍(使用Apache JMeter做压力测试),本文介绍如何做SpringCloud分布式系统的全链路压测。测试策略如上图,基本思路是基于月活跃用户确定执行的并发数,然后用工具模拟压力输出报告,最终我们关心的三个最重要的指标是响应时间、错误率、吞吐量。吞吐量是反馈系统整体性能很重要的一个指标,也有几个衡量的维度,如QPS、TPS、网络收发的数据量,不同的系统应该采用不同的衡量标准,一般的业务系统会选取TPS,但也不一定客观,因为在系统跟系统横向对比的

2021-10-14 18:58:20 1278 1

原创 使用Java生成Word

用Java生成Word主流的方案有以下几种:1. 直接通过Object生成Word,需要自己一点点的生成标题、段落、表格等,缺点是比较手动原始并且工作量大,优点是快捷可控性强。主流的方案有Apache POI(http://poi.apache.org/),Java2Word(https://github.com/leonardoanalista/java2wordhttps://github.com/leonardoanalista/java2word)...

2020-11-11 15:22:51 543

原创 《Python机器学习基础教程》(上)

整体计划:时间不多的情况下需要快速构建机器学习系统,先有个整体框架,再慢慢学习。争取未来能够从企业级应用老旧领域转到数据分析和机器学习(人工智能)新兴领域,布局未来。第1章 引言人工智能、机器学习和深度学习的区别?机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。我们就用最简单的方法——同心圆,可视化地展现出它们三者的关系:机器学习介绍:机器学习(machi...

2020-03-08 16:39:00 1132

原创 架构师之路(七)架构师之路再思考

孙子曰:将弱不严,教道不明,吏卒无常,陈兵纵横,曰乱。今天参加架构师之路沈剑老师的直播,根据他个人的经验也再次引发我对架构师之路的再思考以及自我重新审视。首先对于沈剑本人来说,大多数人都是通过架构师之路这个微信公众号了解他本人的,也就说他的个人品牌已经打响了,这个其实对个人来讲非常关键,非常好,对于自己的知名度是否也可以通过CSDN专栏广播给大家看,通过这个增加知名度,扩大个人品牌影响...

2020-03-05 00:15:07 427

原创 工作流Activiti核心概念、原理和集成方法

1.什么是工作流及BPMN2.0规范介绍BPMN 是Business Process Modeling Notation 的简称 BPMN定义了一个业务流程图;Activity是bpmn的一个实现: 1.启动与结束事件(event) 2.顺序流(Sequence Flow) 3.任务(Task) 4.网关(Gateway) 5.子流程(Subprocess) 6.边界事件(Boundary...

2019-09-30 17:18:46 7688

原创 工作总结

把优秀当做一种习惯。今年(2019年7月),在职业生涯第十个年头,我离开了待了3年的DXC(HP),寻找到了新的平台,架构师之路刚刚开启,对于所谓的中年危机,可能暂时不再焦虑,面对未来,挑战和机遇并存。这三年的HP时光犹如白驹过隙,HP对我来说是个职业升华的熔炉,我也拿出了业绩回报他们,由衷的感谢公司领导和同事们对我的信任和关照。一、总结1. 技术突破编程语言上学会了Pyt...

2019-09-18 20:51:40 426 1

原创 Spring Security OAuth2实现的SSO

一.介绍最常见的例子是,我们打开淘宝APP,首页就会有天猫、聚划算等服务的链接,当你点击以后就直接跳过去了,并没有让你再登录一次。Java技术栈里,SSO的解决方案有CAS、OAuth2等,本文主要介绍Spring Cloud项目里如何使用Spring Security OAuth2实现的SSO。二.实现步骤下面这个图是我再网上找的,我觉得画得比较明白:步骤:...

2019-06-30 18:56:39 715

原创 Java内存模型与线程

注:部分内容摘自《深入理解Java虚拟机》《Java程序员修炼之道》背景:物理计算机在CPU和磁盘间的操作是最频繁的,但是随着CPU越来越快,磁盘越来越不能满足速度要求,随即出现了内存,内存是用户和CPU间的高速缓存区,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状。基于高速缓存的存储交互很...

2019-06-16 22:04:05 224

原创 架构师之路(六)五视图方法论

一、软件架构设计的五视图根据关注角度的不同,软件架构又分为逻辑架构、开发架构、运行架构、数据架构和物理架构。逻辑架构:着重考虑功能需求,系统应当向用户提供什么样的服务,关注点主要是行为或职责的划分。逻辑架构关注的功能,不仅包括用户可见的功能,还应当包括为实现用户功能而必须提供的辅助功能。逻辑架构更偏向我们所说的“分层”,像经典的“三层架构”。逻辑架构的静态方面是抽象职责的划分,动...

2019-03-11 16:44:05 1880

原创 架构师之路(五)如何做好业务建模?

“我深怕自己本非美玉,故而不敢加以刻苦琢磨,却又半信自己是块美玉,故又不肯庸庸碌碌,与瓦砾为伍。”现实生活中的我们不都是这样吗?明明庸庸碌碌,却又不甘庸碌一生。-中岛敦(日)《山月记》目录一、业务分析的方法1. 流程图2. 时序图3. 产品原型图4. 业务模型图5. 数据模型图6. 其他二、建模工具三、总结最近随着项目的推进,一些相对原...

2019-03-10 21:52:34 8921 1

原创 架构师之路(四)关于企业服务和ERP

做企业服务,即便是电商系统,企业ERP的一套东西是不可避免要接触的,如WMS ERP 进销存,所以这些概念和模式一定要搞清楚了。 职业生涯其实是一个不断拔高的过程,不断的积累经验,结实人脉,开拓视野来一步步升华自己,最重要的是不要停止学习,不要拒绝进步,一定要自信,一定要让自己站在更高一层思考问题。...

2018-12-08 16:22:14 359

原创 架构师之路(三)再次转变思维,最有价值的东西

一、架构师职责架构师的核心在于职责,包括业务职责,人员职责,所有的东西需要在职责范围内所有的功能性需求都不在架构师的职责范围内所有非功能性需求才在架构师的职责范围内,如性能 可扩展性 高可用 事务二、设计边界在做设计的时候一定要划清边界,如可以给出stage1,2,3,来区分不同的边界其他的如解决方案我们可以跟客户聊,但交付一定是有边界的三、统计和报表统...

2018-12-08 16:20:36 323

原创 架构师之路(二)架构师的技能和职责

一、架构师的技能和职责具备相关的意识形态和专业知识才能算上架构师,作为一名合格的架构师,完备的技术领域知识是必备的技能,但针对应用设计型架构师,所需的技能不仅仅限于了解和掌握技术体系,也需要从业务领域和软技能两个层面进行技能拓展。技术领域知识架构设计相关的技术领域知识包括在上文中架构演进理论中提到过的分布式系统、缓存、消息中间件、企业服务总线、搜索引擎和批量数据处理等各种目前业务主流的技...

2018-12-08 16:16:31 560

原创 架构师之路(一)Let's Start At The Very Beginning

一、架构师的最大的价值1.客户价值转化为设计(设计承载客户价值)2.把设计快速落地实现二、设计原则1.设计既要解耦合,强耦合设计往往存在灵活性和扩展性的问题2.设计也不能做穿了,一个功能尽量包含在一个模块里,不能扩散到其他模块三、关键知识点1.领域驱动设计之聚合与聚合根实例(https://www.cnblogs.com/malaoko/p/4993457.html)...

2018-11-29 16:15:47 939

原创 使用Apache JMeter做压力测试

- 介绍 -JMeter是Apache组织的开放源代码项目,能做功能测试和性能测试。它能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC),还能以多种形式展现测试结果。- 应用场景 -开发环境UI响应比较慢,解决思路:1. 先用browser debug工具分析发现是接口响应慢,导致UI一直处于等待状态2. 然后使用工具做接口性能分析3. 最后对分析出来...

2018-05-22 14:15:41 14663 2

原创 第一个Python小游戏

猜数游戏,规则:1. 程序生成1-10的一个随机数2. 每次猜数,程序给出提示(或大,或小)3. 一共3次机会程序:#p2_1.py"""--- 第一个小游戏 ---"""#长字符串import randomsecret = random.randint(1, 10)guess = int(input("不妨猜一下我现在心里想的是哪个数字:"))if guess =

2018-02-02 21:02:43 3811

转载 什么是架构,什么是架构师?

什么是架构,什么是架构师?——这似乎是聊架构话题时永恒的问题。从内心讲我真的不想回答架构具体需要做什么,架构师应该具体负责什么。因为从实际情况看,在不同的系统层级,不同的需求下架构师的职责也会不同;从不同的技术角度看,架构师又是个变色龙——一时是技术的大拿,一时是技术的规划者,一时是技术团队的指挥者。那么,该如何回答“什么是架构,什么是架构师”这个问题呢?这或许需要

2017-12-28 13:27:06 440

原创 Lambda表达式之map reduce & groupingBy

1. map & reducereduce操作可以实现从一组值中生成一个值。count、min、max方法,因为常用而被纳入到标准库中。事实上,这些方法都是reduce操作。2. 使用收集器前面使用过collect(toList())在流中生成Lst,但是有时人们还希望从流中生成其他集合(如:Set或Map),或者你希望定制一个类将你想要的东西抽象出来。这就是“收集器”,只

2017-09-28 21:08:05 2942

原创 软件设计原则之职责单一原则

职责单一原则作为面向对象的SOLID原则之首,可见其重要性了,职责单一原则使得软件系统更易于开发,测试和维护,在设计架构上也体现了高内聚低耦合的特性。面向对象的S.O.L.I.D 原则一般来说这是面向对象的五大设计原则,但是,我觉得这些原则可适用于所有的软件开发。Single Responsibility Principle (SRP) – 职责单一原则关于单一职责原则,其核心的思

2017-09-01 17:05:20 576

原创 IntelliJ 使用心得

最近加入了新的公司HP,IDE从Eclipse转到IntelliJ的同学,适应快捷键最快的方法就是在IntelliJ里应用Eclipse的快捷键,如下图:

2016-11-11 19:01:55 371

原创 JDK动态代理与Spring AOP

前段时间通过深入研究Spring框架,发现其使用了很多设计模式使其具有良好的架构,其中就包括了很多的代理模式。我们知道,代理模式有如下2种实现方式:1. 被代理的类和原始类实现同一个接口,然后代理类通过聚合原始类的方法,来实现代理的功能;2. 被代理的类继承原始类,然后重写原始类的方法并且织入代理功能,来实现代理。了解了代理模式,这里就可以深入探讨一下Spring的AOP了,Sprin

2016-10-01 16:29:13 532

原创 使用jmap和MAT分析JVM堆内存

我的一台生产环境机器每次运行几天之后就会莫名其妙的宕机,分析日志之后发现在tomcat刚启动的时候内存占用比较少,但是运行个几天之后内存占用越来越大,通过jmap命令可以查询到一些大对象引用没有被及时GC,这里就要求解决内存泄露的问题。

2016-09-07 16:25:29 28776 6

原创 Java EE 组件机制

前言:在开发Java EE应用时,考虑到应用的可扩展性,有时候需要在不改变核心代码的情况下,给某个功能模块扩展功能,比如说:一个电商网站的会员注册模块,这是一个核心模块,在这个核心模块的基础上要扩展一个功能,即用户注册完成之后需要额外给用户手机发一条短信。为了完成这么一个任务,有必要引入Java EE的组件机制。1. 什么是组件机制一个应用的核心功能也可以是很多组件组成的,在后台可以安装或

2016-07-12 20:26:34 882

原创 Linux 下 Tomcat JDK 设置

应用场景:如果在一台Linux主机上要部署多个tomcat,  且这多个tomcat使用的JDK版本还不一样,如图:现需要变更红框中的jdk版本为1.6,在这种情况下就需要给每一个tomcat指定其环境变量。方法:1.  下载和安装JDK,网上已经有详细的步骤,步骤略。假设下载安装完成后,jdk1.6的安装路径为:/opt/jdk1.6.0_29/2. 给t

2016-04-20 09:54:45 711

原创 swing入门教程(五) swing其他重要概念

——关于Swing 布局、事件和模型。既然您已经知道了大多数(肯定不是全部)可以用来制作 UI 的组件,那么就必须实际用它们做些什么。您不能只是随意地把它们放在屏幕上,然后就指望它们立即就能工作。您必须把它们放在特定的点上,对它们的交互作出反应,然后根据交互更新它们,用数据填充它们。要填满 UI 知识的这片空白,还需要更多地学习 UI 的其他重要部分。所以,让我们来研究以下内容

2016-02-05 10:42:24 1672

原创 swing入门教程(四) 附加的swing小部件(下)

——在这一节中,我将介绍 Swing 库中的其他全部组件、如何使用它们、它们看起来是什么样的,等等,这部分内容应当让您更好地了解 Swing 为 UI 开发人员提供了什么。JOptionPaneJOptionPane 是在 Swing 中类似“快捷方式”的东西。通常,作为 UI 开发人员,您需要向用户呈现快速信息,让用户了解错误和信息。甚至可能想得到一些快速数据,例如名称或数字

2016-02-05 10:37:54 1854

原创 swing入门教程(三) 附加的swing小部件(上)

——在这一节中,我将介绍 Swing 库中的其他全部组件、如何使用它们、它们看起来是什么样的,等等,这部分内容应当让您更好地了解 Swing 为 UI 开发人员提供了什么。JComboBox我们从 JComboBox 开始介绍。组合框与下拉选择相似,区别在于使用组合框时用户可以不从列表中选择项目,还可以选择一个(而且只有一个)项目。在某些版本的组合框中,还可以输入自己的选择。浏览器

2016-02-05 10:34:52 3283 1

原创 swing入门教程(二) 简单的swing小部件

——就像所有的“x 入门”教程一样,本教程也包含必不可少的 HelloWorld 演示。但这个示例不仅对观察 Swing 应用程序如何工作有用,还对确保设置正确很有用。一旦使这个简单的应用程序能够成功运行,那么之后的每个示例也将能够运行。JLabelSwing 库中最基础的组件是 JLabel。它所做的正是您所期望的:呆在那儿,看起来很漂亮,描述其他组件。下图显示了

2016-02-05 10:26:13 6669

原创 swing入门教程(一) swing简介

——Swing 是 Java 平台的 UI 。UI 组件简介在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是“用户界面”。但是因为本教程的目标是要保证您不再只是个初学者,所以我们需要比这个定义更高级的定义。所以,我再次提出这个问题:什么是 UI?您可能把它定义成您按下的按钮、打字的地址栏 、打开和关闭的窗口,等等,这些都是 U

2016-02-05 10:17:36 13600

原创 JAVA与GUI

—— 有些东西永远比其他东西重要,自己去区分;有些概念永远值得花时间反复理解,自己去体会。  最近在维护公司的老项目,居然还在用Java Swing做客户端工具,如下图:  从第二张图片的版本号可以看出来,这个老家伙是2014年的产物,而且很可能之后一直没有更新过。但是没办法,老项目需要人维护,只有硬着头皮去学Java Swing。  因为Swing本来就是个早已经

2016-02-05 10:11:39 4449

原创 关于发展职业之外的爱好

看过了辉哥的大作 - 大龄程序员的未来在何方读后有感:这篇文章解决了我一直以来的迷惘,给了我力量,给我职业和人生指明了方向;文章很接地气,幽默的文风将程序员人生娓娓道来,很棒!!!其中最受用的一点是作者文中提到的 - 程序员应该有职业之外的兴趣:这点是我们必须要谈的,程序员的人生里不只有软件和工作,还应当有其他的。生活是多元中心的,要有一些其它的兴趣爱好,能够滋养心灵,修复纯技

2016-01-13 17:18:57 606

原创 银联在线支付接入总结

最近项目要求做银联在线支付,大致步骤如下:1. 下载银联在线支付SDK在银联商家技术服务中心下载,链接 -> https://open.unionpay.com/ajweb/index其实这就是个开发样例,签名和验签的算法不用改,主要是要修改配置文件acp_sdk.properties,改为自己工程的配置

2015-12-02 20:19:08 6878

原创 架构师之路

计划

2015-11-10 17:30:09 547

转载 一些软件设计的原则

转自:http://www.cnblogs.com/whitewolf/archive/2012/05/12/2497419.html      以前本站向大家介绍过一些软件开发的原则,比如优质代码的十诫和Unix传奇(下篇)中所以说的UNIX的设计原则。相信大家从中能够从中学了解到一些设计原理方面的知识,正如我在《再谈“我是怎么招聘程序”》中所说的,一个好的程序员通常由其操作技能、知识水

2015-09-29 11:03:19 442

原创 使用jQuery zTree插件快速实现目录树

ztree是JQuery的一个开源树形目录的插件,用来快速构建网站的树形目录结构,并且提供了功能丰富,利于扩展的API。只要引入jquery和ztree的库js,然后给ztree提供需要的json数据,并且设置好ztress的属性,就可以即刻展示出树形目录。总结下来,要使用ztree的话,必须要完成以下几步:

2015-09-08 14:57:37 7935

原创 CAS 实现的单点登录

——任何的成功都不是一蹴而就,经验需要慢慢积累、沉淀!项目里面用到了CAS单点登录,最近也简单的从应用层面简单研究了下CAS这个开源架构。1. 基本概念:cookie, session, 会话cookie, jssessionid- cookie 和 session机制都是为了解决HTTP协议的无状态性而生的- cookie 是客户端保存用户信息的机制- sessi

2015-08-31 15:58:42 5326 1

原创 Nginx + Tomcat 实现动静分离

因为基于不同的协议传输消息,一般的网络架构都是前端是Apache 或者 Nginx处理静态请求,Tomcat处理动态请求,做到动静分离,提高了网站和系统性能。以下记录本地用nginx+tomcat实现的动静分离的主要步骤。

2015-08-24 14:35:19 15893 3

原创 Nginx + Tomcat + Memcached 集群

Nginx + Tomcat + Memcached 的集群至少要考虑到2个方面的问题:1. 如何实现负载均衡?2. 如何实现session复制与同步?本文搜集了网上相关的材料,将Nginx + Tomcat + Memcached 的集群在window下的搭建过程总结如下。

2015-08-21 15:18:59 1289 1

原创 Apache + Tomcat + JK 集群

本文介绍了集群和负载均衡的基本开源实现,实现了用Apache分发请求到多个Tomcat里面对应的应用。

2015-08-17 10:55:59 987

原创 ZooKeeper 初探

本文简单介绍了ZooKeeper,并使用实例案例在本地环境快速搭建ZooKeeper环境,基本内容包括- zookeeper的单机模式(standalone mode) 和 集群模式(replicated mode)- Java binding 的使用- 应用场景

2015-08-13 18:15:27 885

使用Java生成Word

该资源为封装开源java2word组件后的spring boot工程,将资源解压并导入本地可直接运行为web服务,通过浏览器访问即可下载生成的word文档。

2020-11-11

tomcat+memcached 管理session

memcached 实现session复制与同步需要的一整套jar

2015-08-21

Java 实现的断点下载

该断点下载可应用于浏览器或者迅雷等下载工具的下载,实现方式有多种多样的,本文只研究了单线程的下载,迅雷等下载工具会自动将下载资源分块并记录每块的起始位置,然后根据系统性能,起多线程下载。

2015-08-07

空空如也

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

TA关注的人

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