自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沉鱼一梦的博客

个人学习心得

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 Eureka,Zookeeper,Consul 区别

Eureka,Zookeeper,Consul 区别CAPC(强一致性)A(可用性)P(分区容错性)CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。AP - 满足可用性,分区容忍性的系统,通常可能对一致

2021-10-08 19:01:49 308

原创 Consul

consul1. 什么是Consulconsul 是一套开源的分布式服务发现和配置管理系统官网:https://www.consul.io/intro/index.html服务注册发现(提供http和dns两种方式)健康监测(支持多种方式、Http、Tcp、Docker、Shell脚本定制)KV存储(Key、Value的存储方式)多数据中心(Consul支持多数据中心)可视化Web界面2.下载地址下载地址:www.consul.io/downloads.html使用教程:http:

2021-10-02 21:48:24 324

原创 Zookeeper注册中心

Zookeeper注册中心eureka已经不再更新,代替方案有zookeeper或consoulzookeeper是一个分布式的协调工具,可以实现服务注册中心linux 安装zookeeper(https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/)https://blog.51cto.com/u_4837471/2466606https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zoo

2021-10-02 21:36:00 427

原创 Eureka

EurekaEureka是NetFix公司开发的服务治理框架Eureka两大组件1.单机版eureka1.1 Eureka注册中心(类似物业中心)cloud-eureka-server7001<dependencies> <!-- eureka-server --> <dependency> <groupId>org.springframework.cloud</groupId&g

2021-09-27 19:38:38 332

原创 Spring Cloud Alibaba - 抽取功能的pojo类

公共模块抽取cloud-api-commonspojo这种类如果每个服务都需要就不需要在每个服务中都生成该类,而是建议建立一个modul来放pojo类,将这个modul引入到其他模块中pom.xml<dependencies> <!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g

2021-09-27 19:08:07 185

原创 Spring Cloud Alibaba- 消费者

构建消费者-cloud-consumer-order801.pom.xml<dependencies> <!--spring boot 2.2.2--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</art

2021-09-27 19:03:56 91

原创 Spring Cloud Alibaba-构建生产者

构建生成者cloud-provider-payment8001微服务提供者支付Module模块1. pom.xml <dependencies> <!--spring boot 2.2.2--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring

2021-09-27 19:00:26 74

原创 SpringCloud Alibaba-项目构建父工程

SpringCloud Alibaba-项目构建父工程1、idea创建工程1.1 maven1.2 字符编码1.3 注解激活生效1.4 java编译版本 JDK81.5 File Type过滤2、pom.xml <!-- 统一管理jar包版本 --> <properties> <maven.compiler.source>8</maven.compiler.source> <mav

2021-09-25 20:49:03 290

原创 G1收集器

G11、原理分区算法将整个堆空间划分成连续的不同小区间。每一个小区间都独立使用,独立回收。这种算法的好处是可以控制一次回收多少个小区间2、详细G1(Garbage First) ,优先处理垃圾多的内存块理论上和其他收集器一样将内存分为Eden,suivivor,Old三类G1收集器将内存分为3类,当并不是像普通GC一样的三块大内存,而是分为很多小块(Region),每一个小块成为E,S,O3、分成块的原因将三类分成小块的原因是可以让垃圾回收工作 彻底并行化由于

2021-09-25 12:50:55 423

原创 CMS收集器

CMS并发标记清除器1、过程初始标记:标记一下GC Roots 能直接关联的对象,速度快并发标记: 进行GC Roots Tracing , 标记全部的垃圾对象,耗时长重新标记: 修改并发标记的产生的垃圾对象,耗时较短并发清除:使用标记-清除算法清除垃圾,耗时较长初始标记和重新标记时会停止用户线程的,并发标记和并发清除是用户线程和gc线程并行执行2、CMS回收停顿几次2次以最少的STW,找出要清理的垃圾3、为什么要STW如果不暂停用户线程,就会不断的产生垃圾,永远也清理不玩采用

2021-09-25 02:54:18 491

原创 JUC笔记整理

JUC尚硅谷JUC视频1. 概述线程和进程的区别进程是程序运行的基本单位,一个程序运行就是一个进程。线程是cpu调度的基本单位,共享内存1.1 JUCjuc是java.util.courrent 工具包的简称,jdk1.5之后出现的1.2 线程状态新建,就绪,运行,阻塞,死亡1.3 wait 和sleep的区别sleep 需要指定睡眠时间,wait不需要sleep是Thread类的方法,wait是object方法,必须在同步代码块中使用(synchronized)sleep

2021-09-25 01:35:33 550

