Java EE

Spring Boot 2.3 优雅关闭新姿势,真香!

最后都变了- 提交于 2020-10-18 03:23:31
最新的 Spring Boot 2.3 发布快半个月了: https://spring.io/blog/2020/05/15/spring-boot-2-3-0-available-now 其中有个新特性叫: Graceful shutdown(优雅关闭) 之前也分享过这样的文章,现在竟然出品官方姿势了,新功能嘛,肯定得去官方看下,下面是官方的说明: Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. When a grace period is configured, upon shutdown, the web server will no longer permit new requests and will wait for up to the grace period for active requests to complete. 下面,栈长给大家总结下: 优雅关闭支持所有 4 个嵌入式 Web 服务器:Jetty, Reactor Netty, Tomcat, Undertow

阿里技术官分享Java架构师成长笔记,带你一步一脚印修成正果

只愿长相守 提交于 2020-10-17 09:03:16
关于作者 作者常说,做学问就像爬山,从山脚出发的人很多,能爬到山顶的却寥寥无几。有些人爬得很快,到达半山腰就盖了一所房子住在那里,对爬向山顶没有太大的兴趣。而能够登顶的人,除了要具备必要的技能外,更要有坚强的毅力,不被沿途景色所迷,不为声色犬马所扰。坚韧不拔,直至峰顶,终成正果。 我听过很多关于作者曾经在日工作的故事:在东京的通勤电车上读东野圭吾的小说学习日语;将午饭时间从一小时缩短到三十分钟,为的是每天按时浏览各大IT技术网站的最新动态;每次开会之后都要把发言内容条分缕析,用以分析日本人的做事方法和思维逻辑;甚至在公司举办的年会上,在出外郊游的温泉旁,在烧烤聚会的篝火边,看到的都是他沉思默想的背影。这种争分夺秒刻苦钻研的学习精神实为难能可贵。 我为这部内容详实的著作而赞叹,更为作者十余年如一日的拼搏精神所折服。望其再接再厉,秉志前行。 关于著作 软件架构师是每个程序员职业生涯中内功心法修炼的终极目标。要达到这个目标需要具备“十八般武艺,八十种技巧”,本书正是优秀软件架构师的一本必读书。本书总结了JavaEE软件架构师应该具备的架构设计相关技能体系,希望可以成为程序员朋友们架构师成长之路上的铺路石。 从形上看,架构是系统结构的骨架,支撑和连接各个部分;从神上看,架构是系统设计的灵魂,深刻体现了业务技术实现的本质。从纵向架构上看,架构涉及由客户端发送请求到服务器处理

JVM干货!最全最详细的JVM性能优化专题

雨燕双飞 提交于 2020-10-17 08:48:26
俗话说,路要一步一步走,饭要一口一口吃。我们学java的也一样,不能上来就给你上那些消息队列呀,分布式架构思维那种文章。 对vm-性能优化不太熟悉,掌握不透彻的小伙伴可以借此学习一下。对vm-性能优化很熟悉,掌握很好的小伙伴可以当作复习巩固,写的不一定你们都会哟! 话不多说,咱们直接上干货! 类加载机制深度剖析 1、类加载过程 多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。 主类在运行过程中如果使用到其它类,会逐步加载这些类。 注意,jar包里的类不是一次性全部加载的,是使用到时才加载。 类加载到使用整个过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 验证:校验字节码文件的正确性 准备:给类的静态变量分配内存,并赋予默认值 解析:将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main()方法)替换为指向数据所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成)

牛掰!Spring Boot 2.3.0 新特性:如何优雅停机?

