自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LeoHan

工作学习笔记、心得

  • 博客(54)
  • 资源 (12)
  • 收藏
  • 关注

原创 spring中bean的生命周期历程

spring中bean的生命周期一般如下:(1)bean实例化,查找到bean的类相关信息并通过反射实例化(2)bean的属性设置。设置bean的相关属性(3) 如果实现了BeanNameAware,调用setBeanName方法(4)如果实现了BeanClassLoaderAware,调用setBeanClassloader方法(5)如果实现了BeanFactoryAware,调用setBeanFactory(6)如果实现了EnviromentAware,调用setEnviroment(7)

2020-05-25 22:17:08 136

原创 spring cloud入门,zuul,API网关路由,filterType类型

前面几篇介绍了spring cloud中比较核心的几个模块,eureka,ribbon,hystrix,feign,config,接下来我们研究下spring cloud另一模块zuul,API网关。根据之前的所提到的spring cloud功能,我们能够基于eureka建立服务注册和发现,ribbon、feign、hystrix建立客户端调用的负载均衡和熔断机制,spring cloud config建立统一的配置中心。上述这种多实例部署后,通过前置负载均衡器如 F5,NGINX等但是,这样架构有一个

2020-05-24 21:21:00 1122

原创 spring cloud入门,eureka机制和参数说明

作为spring cloud的服务注册和发现机制,eureka承担了这个角色。服务网提供者在启动的时候通过读取到配置中eureka server的地址通过发送REST请求将自己注册到eureka server中,eureka server会将服务提供者发送的服务的元数据信息存储在一个双层的map中,第一层key是服务名,第二层key是具体服务的实例名(一般名称: applicaitonName-port)。在服务注册时,会判断:eureka-client.register-with-eureka=t

2020-05-24 16:50:59 451

原创 spring cloud入门,feign结合hystrix使用示例

在之前讲解了 spring cloud eureka和ribbon,现在开始讲解spring cloud中声明式调用方式feign的相关使用,关于eureka搭建参见 spring cloud eureka和ribbon搭建consumer-feign,pom依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=

2020-05-24 13:56:32 316

原创 spring cloud入门,eureka服务注册和发现,ribbon负载均衡,hystrix熔断

最忌几年,微服务很火爆,随着公司规模的上升,对应各种服务也在不断的完善和增加,软件的架构从之前的单体架构逐渐朝着功能分解成不同模块继而拆分成一组特定服务。著名的扩展立方体如上图所示,X轴通过部署多个相同实例,继而在多个实例之间进行负载均衡;Z轴根据请求中特殊属性对请求进行路由;Y轴扩展根据功能将应用拆分为服务。微服务将一个复杂的单体系统分解成若干小的业务,服务的边界明确,服务之间耦合降低,服务分布式集群化部署,可实现负载聚恒和熔断。spring cloud中,eureka实现了服务注册和发现r

2020-05-23 22:46:37 330

原创 spring cloud consul入门,服务注册和发现,配置中心使用入门示例

我们知道,在微服务中比较关键的几个点在于:服务注册和发现服务的负载均衡容错网关统一配置管理链路追踪和日志在服务注册和发现这块,spring提供了eureka和consul两种方式来实现服务的注册和发现,本例讲解consul作为服务注册和服务配置中心的使用方式。consul版本为consul_1.7.3,可以在 https://www.consul.io/downloads进行下载。下载解压完之后,如在windows下,在consul.exe所在目录,同时 shift+鼠标右键在命令行输入

2020-05-23 15:19:47 281

原创 spring cloud config入门,动态更新配置,spring cloud bus amqp刷新配置

前面介绍了spring cloud config 基于本地配置文件,git,mysql的配置开发示例,但是存在一个问题,如果我们要更新配置,按照之前的处理,则需要修改完配置之后重启配置,这样不适合生产环境,为此,spring cloud提供了基于spring cloud bus的机制来实现配置更改后的动态通知和刷新。下面进行这块的入门尝试, 以spring cloud config git为例说明建立config-server-git,大体与之前相同,但是增加了spring cloud bus相关依赖:

2020-05-23 09:37:58 688

