自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

弹指天下

学而不思则罔,思而不学则殆

  • 博客(452)
  • 资源 (2)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于架构师职责的最完美解答

不想到将军的士兵不是好士兵,同样不想当架构师的程序员不是好程序员。每一个程序员都怀有一个成为架构师的梦想,对架构师满怀憧憬和敬意。但是架构师的职责是什么?

2021-04-07 15:53:27 16 1

原创 码农和CTO的差距到底在哪?

码农和CTO的差距到底在哪?混迹IT行业多年,仍然还是普通的码农一枚。最近偶然拜读了资深CTO人月大佬的博客,收益匪浅,字里行间都是对架构的深度认知,而非简单的技术方案的陈述和前篇一律的面试宝典。

2021-04-07 15:21:38 32 1

转载 再论数字化转型-转什么,如何转?

今天准备再写一篇文章来谈下企业数字化转型。重点还是围绕数字化转型的本质究竟是什么?企业如何进行数字化转型这两个关键点。前面我谈得比较多的是云原生,微服务,中台等,而这些本身仅仅是数字化转型能力框架中的技术支撑平台底座。这个技术平台最终还是需要为业务目标和战略服务,因此搞清楚企业进行数字化转型的内在诉求才是最重要的。1.数字化转型概述首先还是看下对于数字化转型的一个基本定义,我们在这里引用两个定义,一个是百度百科的定义,一个是IDC的定义。先看下百度百科上对数字化转型定义如下:数字化转型(Dig.

2021-04-02 17:06:43 76

转载 微服务系列:全链路监控系统说明

微服务系列:全链路监控系统说明

2021-04-02 16:17:06 24

原创 还不会分布式事务,seata xa模式入门实战送上

还不会分布式事务,seata xa模式入门实战送上

2021-04-01 18:00:19 40

原创 金三银四,资深面试官教你如何准备简历

金三银四,资深面试官教你如何准备简历

2021-04-01 15:20:19 52 1

原创 学习微服务你必须了解的设计模式

学习微服务你必须了解的设计模式

2021-03-29 16:33:42 57 1

原创 最网最全bug定位套路,遇见bug再也不慌了

最网最全bug定位套路,遇见bug再也不慌了

2021-03-26 17:52:40 1250 12

原创 微服务系列:Spring Cloud核心组件图解

微服务系列:Spring Cloud核心组件图解

2021-03-25 14:40:02 50 2

原创 微服务系列:互联网架构演进

互联网架构从简到繁的演进经历了单体架构-分布式架构-SOA架构-微服务架构以及最新的service mesh的演进过程。

2021-03-25 13:37:39 30 2

原创 微服务系列:nacos注册中心实战

微服务系列:nacos注册中心实战

2021-03-20 15:18:57 43

原创 微服务系列:nacos配置中心实战

微服务系列:nacos作为配置中心如何使用

2021-03-19 18:46:12 65

原创 微服务系列:nacos简介和安装部署

微服务系列:nacos实战指南(一),介绍nacos的作用,部署安装,mysql持久化配置,权限认证的开启。

2021-03-16 15:06:31 59

原创 你不知道的小技巧:轻松解决maven中jar包依赖问题

你不知道的小技巧:轻松解决jar包依赖问题。总结maven使用中的jar包冲突解决方法。重点分享通过maven仓库的官网查看jar包的版本依赖关系,来解决版本依赖问题。

2021-03-11 16:22:28 58 3

原创 WebSocket系列:爱奇艺号 WebSocket集群推送网关

WebSocket系列:爱奇艺号 WebSocket集群推送网关

2021-03-08 11:47:44 67

原创 websocket系列:基于tio-websocket-spring-boot-starter实现

websocket系列:基于tio-websocket-spring-boot-starter实现

2021-02-23 18:22:28 217

原创 websocket系列:基于netty-websocket-spring-boot-starter轻松实现高性能websocket

基于netty-websocket-spring-boot-starter轻松实现高性能websocket

2021-02-23 15:23:46 204 4

原创 websocket系列:基于netty实现高性能websocket

基于spring boot + netty实现高性能的websocket

2021-02-23 13:40:55 100 2

原创 websocket系列:基于SockJS和STOMP实现

如何基于SockJS和STOMP实现websocket,构建交互式web应用。

2021-02-19 12:35:09 117

原创 websocket系列:基于spring-boot-starter-websocket实现

基于spring-boot-starter-websocket实现websocket

2021-02-18 14:49:14 684 3

转载 再见!深圳!再见!腾讯!

再见!深圳!再见!腾讯!大多数年轻人都是在深圳留下青春奋斗的泪水,最后背着行廊,无奈的回老家吧

2021-02-05 09:59:48 171

原创 websocket系列:基于jdk原生注解实现

在spring boot框架下基于jdk的原生注解实现websocket

2021-02-03 14:37:26 72 2

原创 websocket系列:协议详解

前言最近由于项目中用到了websocket,所以准备出一个系列文章,详细介绍websocket的使用。主要内容规划如下:websocket协议详解基于spring-boot-starter-websocket实现基于netty的实现基于框架的netty-spring-boot-start的实现使用STOMP消息实现一、简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 协议在2008年诞生,2011年成为国际标准。所

2021-02-02 15:28:05 93

原创 为什么设置-Xmx4g但是java进程内存占用达到8g?

前言不知道大家在开发过程中有没有遇到过类似的问题,明明通过JVM参数-Xmx4g设置了最大堆内存大小为4g,但是程序运行一段时间后发现占用的内存明显超过了8g,却并没有出现内存溢出等问题,那是什么东西占用了额外的内存空间呢?一、背景1.通过free -g查看服务器内存使用情况2.通过ps查看java进程项目启动命令为:java -Xmx6g -Xms6g - -XX:+UseG1GC -jar /home/pgcp/pgcp-0.0.1-SNAPSHOT.jar3.通过top命令查看资

2021-01-28 16:05:06 911 11

原创 浅谈程序员35岁职业危机

背景最近帮一位资深架构大佬内推,结果最后被人事告知由于年纪超过35岁而被婉拒。以往自己对于网上经常谈到的程序员只能干到35岁都是置若罔闻的态度,虽然嘴上也常常拿这话和朋友调侃,但内心却一直笃定,只要技术过硬,不愁找不到工作,颇有一番“技术在手,天下我有”的自信。然而这次发生在身边的真实事件,直接被打脸,也颇有“兔死狐悲”之感,毕竟自己离35岁的门槛也越来越近了。那么,作为一名技术人员,我们该做些什么来缓解自己35岁的职场危机呢?1.技术方面首先,技术实力始终是一个程序员在职业生涯中能保持竞争力最

2021-01-26 23:33:14 185 1

原创 惊悚,单个java进程占用700%的CPU

背景最近负责的一个项目上线,运行一段时间后发现对应的进程竟然占用了700%的CPU,导致公司的物理服务器都不堪重负,频繁宕机。那么,针对这类java进程CPU飙升的问题,我们一般要怎么去定位解决呢?一、采用top命令定位进程登录服务器,执行top命令,查看CPU占用情况,找到进程的pidtop很容易发现,PID为29706的java进程的CPU飙升到700%多,且一直降不下来,很显然出现了问题。二、使用top -Hp命令定位线程使用 top -Hp <pid> 命

2021-01-22 21:06:46 276 5

原创 删除list集合中特定元素的正确姿势

背景如何删除一个集合对象中的特定元素?小问题,但并不简单。常见异常:ConcurrentModificationExceptionjava.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911) at java.util.ArrayList$Itr.next(ArrayList.java:861)一.单线程情况下1.fori正向删除

