- 博客(17)
- 收藏
- 关注
原创 Eureka 学习之服务注册(一)
Eureka 学习之服务注册(一)1. 简介Eureka Server 服务注册中心是Spring Cloud Netflix 中的一个组件Spring Cloud Netflix 通过自动配置为Spring Boot应用程序提供Netflix OOS集成。通过一些简单的注释,可以快速配置和启用应用程序,并用成熟的Netflix组件构建大型分布式系统。其中包括服务发现Eureka,断路器Hys...
2019-08-02 00:12:50 193
原创 Java 代理模式深入浅出
Java 代理模式1. 什么是代理模式?代理模式:**为其他对象提供一种代理以便控制对这个对象的访问。**可以详细控制访问某个类(对象)的方法,在调用这个方法前作的前置处理(统一的流程代码放到代理中处理)。调用这个方法后做后置处理。例1:明星和经纪人、租房中介、电视和遥控机等。1.1 代理模式怎么实现抽象对象角色(抽象类 或 接口) 声明目标类和代理类相同的接口,在任何可以使用目标对象...
2019-07-30 11:53:58 110
原创 JAVA 中的位运算和实际应用
JAVA 中的位运算和实际应用前言: 作为一个有近8年 JAVA 开发经验的老程序员,再加上工作性质比较偏于项目管理,平时工作中对于位运算和二进制数的运算和应用比较少。偶尔看一些源码,对于出现的位运算符总是一脸懵逼,不得不再回炉重新温习一下,这篇文章记录一下自己的学习过程,加深印象。接下来就开始吧!1. 数学中的二进制 先简单介绍下二进制,二进制是用0和1两个数码表示的数字,进位规...
2019-07-22 00:44:32 1190 1
原创 Maven 全局删除某个依赖
Maven全局删除某个依赖今天 SpringBoot 配置log4j2 的时候遇见 spring-boot-starter-logging 依赖冲突问题启动时报错由于没有 依赖没有移除干净,发现很多基本上 spring-boot-starter-*都依赖logging。一个个移除依赖太不优雅。进行以下配置可以全局移除。<!--全局移除spring-boot-starter-logging...
2019-04-15 23:51:11 5868
原创 Spring Cloud Ribbon 负载均衡源码分析
Spring Cloud Ribbon 负载均衡源码分析Ribbon 可以实现微服务客户端的软负载均衡,说白了就是通过一系列算法,在服务调用时动态获取服务列表并且选择一个节点调用。Ribbon 有多种负载均衡策略,程序员可以自己进行配置。以下列出几种常用的负载平衡策略,后面源码主要介绍前4种负载均衡策略。实现类默认策略RoundRobinRuleDEFAULT...
2019-09-08 21:50:35 257
原创 深入浅出:Redis 分布式锁原理与实现 (一)
Redis 分布式锁原理与实现Java 应用在多线程环境下,我们可以通过 Java 内存模型实现同步,比如 Lock,synchronized 等, 但是在分布式环境下,特别是现在微服务盛行的时代,服务为了高可用会做集群。在这样的情况下每个服务都有自己独立进程,当高并发的情况下,会存在同步问题,本文主要记录自己学习Redis分布式锁的过程。从浅到深一步步通过代码去分析。1. 什么场景下...
2019-08-31 22:37:09 502
原创 Mac OS Redis 安装启动停止设置密码
Mac OS Redis 安装启动停止设置密码1. 下载和安装# 我安装在 /usr/local/redis 目录下cd /usr/local/# 下载wget http://download.redis.io/releases/redis-5.0.3.tar.gz# 解压 输入密码sudo tar -xzvf redis-5.0.3.tar.gz# 编译安装Rediscd re...
2019-08-25 20:49:16 1009
原创 Spring Cloud Zuul 介绍和使用
Spring Cloud Zuul 介绍和使用1. 前言:路由器和过滤器 Zuul 路由是微服务架构不可或缺的一部分。例如,/可以映射到您的Web应用程序,/api/users映射到用户服务,/api/shop映射到商店服务。Zuul的Netflix基于JVM的路由器和服务器负载均衡器。 微服务架构我们有很多服务,每个服务拥有不同的IP地址,端口,服务名称。这些服务的调用路径没法统一...
2019-08-23 23:47:19 138
原创 JVM 内存分配和回收策略
JVM 内存分配和回收策略1. 前言对象的内存分配往大方向讲,就是在堆上分配内存。对象主要分配在新生代Eden上,如果启动了本地线程分配缓冲,将按线程优先分配在TLAB上。少数情况也可能直接分配在老年代上,分配规则不是百分百的,主要看使用哪种垃圾收集器,以及虚拟机中内存相关参数的设置。对于JVM内存区域不了解的同学可以看这里Java内存区域分配和GC。之后我们通过代码验证下这些规则,我安装...
2019-08-23 00:25:31 126
原创 JVM 看懂GC日志
JVM 看懂GC日志1. 理解GC日志阅读GC日志是处理Java虚拟机问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。每种收集器的日志形式都是由塔门自身的实现决定的,换言之,每种收集器的日志格式可能都不同,但虚拟机设计者为方便用户阅读,将各个收集器的日志都维持一定的共性,例如以下经典GC日志。怎么查看GC日志,在Idea的Application设置中添加VM options参数...
2019-08-20 23:52:42 313 1
原创 JVM 内存区域和GC
JVM 内存区域和GC1. JVM 内存区域1.1 概述 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每个new操作去编写配对的delete/free代码,不容易出现内存的泄露和溢出问题,由虚拟机管理内存,一切看起来是非常美好。不过,也正是因为Java程序员把内存控制的权利交给了Java虚拟机,一旦出现内存泄露和溢出方面的问题,如果不了解虚拟机是怎么样使用内存的,...
2019-08-14 22:27:01 258
原创 Java 观察者模式
Java 观察者模式1. 什么是观察者模式观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能...
2019-08-08 00:00:40 153
原创 Eureka 学习之高可用多节点注册中心 (四)
Eureka 学习之高可用多节点注册中心 (四)Eureka Server注册中心可以实现高可用的多节点配置。具体实现方式是多个Eureka Server互相注册,形成链路,此时Client注册到任何一个节点,Server链路会保证服务被同步到所有的注册中心节点上。从而实现高可用的注册中心。哪怕你配置的注册地址eureka.client.service-url.defaultZone 已经宕机了...
2019-08-03 01:26:34 444
原创 Eureka 学习之 Client软负载均衡(三)
Eureka 学习之 Client软负载均衡(三)这篇主要介绍 Eureka Client 是怎么实现软负载均衡的(纯demo演示非源码层面),我的个人习惯,先跑一整编Demo 最后再研究源码,源码放到最后边学边记录。1. Eureka Client 多节点这里就不记录怎么创建 Server 了,有兴趣的同学可以看我的前2篇 Eureka 学习文章。一般的微服务架构会根据业务进行服务拆分,单...
2019-08-02 17:56:55 271
原创 Eureka 学习之 Eureka Client(二)
Eureka 学习之 Eureka Client(二)上一章节学了怎么样快速注册一个 Eureka Server 注册中心,这章主要学习讲怎么把Eureka Client注册到 Eureka Server 注册中心去。Eureka 和 Dubbo 不同, Eureka Client 同时可以是 Provider 和 Consumer。即是服务提供者,又是服务消费者。每个Client都可以消费其它...
2019-08-02 17:55:43 144
原创 Java Poi 读取 Excel2007 自定义属性
Java Poi 读取 Excel2007 自定义属性最近做的项目中有个需求识别上传的excel模板做不同的导入操作。想到在模板自定义属性中设置模板类型。java读取模板类型,判断是上传的哪个模板。2007用XSSFWorkbook,具体代码如下:public static boolean checkExcelType(String value) throws IOException{ /...
2019-05-10 23:38:11 1185
原创 Mac 环境下Maven的安装与配置
Mac 环境下Maven的安装与配置1.下载MavenMaven官方下载地址我这里选择下载:apache-maven-3.6.0-bin.tar.gz解压到任意目录,我这里解压到tar xvf /Users/xxxxxxxx/Documents/apache-maven-3.6.0-bin.tar2.配置环境变量配置环境变量vim ~/.bash_profile添加设置环境变...
2019-03-16 22:54:28 697
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人