原创 spring cloud config入门,spring cloud config mysql数据库配置配置中心

之前进行了spring config配置中心基于本地文件和git的示例,spring cloud config还提供供了基于数据库的配置中心,下面讲解spring cloud config mysql的入门示例。本次演示采用的springboot版本是2.1.3.RELEASE,spring cloud版本是Greenwich.SR2.首先建立config-server-mysql模块,引入必要的pom依赖:<?xml version="1.0" encoding="UTF-8"?>&l

2020-05-22 22:52:15 1324

原创 spring cloud config入门,spring cloud config git配置配置中心

之前进行了spring config配置中心基于本地文件的示例,spring cloud config还提供供了基于git的配置中心,下面讲解spring cloud config git的入门示例。本次演示采用的springboot版本是2.1.3.RELEASE,spring cloud版本是Greenwich.SR2.首先建立config-server-git模块,引入必要的pom依赖:<?xml version="1.0" encoding="UTF-8"?><projec

2020-05-22 22:38:49 355

原创 spring cloud config入门,spring cloud config native本地配置配置中心

在微服务中,由于服务众多且分散,按照以前的方式,一个服务一份配置,如果需要配置,则需要一个一个修改,在服务少的时候还比较方便处理,在大量服务的时候不太现实,为此,spring cloud config用来搭建统一的服务配置中心。本次演示采用的springboot版本是2.1.3.RELEASE,spring cloud版本是Greenwich.SR2.首先进行尝试本地配置中心开发建立config-server-native,引入必要的pom依赖:<?xml version="1.0" encod

2020-05-22 22:09:19 782

原创 postgresql常用命令行命令,重命名表,字段,查看数据库字符编码,主键自增,增加索引

后台进入postgresql命令行:psql列出所有数据库:postgres=# \l切换数据库postgres=# \c 数据库名称创建数据库:create database 数据库名称查看当前库所有模式:\dn删除数据库:drop database 数据库名称创建模式 schema:create schema 模式名称获取当前库下所有表:select * from pg_tables;查看某个表的详细信息:postgres=# \d 表名称重命名表:

2020-05-22 15:04:00 4547

原创 postgressql创建表主键自增

postgresql中主键自增需要借助sequence实现,类似oracle,操作如下,首先建立sequence:create SEQUENCE ad.big_table_shipINCREMENT 1 START 1 MINVALUE 1 MAXVALUE 999999999999 CACHE 1;ALTER SEQUENCE ad.big_table_ship OWNER TO postgres;然后建表:CREATE TABLE "ad"."ad_

2020-05-21 19:08:52 795

原创 Intellij idea 2019一个springboot项目同时运行多个实例并传入不同的参数

在idea 2019里面,可以一个springboot项目同时运行多个实例,操作步骤如下:

2020-05-14 20:28:31 911

原创 redis6.0.1安装,多线程配置,解决gcc版本依赖问题,cc1 error: unrecognized command line option -std=c11

