自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (10)
  • 收藏
  • 关注

原创 sentinel源码解析(一)

主要内容该文章主要根据解析sentinel源码分析点有:sentinel-dashboard创建规则保存在哪里? sentinel-dashboard同应用之间的交互关系是怎样的? 应用重启之后,sentinel-dashboard控制台的规则不见了?sentinel-dashboard创建规则保存在哪里?打开sentinel-dashboard控制台新建一个限流规则源码分析根据新建限流规则URL的地址,打开sentinel-dashboard的源码,找到对应的入口:

2021-01-11 11:25:20 633

原创 Spring Cloud Alibaba Nacos Config配置属性加载原理

本文介绍spring cloud 作为主流的微服务分布式组件,本身已经提供了配置中心spring cloud config组件。国内阿里巴巴基于spring cloud体系实现了一套spring cloud alibaba的生态架构。spring cloud alibaba nacos config的使用在这里不进行介绍,这里记录一下spring cloud alibaba nacos config的配置文件属性加载原理。疑问?在nacos客户端创建配置文件之后,那么疑问就来了,naco

2020-12-11 18:36:17 1996

原创 扩展ribbon-loadbalanced自定义负载策略(同集群优先原则)

业务场景应用A调用应用B,应用B下有多个集群,应用A调用应用B时,调用同集群下的应用B实例项目结构client为客户端,有两个服务端:应用名都是customize-ribbon-loadbalanced-server,集群分别是beijing和shanghaiclient去调用应用customize-ribbon-loadbalanced-server,根据client的集群名来分别调用服务customize-ribbon-loadbalanced-server中相同集群的应用配置文

2020-11-10 15:26:08 1399

转载 redis哨兵模式选举机制

当redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤: 故障节点主观下线故障节点客观下线Sentinel集群选举LeaderSentinel Leader决定新主节点 选举过程 1、主观下线 Sentinel集群的每一个Sentinel节点会定时对redis集群的所有节点发心跳包检测节点是否正常。如果一个节点在down-after-milliseconds时间内没有回复Sentinel节点的心跳包,则该redis节点被该Sentinel节点主观下线。

2020-10-15 10:29:20 8016 3

原创 IDEA基于Dockerfile自动构建镜像

1、准备工作操作系统:Windows10 docker版本:v19.03.8(基于Docker Desktop of Windows安装) IDEA版本:2019.2.42、IDEA连接Docker环境2.1、IDEA安装docker插件idea安装好docker插件之后需要重启,然后在idea配置docker环境之前,需要设置docker环境允许远程连接2375端口:cmd以管理员身份运行:netsh interface portproxy add v4tov4 liste.

2020-09-27 15:43:08 2135

原创 多注册中心情况下通过spring boot自动装配机制解决项目启动过程中多注册中心实现ServiceRegistry接口问题

场景:一个spring boot项目同时引入了nacos注册中心依赖和zookeeper注册中心的依赖,需要在不同情况下选择使用不同的注册中心。项目依赖情况: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</art

2020-08-25 11:19:08 1098

原创 Java面试题五

1、设计模式https://www.jianshu.com/p/bd5723b97cb4

2020-07-15 11:33:13 124

原创 Java面试题六