2021-01-18 14:16:03 2701 11

原创 SpringBoot动态修改日志级别

前言为了减少日志频繁打印带来的性能影响,线上环境设置的日志级别一般都相对较高。而当出现生产问题需要排查的时候,可能需要适当降低日志级别(例如DEBUG)来打印更多的日志信息帮助定位问题。传统的做法一般是:1、配置里修改日志级别2、重启应用3、问题复现查看报错日志排查问题这个过程需要重启应用,比较麻烦,效率较低,而且针对大型在线项目,不可能随便停机重启。那么有没有一种方式在不重启应用的情况下实现动态修改日志级别呢?下面,让老万教你如何通过SpringBoot的actuator组件来实现动态修改日

2021-01-14 22:28:59 387 1

原创 分布式事务理论详解

前言随着分布式架构的越来越流行,分布式事物的问题在项目中也越来越普遍,那么究竟什么是分布式事物,在哪些场景会产生分布式事物呢?事务的具体定义事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚。简单地说,事务提供一种“要么什么都不做,要么做全部(All or Nothing)”机制。数据库本地事务ACID说到数据库事务就不得不说,数据库事务中的四大特性 ACID:

2020-11-19 15:52:18 103

原创 mysql索引使用心得总结

在实际操作过程中,应该选取表中哪些字段作为索引?为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引;索引使用心得总结:频繁作为查询条件的字段应该创建索引多表关联查询中,关联字段应该创建索引查询中统计或者分组字段,应该创建索引查询中排序的字段,应该创建索引尽量使用数据量少的字段创建索引,比如定义为text、image和bit的数据类型的列不要建立索引。更新频繁字段不适合创建索引。 尽量选择区分度高的字段创建索引,比如性别字段,男女未知,最多也就三种,区分