redis 6 稳定版本已经发布,增加了新的多线程依赖,赶紧体验下,本次安装采用的redis版本是redis-6.0.1首先下载redis-6.0.1安装包 redis-6.0.1下载完成之后,解压安装:tar -xzvf redis-6.0.1.tar.gzcd redis-6.0.1make发现无法编译,报如下问题:make[1]: Entering directory `/home/hanxueming/redis-6.0.1/src' CC Makefile.depmake

2020-05-14 14:59:27 4816

原创 查看redis内存使用情况

查看redis内存使用情况,在reids客户端命令行使用:info memory首先连接redis客户端:./redis-cli -h 127.0.0.1 -p 6379查看内存情况:127.0.0.1:6379> info memory# Memoryused_memory:102045712 #redis使用的总内存大小,byte为单位used_memory_human:97.32Mused_memory_rss:140541952used_memory_rss_hu

2020-05-13 17:58:59 4667

原创 chrome插件stylish格式化网站显示,Super Auto Refresh Plus自动刷新网站页面

通过如下地址下载:https://chrome.google.com/webstore/detail/stylish-custom-themes-for/fjnbnpbmkenffdnngjfgmeleoegfcffe?hl=en,下载安装完后之后,进行配置,即可配置

2020-05-13 15:47:33 518

原创 cc1: error: unrecognized command line option "-std=c11"

这个问题主要是由于gcc版本问题,root# gcc --versiongcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)Copyright (C) 2010 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS

2020-05-12 13:56:27 10011

原创 悲观锁,乐观锁,公平锁非公平锁,独占锁,共享锁,可重入锁,自旋锁

悲观锁:认为数据很容易被修改,所以数据处理前先对数据进行加锁,在整个处理过程中,数据一直处于锁定状态,其他线程这时候想要拿到锁,必须阻塞等待乐观锁:乐观锁是相对悲观锁来说的,认为数据在一般情况下不会被修改,在访问记录前不会加锁,在对数据进行提交更新时,才会正式判断数据是否发生改变并返回对应信息,让用户自己决定怎么处理,一般通过版本号和CAS来实现。公平锁与非公平锁:根据线程抢占锁的机制,公平锁表示线程获取锁的顺序是按照请求锁的时间的早晚来决定的,即谁先来谁先获取,非公平锁则并不是,并不按照先后时间来决定

2020-05-10 21:46:44 1383

原创 java中线程安全,volatile,synchronized,锁,线程同步,锁的状态和锁升级,CAS ABA,happens-before

在说线程之前,首先必须要说的一个概念是进程,任何线程不能独立存在,进程只操作系统结构的基础,是代码在数据集上的一次运行活动,是系统进行资源分配和调度的一个独立单位,线程可以理解为是进程的子任务,是进程的一个执行路径,进程中的多个线程共享进程的资源。我们知道CPU执行是给每个线程分配CPU时间片来执行线程业务,时间片是CPU份额配给各个线程的时间,非常短,CPU通过不停切换线程执行,充分利用CPU和发挥CPU多核。这里就存在一个问题,CPU在线程之间来回切换执行,切换到之前执行的线程,如何继续执行下去,所以每

2020-05-10 16:37:59 211

原创 java连接mysql,jdbc驱动

maven依赖:<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> </dependency>示例代码:import java.sql.Connect

2020-05-09 14:26:40 156

原创 Maven中scope依赖范围,scope的不同含义

Maven中依赖范围主要用来控制三种classpath的关系(编译classpath,测试classpath,运行classpath),其有如下几种依赖范围:compile编译依赖范围,如果没有明确指定scope,默认就是<scope>compile</scope>,该范围,对编译,测试,运行都有效,可以理解为全部过程test测试依赖范围<scope>test</scope>,使用此范围依赖只对测试classpath有效,编译和运行classpath无法

2020-05-08 22:51:07 618 1

原创 JVM中TLAB栈上分配和逃逸分析

我们知道在java中对象在堆上分配,但是堆是线程共享区域,如果在对上进行对象分配,则需要对堆进行锁处理,会影响效率,为此JVM提供了TLAB的策略(Thread Local Allocation)进行分配,如果实例化类之前已经完成了装载,JVM会优先在TLAB中为对象实例分配内存空间,TLAB是一块很小的空间,每个线程专属,可以理解成java线程栈的一部分,在这个上面分配对象不会存在线程安全问题,如果TLAB分配失败,JVM则会通过加锁的操作在Eden区域分配对象。开启TLAB:-XX:UseTLAB设

2020-05-08 22:31:38 190

原创 Linux下安装Mysql5.6,配置my.cnf并开启远程登录功能

在Mysq历史版本地址里找到自己需要的版本,这里选择的是5.6.46,这里下载下来的实际上是已经为我们编译好了的最终文件,不用我们去进行任何的处理。解压缩下载文件:tar -xzvf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gzmv mysql-5.6.46-linux-glibc2.12-x86_64 mysql-5.6.46接下来首先添加mysql用户groupadd mysqluseradd -g mysql mysql更改目录权限:ch

2020-05-08 18:34:26 3103

原创 Netty4客户端入门代码示例

添加依赖: <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.36.Final</version>...

2020-05-08 14:03:35 270 1

原创 Netty4服务端入门代码示例

添加客户端 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.36.Final</version>...

2020-05-08 14:01:55 218

原创 java连接sqlserver,mssql,jdbc驱动

首先添加maven依赖: <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</versi...

2020-05-08 12:29:22 868

原创 java连接PostgresSQL,JDBC驱动

Java连接PostgresSQL代码示例:添加maven依赖: <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <versi...

2020-05-08 12:23:58 1764

原创 maven打包指定名称并去除jar-with-dependencies后缀

在mavne中打包默认的一般为 artifactId.{artifactId}.artifactId.{version}.${packageing}有些时候需要指定maven打包的名称,可以进行如下配置:在pom.xml中build配配置中增加<finalName>yourName</finalName>,如果想去除jar-with-dependencies后缀,则在a...

2020-05-07 10:30:03 14701

原创 JVM垃圾收集器,GC,垃圾收集器种类,串行并行并发回收,STW,G1收集器,GC组合配置,GC内存选项配置,,GC辅助选项配置

传统C/C++程序内存需要开发者手动来进行分配和回收,常见的比如malloc、free来进行内存分配和回收,这样做虽然能够很大的自由度来对内存进行操作,但是也对程序的设计和开发者本身大代码水平有很高的要求,因为一不小心,分配的内存在没有作用后没有及时回收,随着系统运行的时间越来越长,系统耗费的内存会越来越多,最终会达到硬件资源的内存最大限制水平,从而会导致整个程序最终崩溃。Java中内存的管理是...

2020-05-06 23:04:51 891

原创 java连接impala,jdbc,带kerberos认证登录

添加依赖: <dependency> <groupId>com.cloudera.impala</groupId> <artifactId>jdbc</artifactId> <version>2.5.31</version> ...

2020-05-06 14:24:17 1542

原创 rabbitmq中相关概念 交换器,路由键,绑定,和处理流程

基本概念Broker:简单来说就是消息队列服务器实体。  Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。  Queue:消息队列载体,每个消息都会被投入到一个或多个队列。  Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。  Routing Key:路由关键字,exchange根据这个关键字进行消息投递。  vhost:虚拟主...

2020-05-06 12:21:43 1575 2

原创 rabbitmq生产者消费者示例代码参考

生产者:public class MyProducer { private static final String EXCHANGE_NAME = "exchange_test_001"; private static final String ROUTING_KEY = "routingkey_test_001"; private static final Strin...

2020-05-05 23:09:01 408

原创 rabbit_mq安装

安装rabbit-mq先安装erlang,从 erlang19.3安装配制Erlang:yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel cd otp_src_19.3 ./configure --prefix /usr/local/erlang make & make in...

2020-05-05 22:09:35 235

原创 linux中xz文件压缩解压

LInux中.tar.xz文件用如下命令解压缩:xz -d test.tar.xz会得到test.tar文件,在对test.tar解压缩,采用tar命令就行:tar -xzvf test.tar .

2020-05-05 21:42:47 193

原创 kafka中幂等性,事务,事务示例和配置,实现exactly once语义,消息顺序

一般消息中间件传输保障会有3个级别at most once 最多一次,消息可能会丢失,但是绝对不会重复ad least once 最少一次,消息不会丢失,但是可能会重复exactly once 恰好一次。消息有且仅会被传输一次对于kafka来说,生产者客户端发送消息时,只要消息被成功写入到日志文件,由于多副本的存在,这条消息就不会丢失,但是如果发送过程中由于网络原因导致生产者客户端无法...

2020-05-05 17:44:11 856

原创 kafka消费者客户端分区分配,协调器,自定义分区器分配策略

在kafka的消费者客户端中,是以组来区分消费者的,不同消费者组之间没有关联,对于某个主题来说包含N个分区,一个消费者组内的M个消费者会按照一定的分区分配策略来消费这个N个分区,消费者组内的每个消费者会消费不同的分区,不会有一个分区被同一个消费者组内的多个消费者消费。消费者客户端参数partition.assignment.strategy来设定消费者组内消费者消费主题分区的分配策略,可以配置多...

2020-05-05 16:53:04 410

原创 kafka服务端server.properties参数说明

参数名称描述broker.idbroker节点唯一ID标识log.dirkafka消息日志文件存放目录log.dirskafka消息日志文件存放目录列表,逗号分隔message.max.bytesbroker能接收的消息的最大值,1000012B,如果修改这个参数,还需要参考max.request.size(客户端参数),max.message.byt...

2020-05-04 21:40:42 237

原创 kafka中分区与主题,副本,AR,ISR,控制器,leader选举

主题和分区是kafka中两个核心概念,所有的相关操作都是围绕这两个来进行的。消费者和生产者的设计和相关操作都是对主题和分区层面的操作。分区是相对主题来说的,kafka中每个主题可以设置一个至多个分区,分区为kafka提供了伸缩和水平扩展的能力。kafka中为每个分区提供了一个到多个副本的,通过增加副本数量能够提高容灾能力。副本之间是一主多从关系,其中leader负责处理读写请求,follower...

2020-05-04 21:36:16 1118

原创 kafka消费者客户端重要参数

kafka消费者客户端重要参数说明:bootstrap.serverskafka集群broker地址列表key.deserializer消息中key对应的反序列化类value.deserializer消息中value对应的反序列化类group.id消费者所属消费者组的唯一标识client.id消费者客户端IDheartbeat.inte...

2020-05-03 23:50:17 545

原创 kafka消费者客户端线程安全以及多线程实现并发读取消息

kafka的生产者客户端Producer是线程安全的,但是消费者客户端是非线程安全的,每次操作时都会调用accqure方法用来确定当前只有一个线程操作,如果有多个线程在操作,会抛出CME异常。针对这种情况,为了能够多线程更快速的读取消息,可以参考如下两种方式:在同一个消费者组下,每个线程建立一个consumer消费者组,这样相当于是在一个消费者组中多个消费者同时读取另外一种处理就是,用...

2020-05-03 22:51:42 3015

conntrack-tools_offline_dependency.tar

conntrack-tools离线安装包和其依赖

2021-08-14

kubeadm-init-list.zip

kudeadm init需要的依赖镜像包

2021-08-10

conntrack-tools离线宝及其依赖.zip

conntrack-tools离线宝及其依赖

2021-08-09

elrepo-release-6-12.el6.elrepo.noarch.rpm

centos6内核升级,elrepo原,docker安装centos6升级centos7

2021-03-23

keepalived-2.0.19.tar.gz

keepalived安装包,keepalived-2.0.19.tar.gz,省的去官网下载,太慢,可以试试这个,

2020-10-14

mysql-5.6.46-leo.tar

mysql-5.6.46安装包,不用安装,直接部署配置即可,省去了编译的步骤mysql-5.6.46安装包,不用安装,直接部署配置即可,省去了编译的步骤

2020-07-13

postgresql-9.6.9.tar.gz

postgresql9.6安装包

2020-07-09

gcc-4.9.4.包含依赖tar.gz

gcc 4.9.4安装包,包含了 mpc,mpfr,gmp依赖,直接编译就行,不用下载依赖,redis6需要gcc>=4.9

2020-05-14

gcc-4.8.2.tar.gz包含依赖

gcc满足c11,unrecognized command line option "-std=c11",更新gcc版本到新版本,包含了需要的依赖不需要再去下载依赖

2020-05-12

Posgresql主从流复制相关配置

Postgresql9.6基于主从流复制的配置,包含主节点: postgresql.conf, pg_hba.conf,从节点: postgresql.conf,pg_hba.conf,recovery.conf

2019-03-14

tomcat8开启apr需要相关的组件,包含jdk,apr,apr,util,tomcat8,openssl

tomcat8开启apr需要相关的组件,包含jdk,apr,apr,util,tomcat8,openssl-1.0.2o1.2里面的都在,想要Linux下的jdk都在里面

2018-08-16

人工智能的未来

人工智能,深度学习的介绍和相关的未来趋势人工智能,深度学习的介绍和相关的未来趋势人工智能,深度学习的介绍和相关的未来趋势

2018-08-15

空空如也

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

TA关注的人

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