北城以北 提交于 2020-10-17 02:47:37
1.什么是优雅停机 先来一段简单的代码,如下: @RestController public class DemoController { @GetMapping("/demo") public String demo() throws InterruptedException { // 模拟业务耗时处理流程 Thread.sleep(20 * 1000L); return "hello"; } } 当我们流量请求到此接口执行业务逻辑的时候,若服务端此时执行关机 (kill),spring boot 默认情况会直接关闭容器(tomcat 等),导致此业务逻辑执行失败。在一些业务场景下:会出现数据不一致的情况,事务逻辑不会回滚。 2.graceful shutdown 在最新的 spring boot 2.3 版本,内置此功能,不需要再自行扩展容器线程池来处理,目前 spring boot 嵌入式支持的 web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 Servlet 的 web 应用程序都支持优雅停机功能。我们来看下如何使用: 当使用 server.shutdown=graceful 启用时,在 web 容器关闭时,web 服务器将不再接收新请求,并将等待活动请求完成的缓冲期。 3.配置体验 此处支持的 shutdown

springboot中Thymeleaf和Freemarker模板引擎的区别

为君一笑 提交于 2020-10-17 01:41:30
前言 这两个都是属于模板引擎,但是各有各的好处, enn,在市面上比较多的也就是jsp、freemarker、velocity、thymeleaf等页面方案。 Thymeleaf和Freemarker的区别 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。 目前企业中:主要用Freemarker做静态页面或是页面展示 优点: 1、不能编写java代码,可以实现严格的mvc分离 2、性能非常不错 3、对jsp标签支持良好 4、内置大量常用功能,使用非常方便 5、宏定义(类似jsp标签)非常方便 6、使用表达式语言 缺点: 1、不是官方标准 2、用户群体和第三方标签库没有jsp多 Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用。 Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑

个人作业——软件工程实践总结&个人技术博客

a 夏天 提交于 2020-10-16 18:55:46
这个作业属于哪个课程 2020春s班 这个作业要求在哪里 个人作业——软件工程实践总结&个人技术博客 这个作业的目标 软件工程实践总结&个人技术博客 作业正文 如下 其他参考文献 无 回望 (1) 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么? 增强了iOS开发能力,但是对于软件后端开发技术不够熟练。 软件需求分析和设计阶段的分析技术也不够熟练,缺乏更多的项目实践。 (2) 你在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前你的所学所得,你达到了当时的预期值吗? iOS开发能力达到了预期值 机器学习未达到预期值 (3)哪一次作业让你印象最深刻?为什么? 结对第二次作业,因为这一次作业是我第一次用学到的后端技术写项目,第一次尝试爬取数据,感觉很有趣! (4)在课程问卷中,我们统计了你在课程上花费的精力和提升;现在请你再次将这些数据罗列出来,作为个人的记录。包括以下内容: 统计一下,你在这门软件工程实践中,一共完成了多少行的代码: 4k~5k 软工实践的各次作业分别花了多少时间?(做一个列表) 作业内容 时长(h) 软工实践寒假作业(1/2) 3 软工实践寒假作业(2/2) 5 结对第一次

网易云服务器使用https

独自空忆成欢 提交于 2020-10-16 13:24:43
1、在163yun申请ssl证书,下载 2、利用 https://www.myssl.cn/tools/merge-pfx-cert.html 、 https://www.trustauth.cn/SSLTool/tool/export_pfx.jsp 在线工具生成pfx证书 3、到iis服务管理器中添加证书 4、在iis对应站点下编辑绑定 来源: oschina 链接: https://my.oschina.net/u/4360916/blog/4312853

不可思议,阿里内部中台战略思想与架构实战;含内部实施手册

こ雲淡風輕ζ 提交于 2020-10-16 12:56:29
最近在读一本书,叫做《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》,在写此文时本书还没有看完,因为担心如果把书全部看完后再来写这篇文章,很多精彩的内容可能已经忘记了,所以中途先写一篇来分享给大家。 企业IT架构转型之道阿里巴巴中台战略思想与架构实战 讲述了阿里巴巴的技术发展史,同时也是一部互联网技术架构的实践与发展史。 目录 第一部分引子 第1章阿里巴巴集团中台战略引发的思考 1.1 阿里巴巴共享业务事业部的发展史 1.2 企业信息中心发展的症结 第2章构建业务中台的基共享服务体系 2.1 回归SOA的本质一服务重用 2.2 服务需要不断的业务滋养 2.3 共享服务体系是培育业务创新的土壤 2.4 赋予业务快速创新和试错能力 2.5 为真正发挥大数据威力做好储备 2.6 改变组织阵型会带来组织效能的提升 第二部分共享服务体系搭建 第3章分布式服务框架的选择 3.1 淘宝平台"服务化”历程 3.2 "中心化"与"去中心化"服务框架的对比 3.3 阿里巴巴分布式服务框架HSF 3.4 关于微服务 第4章共享服务中心建设原则 4.1 淘宝的共享服务中心概貌 4.2 什么是服务中心 4.3 服务中心的划分原则 第5章数据拆分实现数据库能力线性扩展 5.1 数据库瓶颈阻碍业务的持续发展 5.2 数据库分库分表的实践 第6章异步化与缓存原则 6.1 业务流程异步化 6.2

应届毕业程序员找工作,企业最看重你们这些地方

旧城冷巷雨未停 提交于 2020-10-16 06:20:23
这篇文章来谈一下应届生找工作的问题,最近有很多在校大学生跟我咨询很多企业很多工作要求有工作经验,那这样没工作经验的人都去哪学经验,要求工作经验真的有必要吗? 应届生毕业找工作,一直有一个困惑是什么,刚毕业没有工作经验,但是呢,企业又需要你有工作经验,但是你刚毕业找不到工作不可能有工作经验,好像陷入了一个死循环。其实这种情况企业是不可能不知道的,所以工作经验对于应届生来说不是硬性的考察标准。 那企业需要考察哪些东西来选择应届生呢? 第一,你是否参加过一些重要的比赛或者是校内竞争,比如说编程比赛,数学建模比赛这些,你在其中有没有拿过奖励,如果你没有得奖,那么也无所谓,重在参与,只要你参与了,就说明你有这个能力,所以只要有机会,我建议所有在校大学生多去参加这样的比赛或者是活动,这些东西对于你未来找工作其实是很重要的,大学里面的一些比赛其实并没有那么难,只要你多动动脑子,你会发现基本可以获得一个名次。这个名词对于你未来找工作是很重要的。 第二,专业很重要,这就是所谓的科班出生,科班出生指的是和计算机行相关专业,比如说计算机科学与技术,软件工程,大数据等等。这代表着你有很好的基础,比如说汇编原理,数据结构与算法操作系统,数据库等等,这代表你经过系统化正规化的学习你在着方面有过很好的培训和了解,最重要的是有娘好的逻辑思维。 第三,项目经验,项目经验一直都是应届生的一个硬伤

三个月吃透24岁阿里P7强推的406页java工程师修炼之道,入职蚂蚁

瘦欲@ 提交于 2020-10-15 21:03:21
前言 Java开发一直是当前互联网领域最火热的开发技能之一,Java 工程师也一直是需求量非常大的开发职位。 下面来看看2020年Java开发的具体就业情况: 2020年Java工程师的需求占全部需求量的60%-70%,3-5年开发经验的Java工程师薪水年薪10~30万元,Java的发展前景好,像百度、京东、阿里巴巴等都在使用Java开发。 在各大招聘网站上搜索市场需求量大,可直观看出Java程序员、Java工程师的岗位有很多,薪资待遇普遍偏高。Java应用广泛,PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等行业都离不开Java。 来看看最新阿里杭州的招聘职位描述和要求: 再来看看字节跳动最新招聘信息: 既然已经知道了岗位需求,那么就得压下心来学习,今天给大家分享的就是24岁阿里P7黄师傅推荐学习的406页java工程师修炼之道,大家要合理利用好!! 本文主要针对一名合格的Java工程师的必备技能做了大纲性的总结和阐述。 内容包括了工程化、常用开发框架、数据存储、数据传输、Java 编程高级知识、性能优化、安全技术等内容,基本涵盖了Java工程师需要掌握的绝大部分技能点。 目录 主要内容 第1章后端技术导言 本章主要从总体上描述后端技术的概念、组成、作用、需要的知识点,并给出了学习后端技术的建议。 第2章Java项目与工程化