原创 垃圾收集器

垃圾收集器1、Serial-XX:+PrintCommandLineFlags单线程,会停止用户线程-XX:+UseSerialGC收集时会停止用户线程,单线程收集,适合单核CPU2、ParNew相当于serial的多线程版本,适合多核cpu-XX:+UseParNewGC-XX:+UseParllelGCThreads 限制线程数量,默认开启和cpu数据相同的线程数3、Parllel Scavenge吞吐量优先的回收器Parllel 收集器达到吞吐量优先的目的高吞吐量可以高

2021-09-24 21:26:55 442

原创 Optional

Optional解决空指针异常方法作用ofNullable将指定值用Optional封装之后返回,如果该值为null,则返回一个空的Optional对象empty返回一个空的Optional实例filter如果值存在并且满足提供的谓词,就返回包含该值的Optional对象;否则返回一个空的 Optional对象flatMap如果值存在,就对该值执行提供的mapping函数调用,返回一个Optional类型的值,否则就返 回一个空的Optional对象g

2021-09-24 20:16:58 1935

原创 GC 回收算法

GC回收算法Garbage Collection 以下简称 GCJVM调优的目的就是减少GC,减少STW(stop the word)1、GC的区域GC主要的区域是堆和方法区stack 、pc、Native Method 的生命周期和线程的生命周期一致,线程结束,内存就会被回收堆和方法区的生命周期是JVM的,需要关注何时被回收2、判断对象存活的标准2.1 引用计数法在对象头维护着一个 counter 计数器,对象被引用一次则计数器 +1;若引用失效则计数器 -1。当计数器为 0 时,就认为

2021-09-23 15:22:42 645

原创 对象的创建过程

对象实例化1、对象创建方式newClass的newInstanceconstructor的newInstanceclone()反序列化1,2,3会调用构造方法,4,5不会调用构造方法2、创建对象的步骤判断对象对应的类是否被加载,链接,初始化为对象分配内存空间(如果内存堆规整----指针碰撞方法,如果内存堆不完整-空闲列表法),内存堆是否完整是根据垃圾回收算法和垃圾收集器决定的处理并非安全问题(堆是线程共享的,线程安全问题)解决方案: 1、CAS失败重试保证原子性 2、TLAB

2021-09-23 14:39:55 1270

原创 堆分代的原因

为什么要将堆分代分代的理由是优化GC性能如果没有分代,会将所有的对象都放在一块,GC时找哪些对象没有用的时候,会对堆的所有区域进行扫描,很多对象是朝生夕死,如果分代的话,把新建的对象放到某一地方,当GC时先把这块存储朝生夕死的区域进行回收,这样会腾出很大的空间...

2021-09-22 22:40:32 85

原创 JVM 运行时数据区

JVM运行时数据区域1、线程不共享1.1 程序计数器(PC)PC是运行时数据区域最快的一个区域,是唯一一个不会发生OOM的区域生命周期和线程的生命周期相同,不存在垃圾回收作用:存放下一条指令的地址,用于实现流程控制多线程下,保存该线程执行的位置,用于线程切换后回到原来的位置1.2 栈(Stack)堆管存储,栈管运行一个方法的执行和结束,就是一个栈帧入栈和出栈的过程栈存放栈帧(局部变量+操作数栈+动态链接+方法的放回地址)生命周期和线程一致栈异常:如果栈的大小是固定的,在编译时

2021-09-22 22:32:01 466

原创 JVM-类加载器

JVM-类加载器尚硅谷学习视频JVM实现跨平台,运行字节码文件一次编译导出运行,自动内存管理,不需要程序员手动进行内存管理JVM与操作系统打交道,不和计算机硬件交互1、类加载器类加载器是负责将编译后的class文件加载,给执行引擎执行,临时存放的区域就是运行时内存区域类加载器由4种组成启动类加载器(Bootstrap ClassLoader)由C++语言编写,用于加载核心类库(JAVA_HOME/jre/lib),不继承ClaassLoader类扩展类加载器(Extension Cl

2021-09-22 22:00:54 78

原创 Swagger

Swagger1.优点API文档生成可以在线调试(postman) 直接运行,可以测试api接口 支持多种语言2.官网swagger官网3.使用 这里采用spring boot集成swagger 3.1 pom的导入<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --><dependency> <groupId>io.spri...

2020-06-10 22:12:25 199

ssm整合实现商品查询和修改

ssm整合实现商品查询和修改,用springmvc 和spring,mybatis来实现商品的查询和修改

2019-02-01

空空如也

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

TA关注的人

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