自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 问答 (5)
  • 收藏
  • 关注

原创 【福尔摩斯探案集】数据库和应用程序时间出现14小时时差之迷

疑云初现  "1983年小巷,12月晴朗,夜的第七章,打字机继续推向,接近事实的那下一行"  耳边传来动听的音乐声,双眼微眯,本·福尔摩斯正沉浸在音乐描绘的场景中,忽然耳边响起一阵叮铃叮铃的清脆响声,原来是电话响了,本·福尔摩斯立马回过神来,"看来是案子上门了",本·福尔摩斯心想,然后接起电话,电话的那头,急切的声音传来:  "喂,请问是本·福尔摩斯探长吗?我们这里发生了一件奇怪的案子,需要您来查

2021-03-02 01:22:33 473

原创 【JAVA进阶架构师指南】之五:JVM性能调优

前言  首先给大家说声对不起,最近属实太忙了,白天上班,晚上加班,回家还要收拾家里,基本每天做完所有事儿都是凌晨一两点了,没有精力再搞其他的了.  好了,进入正题,让我们来聊聊JVM篇最后一个章节----JVM性能调优.童鞋们随便打开一个大厂的招聘岗位JD,应该都会有JVM调优相关的描述,其实招聘方不一定要求候选人真的对JVM调优有实际调优经验,但是至少得有思路,知道应该怎样进行JVM层面的性能调优,说实话,知道如何进行JVM层面的性能调优的人,在面试中确实是有加分

2020-06-13 02:49:08 260

原创 【JAVA进阶架构师指南】之四:垃圾回收GC

前言  在【JAVA进阶架构师指南】系列二和三中,我们了解了JVM的内存模型以及类加载机制,其中在内存模型中,我们说到,从线程角度来说,JVM分为线程私有的区域(虚拟机栈/本地方法栈/程序计数器)和线程公有区域(方法区和java堆),其中线程私有区域内存随着线程的结束而跟着被回收,GC主要关注的是堆和方法区这部分的内存. GC回收算法  GC如何确定...

2020-04-12 02:30:42 143

原创 【JAVA进阶架构师指南】之三:深入了解类加载机制

前言  在上一篇文章中,我们知道了JVM的内存划分,其中在说到方法区的时候说到方法区中存放的信息包括[已被JVM加载的类信息,常量,静态变量,即时编译的代码等],整个方法区其实就和类加载有关.类加载过程  类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段.它们开始的顺序如下图所示:...

2020-03-24 06:03:38 139

原创 【JAVA进阶架构师指南】之二:JVM篇

前言  谈到JAVA,就不得不提JVM---JAVA程序员绕不开的话题.也许有童鞋会说,我不懂JVM,但是我一样可以写出JAVA代码,我相信说这种话的童鞋,往往是只有1-3年的初级开发人员,对JAVA理解还不深,不明白JVM的重要性,那接下来我们来说说,为什么要学习JVM?  1.理解JVM,才能帮助我们写出更好,更健壮的代码.举个例子,以下代码的执行结果...

2020-03-21 02:52:23 218

原创 【JAVA进阶架构师指南】之一:如何进行架构设计

前言  本博客是长篇系列博客,旨在帮助想提升自己,突破技术瓶颈,但又苦于不知道如何进行系统学习从而提升自己的童鞋.笔者假设读者具有3-5年开发经验,java基础扎实,想突破自己的技术瓶颈,成为一位优秀的架构师,所谓java基础扎实,比如:  1.java语言三大特性.  2.java语言八大基本类型及其表示范围.  ...

2020-03-20 03:52:44 251

原创 如何正确使用redis分布式锁

前言  笔者在公司担任技术面试官,在笔者面试过程中,如果面试候选人提到了reids分布式锁,笔者都会问一下redis分布式锁的知识点,但是令笔者遗憾的是,该知识点十个人中有九个人都答得不清楚,或者回答错误,这让笔者有了写这篇文章的想法,来帮助童鞋们正确认识reids分布式锁.什么是分布式锁?为什么需要分布式锁?  在java中,在单进程多线程的情况下,...

2020-03-02 02:02:01 559

原创 Spring-cloud微服务实战【十】:消息总线Bus

  回忆一下,在上一篇文章中,我们使用了分布式配置中心config来管理所有微服务的配置文件,那这样有没有什么问题?有,那就是无法配置文件无法自动更新,当我的git服务器上的配置文件更新后,不能同步更新到config-server,需要config-server重启才能生效,这在生产环境下,肯定是不可以的,我们需要当git服务器的文件更新后,自动同步到config-server...

2020-02-29 03:15:15 260

原创 Spring-cloud微服务实战【九】:分布式配置中心config

  回忆一下,在前面的文章中,我们使用了spring cloud eureka/ribbon/feign/hystrix/zuul搭建了一个完整的微服务系统,不管是队内还是对外都已经比较完善了,那我们的系统是否还有值得继续优化的地方呢?答案肯定是有的,那就是分布式配置中心config.那什么是分布式配置中心,我们为什么又需要分布式配置中心呢?什么是分布式配置中心?&emsp...