2020-10-24 22:07:03 111

原创 如何在gateway网关中聚合swagger

前言由于项目原因,需要将网关从zuul升级到gateway网关,由于 gateway网关底层是基于webflux的,导致原先在网关中集成的swagger不可用。那么如何在gateway网关中整合swagger呢?一、maven依赖配置核心是将swagger升级到了3.0.0版本。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sprin

2020-10-15 17:28:42 1152

原创 全网首发:Spring Cloud Gateway设置统一的请求前缀

前言最近由于项目中要引入websocket,而原来的zuul网关对websocket支持并不友好,所以将原先的zuul网关切换成了Gateway网关。踩了不少坑,其中的一个问题就是如何给Spring Cloud Gateway添加统一的请求前缀。在zuul网关中我们可以直接指定server.servlet.context-path属性,但是Gateway网关我们要如何配置呢?一、Spring Cloud Gateway工作原理说明这是官网的工作原理示意图:Gateway的工作原理:客户端请求

2020-10-15 16:39:05 1587

原创 Spring Boot Starter工程如何快速定位自动化配置类

前言现在Spring Boot越来越流行,而各种Spring Boot Starter工程由于其提供的自动化配置的特性,极大的提高了我们的开发速度。但同时也给定位问题,了解实现原理带来了一定的困难。而要了解Spring Boot Starter工程的底层原理,最核心的就是找到工程中的自动化配置类。本文根据自己的开发经验,总结以下快速定位自动化配置类的方法。由于最近在进行gateway的改造,就以 spring-cloud-starter-gateway来说明. <dependency&g

2020-10-15 15:27:11 130 1

原创 mysql系列:全网最全索引类型汇总