1、线程同步,异步,阻塞和非阻塞的概念进程和线程的区别?(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元(2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程至少包括一个线程。(3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会...

2020-07-15 11:32:47 190

原创 Java面试题四

1、线程池1.1什么是线程池?线程池是一种多线程处理形式,处理过程中将任务提交到线程池,任务的执行交由线程池来管理。如果每个请求都创建一个线程去处理,那么服务器的资源很快就会被耗尽,使用线程池可以减少创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。1.2为什么要使用线程池?(优势)对于共享资源,有一个很著名的设计模式:资源池。该模式正是为了解决资源频繁分...

2020-07-15 11:32:30 244

原创 Java面试题三

1、反射的机制https://www.cnblogs.com/whgk/p/6122036.htmlhttps://www.cnblogs.com/xiaoluo501395377/p/3383130.htmlJava反射机制主要提供了以下功能:在运行时构造一个类的对象;判断一个类所具有的成员变量和方法;调用一个对象的方法;生成动态代理。反射最大的应用就是框架。反射的应用很多,很多...

2020-07-15 11:32:18 445

原创 Java面试题二

1、Integer和int的区别和联系 ①、Integer 是 int 包装类,int 是八大基本数据类型之一(byte,char,short,int,long,float,double,boolean)  ②、Integer 是类,默认值为null,int是基本数据类型,默认值为0;  ③、Integer 表示的是对象,用一个引用指向这个对象,而int是基本数据类型,直接...

2020-07-15 11:32:07 417

原创 Java面试题一

以下是一些Java面试题仅供参考:1、5个常用的java-api包(1)java.lang包下的API(基本数据类型和包装类型)(2)java.util包下的API(日期类或者计算类还有集合框架类)(3)java.io包下的API(用于读取和写入文件的类)(4)java.net包下的API(该包提供实现网络应用与开发的类)(5)java.sql包下的API(该包提供数据库...

2020-07-15 11:31:42 392

原创 电话面试题一

2019.06.11下午4.30进行了上海某家金融上市公司的电话面试,面试题目比较经典,写在博客进行记录:1、一开始先自我介绍,然后问了一下最近印象比较深刻的项目进行介绍,从中问到了一些问题: 项目中的RPC是哪一套框架的(估计是想问用的是dubbo还是其他),回答到是公司架构组封装的一套框架,对Spring源码进行了封装,对其中的postProcessor方法等进行了重写2、in...

2020-07-09 11:00:42 7572 25

原创 策略模式场景实例

定义抽象策略角色public interface CompanyService { public String company();}定义具体策略角色具体策略角色1@Servicepublic class AlibabaCompanyService implements CompanyService { @Override public String company() { System.out.println("alibaba");

2020-06-29 13:28:18 3661

原创 Bootstrap、Application 以及自定义配置属性的优先级对比

bootstrap配置文件和application配置文件优先级bootstrap优先级<application优先级bootstrap、application和自定义配置属性优先级自定义配置属性:public class NacosDiscoveryPrepareApplicationListener implements ApplicationListener<A...

2020-05-08 10:33:20 2493

原创 spring boot actuator各个端点说明

参考:https://www.jb51.net/article/185204.htm https://www.yht7.com/news/81709 端点 端点描述 默认值 端点 端点描述 默认值 auditevents 当前应用的审计事件...

2020-05-08 10:30:17 561

原创 Nacos集群Raft协议选举策略源码解析

1、Nacos集群选举策略在Raft协议中,节点有三种角色:Leader:负责接收客户端的请求 Candidate:用于选举Leader的一种角色 Follower:负责响应来自Leader或者Candidate的请求选举分为两个阶段:服务启动的时候 leader挂了的时候所有节点启动的时候,都是follower状态。 如果在一段时间内如果没有收到leader的心跳(可能是没...

2020-04-22 17:06:27 1468

原创 Zookeeper的集群Leader选举机制和数据同步原理

这里不介绍Zookeeper集群的搭建过程;首先介绍相关概念:1、集群节点状态LOOKING:寻找Leader状态,处于该状态需要进入选举流程 LEADING:领导者状态,处于该状态的节点说明是角色已经是Leader FOLLOWING:跟随者状态,表示Leader已经选举出来,当前节点角色是follower OBSERVER:观察者状态,表明当前节点角色是observer2、ZX...

2020-04-21 15:36:22 647

原创 Spring Cloud Zookeeper源码解析-----服务注册原理

zookeeper作为一个分布式文件系统,可用于注册中心,配置中心(很少),分布式锁,命名服务等场景。同时已经集成到springcloud项目中----spring cloud zookeeper;接下来通过读spring cloud zookeeper的源码来了解它的服务注册原理1、application.yml配置文件配置server: port: 9000spring: ...

2020-04-20 19:48:12 1277

原创 Redis-Cluster集群原理

1、redis-sentinel模式的不足之处使用Redis Sentinel 模式架构的缓存体系,在使用的过程中,随着业务的增加不可避免的要对Redis进行扩容,熟知的扩容方式有两种,一种是垂直扩容,一种是水平扩容。垂直扩容表示通过加内存方式来增加整个缓存体系的容量比如将缓存大小由2G调整到4G,这种扩容不需要应用程序支持;水平扩容表示表示通过增加节点的方式来增加整个缓存体系的容量比如本来有...

2020-04-02 10:50:57 557

原创 Redis哨兵模式原理

Redis的主从复制模式下, 一旦主节点由于故障不能提供服务, 需要人工将从节点晋升为主节点, 同时还要通知应用方更新主节点地址, 对于很多应用场景这种故障处理的方式是无法接受的。 可喜的是Redis从2.8开始正式提供了Redis Sentinel(哨兵) 架构来解决这个问题。总结:Redis主从复制的缺点:没有办法对master进行动态选举,需要使用Sentinel机制完成动态选举...

2020-04-01 15:42:36 358

原创 Redis主从复制哨兵模式环境搭建(Windows版)

本文是在基于Redis主从模式搭建过程(Windows版)进一步完成的,请先参考:https://blog.csdn.net/LiaoHongHB/article/details/105223455总体环境一主两从三哨兵模式前情提要在Windows上搭建一主两从模式,参考上面链接即可哨兵模式搭建1、在redis-master,redis-slave1以及redis-sl...

2020-04-01 13:53:15 517 3

原创 Redis主从模式搭建过程(Windows版)

redis下载地址:https://github.com/microsoftarchive/redis/releases下载好之后,解压然后复制一份到同目录下;文件夹分别取名为:redis-master和redis-slaveredis-master不用做任何修改操作redis-slave:进入该文件夹,修改redis.windows.conf文件,修改内容主要是:修改端...

2020-03-31 15:31:13 567 1

转载 Redis主从同步原理-SYNC

和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,下图为级联结构。   Redis主从复制可以根据是否是全量分为全量同步和增...

2020-03-31 11:20:17 243

原创 SprinBoot整合Dubbo,注册中心选取Zookeeper

提起dubbo,首先想到的是异步调用框架,同时提供了对springboot各种格式的支持,接下来是以spring boot的注解方式来简单描述spring boot整合dubbo的方式官方文档:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html首先新建dubbo-test项目,其中有三个module,分别是dubbo-api,d...

2020-03-20 14:25:17 156

转载 REST,以及RESTful的讲解

文章目录1.背景1.传统下的API接口对比规则概念REST 系统的特征演化优点&缺点是什么?1.背景1.传统下的API接口http是目前在互联网上使用最多的协议,没有之一。  可是http的创始人一直都觉得,在过去...

2020-03-19 11:14:46 203

原创 nacos的心跳机制

了解nacos的心跳机制,需要先了解nacos的服务注册原理;可先阅读https://blog.csdn.net/LiaoHongHB/article/details/103993074当nacos进行服务注册的时候,NacosServiceRegistry.class会调用register()方法进行服务注册,该方法中调用了namingService.registerInstance()方法...

2020-01-19 16:16:39 13440 3

原创 SpringCloudAlibaba-Nacos服务注册的原理

nacos是阿里巴巴开源的一个集注册中心和配置中心为一体的组件,先已加入到apache大家庭中。本文主要介绍nacos作为注册中心中的服务注册原理首先,所有的服务注册功能,都使用一个相同的接口---ServiceRegistrypackage org.springframework.cloud.client.serviceregistry;/** * Contract to reg...

2020-01-16 10:36:55 3146 1

原创 SpringBoot 启动原理

SpringApplication是SpringBoot的启动程序,我们通过它的run方法可以快速启动一个SpringBoot应用。启动控制台的输出内容:基于SpringFramework的事件机制事件机制是SpringBoot的启动核心,在这里先介绍JDK和Spring中事件的机制和原理JDK的事件机制JDK中的事件机制,首先定义了一个EventObject...

2020-01-13 17:40:08 230

转载 rocketmq原理:name server ,broker, producer, consumer之间通信

  RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积...

2020-01-09 17:19:20 1429

原创 Apollo配置中心多环境配置

Apollo的快速启动项目中,只有一个DEV(开发)环境,但是本身的一个apollo-portal管控端可以管理不同环境下的配置;所以apollo配置中心多环境配置下的主要思路为(这里以DEV和FAT两个环境举例说明):搭建两台虚拟机,分别用作DEV环境和FAT环境(需要安装jdk1.8及以上的Java环境以及MySQL环境); DEV环境上面配置apollo-adminserv...

2019-12-26 10:45:56 3463

原创 SpringCloud配置中心源码解读

PropertySourceLocator接口通过这个接口我们可以通过代码动态的向Environment中添加PropertySourceEnvironment:Spring抽象了一个Environment来表示Spring应用程序环境配置,它整合了各种各样的外部环境,并且提供统一访问的方法(getProperty(String key))。locate方...

2019-12-23 15:14:23 721

原创 Nacos集群环境搭建

本文演示在Linux环境下,需要先配置相关环境:Java,maven,MySQL1、下载nacos-server压缩包通过rz命令行将下载好的nacos-server压缩包上传到Linux环境中;两台Linux主机IP分别为:192.168.30.129;192.168.30.1312、解压nacos-server压缩包,并将文件复制到/usr/local目录下...

2019-12-12 14:06:20 211

原创 Kubernetes deployment.yaml文件配置解析

apiVersion: extensions/v1beta1kind: Deploymentmetadata: <Object>spec: <Object> minReadySeconds: <integer> #设置pod准备就绪的最小秒数 paused: <boolean> #表示部署已暂停并且deploy控制器不会处理该部署 ...

2019-12-02 15:07:50 1848

原创 RocketMQ的2主2从集群环境搭建

前言该测试用例是在Linux环境下操作的,需先在Linux环境上安装Java环境和maven环境1、Java环境的安装在/usr/local/java路径下新建Java文件夹通过xshell工具的rz命令将事先下载好的jdk-8u211-linux-x64.tar.gz压缩包上传到Linux虚拟机中解压jdk-8u211-linux-x64.tar.gz压缩包...

2019-11-27 17:26:53 327

转载 源码分析RocketMQ文件清除机制

RocketMQ顺序写Commitlog、ConsumeQueue文件,所有写操作全部落在最后一个CommitLog或ConsumeQueue文件上,之前的文件在下一个文件创建后,将不会再被更新。RocketMQ清除过期文件的方法是:如果非当前写文件在一定时间间隔内没有再次被更新,则认为是过期文件,可以被删除,RocketMQ不会管这个这个文件上的消息是否被全部消费。默认每个文件的过期时间为7...

2019-11-27 15:26:44 733

原创 RocketMQ高可用Q&A

1、rocketmq的主从切换机制当master所在机器正常运行的情况之下,producer往master中写入消息,consumer从master中读取并消费消息 当master所在机器宕机之后,producer无法进行写消息操作,consumer从该master的slaver机器中读取并消费消息 当master所在机器宕机之后,需要手动重启master机器,重启完之后,producer...

2019-11-26 17:57:15 170

原创 RocketMQ HA集群方案

1、了解RocketMQ1.1、RocketMQ的前世今生 RocketMQ是阿里开源的一款十分优秀的消息队列,rocketMQ具有很多其他消息队列不具有的特性,更重要的是rocketMQ是用java开发的学习成本较低,并且经历了双11的数据洪峰的考验。rocketMQ已经加入了apache,成为apache的顶级项目。1.2、相关链接RocketMQ的官网:htt...

2019-11-26 17:55:58 520

原创 什么是Docker

一、Docker的介绍1、Docker的由来 2010年dotCloud公司在旧金山成立,PAAS平台的服务供应商;2013年dotCloud更名为Docker股份有限公司(Docker,Inc)。Docker公司专注开源容器引擎的开发,他们的容器引擎产品就叫docker,基于go语言,并遵从Apache2.0协议。Docker是目前最火的LXC高级容器管理引擎。Do...

2019-11-20 10:36:47 605

原创 容器技术的概念

1、什么叫容器? 容器技术是英文单词Linux Container的汉译。Linux Container两个单词,第一个Linux表明了容器技术一般是应用在Linux操作系统上面;Container意思有:容器,集装箱,货柜的意思,为了方便理解,这里采用集装箱的汉译介绍容器的概念。 集装箱多数存在于航运码头,将货物装入到集装箱中,然后通过轮船运输的方式运送到目的...

2019-11-18 17:57:26 4103

基于Zookeeper集群环境下的数据发布订阅代码

该代码是zookeeper应用场景数据订阅模式下的实现代码,可参考博客:https://blog.csdn.net/LiaoHongHB/article/details/84958209

2018-12-11

基于Zookeeper集群环境下的master选举代码

该代码是基于zookeeper应用场景:master选举下的代码;使用了zookeeper的集群模式,可参考博客:https://blog.csdn.net/LiaoHongHB/article/details/84951540

2018-12-11

基于Zookeeper集群环境下的服务注册代码

zookeeper作为如今分布式应用下常用的开发技术,已经广泛应用于各种开发项目中。该项目介绍了zookeeper的服务注册功能,使用了zookeeper集群环境搭建,可参考博客:https://blog.csdn.net/LiaoHongHB/article/details/84950486

2018-12-11

基于websocket的网页聊天室(私聊+多对多)

基于websocket实现的网页版聊天室,包括私聊和多对多聊天,简单易懂,一个jsp页面,一个config.class以及一个websocket.class

2018-11-19

第三方应用登陆QQ以及微信功能

该功能主要是在第三方应用上授权登陆QQ以及微信等操作,通过springsocial oauth2等技术实现,其中也包含了数据库的相关知识点。

2018-11-14

springsecurity 安全权限授权框架

该代码应用于系统权限认证和资源认证;通过spring security和rbac服务实现。

2018-11-14

spring security oauth2 实现jwt sso

该资源实现了一个sso单点登陆的功能,类似于在淘宝网登陆之后可以不需要登陆天猫即可访问天猫网;使用了spring security oauth2以及jwt。

2018-11-14

Socket编程的client

网络编程的client开发代码,最近在复习Java中网络编程的相关 知识,于是就练习了socket编程中的一些小的demo,在这里给大家分享一些socket 中client的代码

2018-07-09

Socket编程的server

网络编程中的socket编程是在开发过程中经常遇到的一个开发技术,其中包括了server和client端的代码开发,在这里我上传了server的代码,仅供参考

2018-07-09

JAVA 对CSV和Excel文件格式的读写

利用Java swing 对csv和excel文件进行读写;并且可以同时读取5个文件的数量;通过关键字配置来读文件,还有就是通过POI CSVWriter等类的使用来对excel和csv等文件进行操作

2017-09-16

空空如也

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

TA关注的人

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