2020-02-24 21:42:29 901

原创 Spring-cloud微服务实战【八】:API网关zuul

  在前面的文章中,我们先后使用了eureka/ribbon/feign/hystrix搭建了一个看似完美的微服务了,那是否还有值得继续优化的地方呢?答案肯定是有的,如果从整个微服务内部来看,基本已经完整了,但是我们的微服务不可避免的需要对外部提供服务,此时,我们将关注点聚焦在对外提供服务这一块.  假如有一个外部服务,需要调用我们的整个微服务中许多不同的...

2020-02-12 01:26:32 203

原创 Spring-cloud微服务实战【七】:服务熔断与降级hystrix

  在之前的文章中,我们先后介绍了eureka,ribbon,feign,使用eureka集群的方式来保证注册中心的高可用,在eureka中使用ribbon进行负载均衡,使用feign接口替换手动编码请求接口的代码,整个微服务看似基本完成了,那是否有继续值得优化的地方呢?答案肯定是有的,并且是整个微服务最重要的一环,那就是服务的热熔断与降级,那为什么服务熔断与降级是最重要的一环...

2020-02-04 01:33:36 431

原创 Spring-cloud微服务实战【六】:接口服务feign

在上一篇文章中,我们使用了ribbon进行负载均衡,但是仔细思考一下,我们的请求封装和调用以及结果的返回都是我们自己编码完成的,如果需要调用的接口很多,那么无疑开发量是比较大的,那有没有比较好的方式呢?答案就是feign.让我们先通过代码来看一下feign的使用:首先,我们需要复制一份consumer的代码,并且重命名为dhp-micro-service-consumer-feign:然后修改代...

2020-01-21 00:22:14 166

原创 Spring-cloud微服务实战【五】:负载均衡ribbon

在实战三中,我们曾说到,我们需要一种机制,可以在访问服务的时候不需要关心IP,并且还能提供类似Nginx的负载均衡的功能,其实在上一篇文章中我们已经使用过spring-cloud的负载均衡功能了,还记得我们在配置restTemplate的时候加的注解吗?@LoadBalanced就是告诉restTemplate,需要使用负载均衡,并且,在eureka-client消费者消费服务的时候,只能通过@...

2020-01-20 01:04:07 112

原创 Spring-cloud微服务实战【四】:eureka注册中心(下)

回忆一下,在上一篇文章中,我们使用eureka作为注册中心,将producer注册到eureka,并且在consumer中通过eureka发现producer服务进行调用,让我们来分析一下,这样是否已经足够完美,还有没有什么问题?1.首先,eureka没有任何安全验证,任何应用都可以访问,这显然不安全,因此eureka也需要使用spring-security配置用户密码验证.2.其次,所有服务注册...

2020-01-20 00:24:18 166

原创 Spring-cloud微服务实战【三】:eureka注册中心(中)

  回忆一下,在上一篇文章中,我们创建了两个springboot项目,并且在consumer项目中通过restTemplate进行HTTP通信,成功访问到了producer提供的接口,思考一下这样的实现方式有什么问题?  1.consumer必须知道producer的IP,才能调用对方的HTTP接口,并且在consumer代码中使用硬编码的方式来访问prod...

2020-01-19 01:10:33 170

原创 Spring-cloud微服务实战【二】:eureka注册中心(上)

前言  本系列教程旨在为大家演示如何一步一步构建一整套微服务系统,至于其中的数据库用什么,订单ID如何保持唯一,分布式相关问题等等不在我们讨论范围内,本教程为了方便大家后续下载代码运行测试,不依赖任何其他诸如缓存、数据库之类的资源,此类操作我们在项目中使用代码的方式来模拟。  我们的实战过程会教童鞋们一步一步进行演化,让童鞋们了解一个微服务的开发流程:&...

2020-01-18 11:45:26 947

原创 Spring-cloud微服务实战【一】:微服务的概念与演进过程

本文是一个系列文章,主要讲述使用spring-cloud进行微服务开发的实战。在开始之前,我们先说一下从传统的单一部署架构到微服务的发展过程,以便让童鞋们更好的理解微服务的概念与演进过程。1.单体架构  在互联网时代早期,彼时还没有微服务的概念,企业开发应用,将所有功能都集中到一个应用中,典型的特征是tomcat servlet jsp mysql,然后将应用打包...

2020-01-17 02:37:35 923

原创 真正意义的Spring动态切换数据源

写这篇博文的目的,是因为网上虽有林林总总的各种spring动态切换数据源教程,但是都不太满足我的需求,大部分教程都能实现切换数据源,但是在我看来,都没有真正意义的实现动态切换,举个例子,许多教程使用@DataSource(value="xxx")来切换数据源,我并不太认同这种方式。 我所理解的动态切换数据源,不仅仅是使用@DataSource(value="xxx")切换数据源,...

2019-03-16 00:47:14 586

真正意义的spring动态切换数据源源码

个人博文----真正意义的spring动态切换数据源 对应的源码,使用spring+springmvc+mybatis开发

2019-03-15

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

TA关注的人

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