前言除了常见的普通索引,唯一索引,组合索引,大家还能说一下mysql中有哪些其他类型的索引吗?今天和大家一起总结mysql中有哪些索引类型。一、mysql中有哪些索引类型?聚簇索引 (Clustered Index)非聚簇索引主键索引(PRIMARY KEY)辅助索引(Secondary Indexes)HASH索引BTREE索引T-TREE索引R-Tree索引自适应hash索引(Adaptive Hash Index)唯一索引 (UNIQUE Indexs)普通索引 (No

2020-09-26 01:45:06 400

原创 mysql系列之InnoDB存储引擎的磁盘结构

前言之前已经介绍了InnoDB整体的结构,并详细介绍了InnoDB内存结构的各个组成部分及其作用,今天继续分析InnoDB存储引擎的磁盘结构。一、InnoDB的磁盘结构InnoDB的磁盘结构主要由以下几部分组成:1、表2、索引3、表空间4、Doublewrite Buffer5、Redo Log6、Undo Logs二、表空间InnoDB采用将存储的数据按表空间(tablesspace)进行存放的设计。InnoDB下有以下5种表空间:1、系统表空间 The System Ta

2020-09-24 17:21:30 187

原创 老万教你最简单接口幂等性控制

什么是接口幂等性接口幂等性,简单来说就是指一个接口调用一次和调用N次的效果是一样的,不会产生其他的副作用。注意:这里的效果一样和返回结果一样的区别,比如我们都知道查询接口具有天然的幂等性,但是多次调用查询接口的过程中,如果有其他操作对查询的数据进行了新增、修改、删除操作,那么查询接口的返回结果就会不一直,但是这并不能说明该查询接口不具有幂等性。场景说明典型场景,对指定订单发起一笔付款交易,无论交易接口调用一次还是N次,都只能扣用户账户一次钱。一般最简单的幂等处理就是通过订单状态来进行控制,伪代码

2020-09-22 20:33:22 179

原创 mysql系列之InnoDB存储引擎结构详解

前言InnoDB是Mysql数据库中最重要的存储引擎,搞清楚它的结构对理解它的各种机制的实现原理非常重要。今天和大家一起分享下InnoDB的结构。一、InnoDB结构由图可知:InnoDB的底层结构主要由2部分组成:内存结构和磁盘结构。二、内存结构详解1、Buffer Pool缓冲池是主内存中的一个区域,InnoDB在访问表和索引数据时会在其中进行缓存。 缓冲池允许直接从内存中处理经常使用的数据,从而加快了处理速度。 在专用服务器上,通常将多达80%的物理内存分配给缓冲池。缓存的单位是页

2020-09-17 00:02:22 184

原创 mysql系列之存储引擎

本篇主要介绍mysql的存储引擎,说明主要的几个存储引擎的特性及其差别。一、存储引擎介绍数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。MySQL 的核心就是存储引擎,不同存储引擎支持的特性各不相同。MySQL中的存储引擎是插件式存储引擎。MySQL 5.5.5 之后,InnoDB 作为默认存储引擎。MySQL中的存储引擎的控制级别是表级别,.

2020-09-14 01:03:09 97

原创 java打怪升级地图

文章目录前言一、java打怪升级地图1、java基础2、数据库3、编程强化4、软件项目管理5、热门技术框架6、分布式架构7、服务器中间件8、服务器技术9、容器技术10、业务解决方案总结前言技术人的道路没有容易二字,想要保持竞争力就要不停的学习。今天分享一个java学习的路线图,希望大家都能不停的打怪升级,成为武林高手。一、java打怪升级地图1、java基础java基础部分,内容其实真的不多,如果工作几年,面试的时候连面向对象编程的3大特性,集合之间的区别,抽象类和接口的区别,线程有几种创

2020-09-13 17:20:20 1180 3

原创 Spring boot + RabbitMQ延迟队列实战

一、背景延时队列顾名思义,即放置在该队列里面的消息是不需要立即消费的,而是等待一段时间之后取出消费。那么,为什么需要延迟消费呢?我们来看以下的场景:订单业务: 在电商/点餐中,都有下单后 30 分钟内没有付款,就自动取消订单。短信通知: 下单成功后 60s 之后给用户发送短信通知。失败重试: 业务操作失败后,间隔一定的时间进行失败重试。传统订单处理:采取定时任务轮训数据库订单,并且批量处理。其弊端也是显而易见的;对服务器、数据库性会有很大的要求,并且当处理大量订单起来会很力不从心,而且实时性也

2020-07-23 12:13:19 133 1

JSP经典教程

对jsp的知识要点讲解的很详细,很细致,并有很多示例代码,可以自己跟着打一下,有助于学习。我始终觉得学习编程要多看优秀的代码,自己要多敲代码。光看理论的知识是完全不够的。

2012-11-29

搭建eclipse+tomcat开发环境.pdf

详细说明了如何搭建eclipse+tomcat开发环境,并且解决了困扰很多人的一个问题。在环境配置都是正确的情况下,使用eclipse中新建的server不能访问tomcat的首页,访问Http://localhost:8080 会返回404 错误。 希望对你有用。

2012-12-03

斗者_2013的留言板

发表于 2020-01-02 最后回复 2020-05-24

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

TA关注的人 TA的粉丝

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