自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (1)
  • 收藏
  • 关注

原创 idea冲突包解决方法

Java项目开发时经常会出现jar包冲突,导致项目无法启动或者运行期间报错,比如经常碰到的运行时异常ClassNotFoundException或NoSuchMethodError。本文从产生原因和解决办法两个方面去讲解。首先了解下maven的机制。在Java项目中,我们经常用到maven来构建,应该都比较熟悉它的用法。现在简单回顾一下它的概念和作用。Maven 可以统一管理所有的依赖 jar,甚至是不同的版本。程序员也可以动态地将自己写好的模块打包成 jar 包让它管理。需要的时候,可以直接通过简单的

2020-11-13 23:05:12 3172

原创 ReentrantReadWriteLock深度介绍

一、ReentrantReadWriteLock是什么,他的特性是什么?锁:可重入的读写锁 可重入:类似synchronized,如果不支持读锁重入,会死锁 读写分离:两把锁隔离,提高锁效率,读同步,读写互斥,写写互斥,读读不互斥 支持 fair unfair 支持锁降级,不支持升级为支持降级,不支持升级?请读者思考?二、ReentrantReadWriteLock类继承关系,与...

2020-04-19 23:22:42 201

原创 安装K8S时的Linux服务器免密登录操作

由于分布式集群的规模很大,各种面向集群的版本发布和软件包安装,都需要登录服务器,个人之前利用自动化ansible工具安装K8S集群,涉及各种大量的软件包安装和文件配置,免密登录对提高操作部署的效率非常有必要。我当时安装的是三台服务器,分别如下:linux服务器A(192.168.43.130, user:root)linux服务器B(192.168.43.131, user:roo...

2020-03-25 22:35:51 1002

原创 JVM触发GC的条件和时机

触发MinorGC(Young GC) 虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间 1、如果大于的话,直接执行minorGC 2、如果小于,判断是否开启HandlerPromotionFailure,没有开启直接FullGC 3、如果开启了HanlerPromotionFailure, JVM会判断老年代的最大...

2020-02-19 23:27:28 2115

原创 区块链学习简介

简介 互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付信息。虽然这类系统在绝大多数情况下都运作良好,但是这类系统仍然内生性地受制于“基于信用的模式”(trust based model)的弱点。我们无法实现完全不可逆的交易,因为金融机构总是不可避免地会出面协调争端。而金融中介的存在,也会增加交易的成本,并且限制了实际可行的最小交易规模,也限制了日常的小额支付交...

2020-02-17 22:50:45 291

原创 技术之路你并不孤单,我与你同行

Java提供多线程机制,在并发时以多个线程来处理每个请求的方式完成请求和响应。然而,广大程序员在实际编程时会遇到各种各样的问题和疑惑,在面对这些疑难杂症时,有的同学通过百度或谷歌迅速精准的搜索到解决方法,然后大功告成,在紧张的工作节奏中完成了领导交代的任务,待下次又出现这类问题时,再次百度或谷歌,如果哪天断网你还无法解决问题了!?我想说的是,一定要真正的理解问题背后的原因,比如线程死锁,到...

2020-02-13 14:46:29 140

转载 java过滤html标签获取纯文本信息

package com.lyt.base.util; import java.util.regex.Pattern; public class FilterHtmlUtil { public static String Html2Text(String inputString){ String htmlStr = inputString; //含html标签的字符串...

2019-07-15 09:26:00 159 1

原创 【IM产品开发系列之Redis发布订阅】SpringBoot2.0中使用redis的发布订阅模式

最近项目组要做个IM即时通讯工具,用于渠道营销人员使用。拿到需求后,一时茫然不知如何实现,之前也没做过IM的经验,于是花了2天研究业界,设计个方案,拉上项目组(项目经理、技术经理和几个核心研发人员)评审通过,开始组建团队开工干活。今天主要介绍下用户上线后触发聊天列表的推送机制。 聊天列表主要是:发送者、未读消息条数、最近一条消息内容、最近一条消息发送时间、消息全局...

2019-06-04 21:43:15 773

原创 【技术小常识之排查错误】org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected

今天做了个查询数据库功能,用的Spring的JdbcTemplate的查询方法queryForObject,结果业务查询时出现如下错误:之前一直未出现类似问题,然后深入源码DataAccessUtils.java,据此分析应该是查询结果集为空,导致抛出异常EmptyResultDataAccessException,防止用户未对数据做判断,提高程序健壮性;如果结果集大于1也会报错...

2019-04-22 21:50:14 5156 1

原创 微服务注册和发现组件之consul

上一篇文章提到服务发现的组件Eureka,大概介绍了他的原理和架构。除此之外还有很多提供类似服务发现和注册的技术组件,本篇重点讲述consul。 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Va...

2019-03-31 22:08:42 322

原创 微服务注册和发现组件Eureka

在大型系统架构中,会拆分多个子系统。以大型电商系统为例,一般拆分为以下几个核心模块:会员中心、商品中心、订单中心、库存中心、支付系统、积分系统等。这些系统实现的功能包括:调用外部接口、提供接口给外部调用、自身的业务逻辑。如何管理这些大量的接口服务,这些服务元信息如何共享给所有的调用者,这时需要一个中心化的服务元信息管理平台。而作为SpringCloud生态圈中的核心组件,注册中心Eurek...

2019-03-07 22:45:16 379 1

原创 【微服务和RPC区别】SpringCloud和Dubbo对比

概念:Dubbo RPC:基于TCP或HTTP的远程过程调用(就像在本地调用一样),RPC强调的是远程调用。spring cloud:基于springboot,而springboot是基于HTTP协议REST风格的RPC。对比:1、协议:服务间通信协议不同,Dubbo是基于TCP协议的rpc,spring cloud基于http协议。2、RPC避免了上面提到的原生RPC...

2019-03-03 21:50:51 2742

原创 微服务架构介绍

微服务最近几年异常流行起来,很多企业的系统架构从传统架构向分布式架构转型,分布式架构里微服务架构成为主流。结合自己参与的微服务架构改造项目,讲述下个人对微服务架构的理解和心得。1、微服务架构提出的目的?微服务是系统架构上的一种设计风格,类似RESTFUL是一种资源访问风格,而不是具体的技术一样。它的内涵是将一套原本独立的系统拆分多个微型服务,微服务内部高内聚,服务之间低耦合。服务之间通...

2019-02-27 23:15:32 212

空空如也

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

TA关注的人

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