自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 java-多线程-JUC

线程全部知识

2021-01-30 21:13:14 188 2

原创 java-多线程-死锁

线程死锁一.概念原理要点:1.多线程竞争资源2.占有一个同步资源去请求另外一个同步资源3.线程争抢资源的顺序不同二.死锁代码public class TestDeadLock implements Runnable{ public static void main(String[] args) { TestDeadLock dead = new TestDeadLock(true); TestDeadLock dead2 = new TestDeadLock(false);

2021-01-28 17:50:14 131

原创 java-线程加强-线程的join方法

Join方法一.概念及作用join方法四用于在一个线程中,调用其他线程的join方法,则此线程等待其他线程完成任务.二.特点1.是Thread类的方法,故只能是线程及其子类调用.2.底层调用的是object的wait方法.3.Join()方法会释放锁,但是只能释放它join的对象的锁.三.代码功能就是,首先主线程先输出到10;然后等待子线程输出到10;最后主线程再输出剩余的情况0:主线程或只线程,至少有一方不是同步方法子线程类class MyThread extends Threa

2021-01-28 12:01:14 167

原创 Docker

架构

2021-01-23 23:45:58 82

原创 104-java数据结构与算法

如图一.数组java中数组代表着一块连续的物理存储空间,遍历块,删除慢.其余特性略.1.稀疏数组(1)应用场景当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。(2)稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模(3) 代码略略,后续再补充...

2020-08-06 16:25:10 169

原创 103-java8新特性(3)-新日期API/重复注解

一.原有日期处理1.SimpleDateFormate线程不安全(1) 不安全代码public static void main(String[] args) throws Exception { //1.8 之前使用的线程不安全的转换类 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); //1.8之前用的日期转换工具内,线程不安全 Callable<Date> task = (

2020-07-11 11:53:23 176

原创 102-java8新特性(2)-Stream流

Stream流

2020-07-10 17:58:24 111

原创 101-java8新特性(1)-Lambda表达式

java 8 新特性java 1.8 相对于java 1.7修改了很多地方,增加了很多新特性.Lambda表达式1.概念及注意事项Lambda表达式的格式:Interface in = Lambda表达式.注意:1.左边一定是一个接口,抽象类也不行,因为Lambda表达式就是设计来实现这个接口的方法的匿名内部类2.左边的这个接口一定是只有一个抽象方法的函数是接口.因为如果有多个接口,则这个Lambda表达式则不能区分是实现的哪个抽象方法.3.这个函数式接口可以用注解@Functiona

2020-07-10 10:44:02 206

原创 100-java-springcloud(13)-cloudalibaba(03)-分布式事务-单库事务/分布式事务seata

数据库事务一.数据库事务的简介1.什么是事务?数据库事务就是在进行数据库操作的时候,单条语句是原子操作的,但是多条语句不是原子操作,可能会导致一部分语句执行成功,一部分语句执行失败,但是某些业务场景下我们需要保证多条语句同时执行成功或者执行失败.2.事务的特性原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。隔离性(Isolation):事

2020-07-06 18:06:17 217

原创 99-java-springcloud(12)-cloudalibaba(02)-熔断与限流-sentinel

sentinel一.概述1.介绍及简介(1) 官网官网地址: https://github.com/alibaba/Sentinel中文文档: https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8Dspring-alibaba-sentinel 地址:https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.ht

2020-07-06 11:34:33 233

原创 98-java-springcloud(11)-cloudalibaba(01)-配置中心/注册中心-nacos

cloudalibaba

2020-07-03 23:37:24 140

原创 97-java-springcloud(10)-链路追踪-springcloud-sleuth

sleuth一.概述二.链路监控步骤

2020-07-03 22:16:27 221

原创 96-java-springcloud(09)-配置中心和消息总线-config/bus

springcloud config一.概述1.是什么?参考官网: https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.3.RELEASE/reference/html/产生原因由于分布式微服务将大的服务拆分成了一个个小的服务,而且由于微服务的规模小,通常一个项目可能产生及时上百个微服务,而就会有上百个配置文件,怎么样统一管理这些配置文件?springcloud-config是什么?springcloud-c

2020-07-03 17:45:45 197

原创 95-java-springcloud(08)-网关-gateway

gateway网关是什么,网关是一切外部访问程序的入口,他控制这这个服务架构的出入,鉴权,代理,流控,监控等.一.简介1.官网官网地址:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.3.RELEASE/reference/html/#gateway-starter2.是什么?Spring Cloud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Net

2020-07-02 18:08:39 306

原创 94-java-springcloud(07)-服务降级-Hystrix/Hystrix Dashboard

Hystrix一.简介1.官网参考官网: https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.3.RELEASE/reference/html/#circuit-breaker-spring-cloud-circuit-breaker-with-hystrix2.分布式微服务面临的问题?服务雪崩某个或者某些服务出现故障,导致调用本服务的其他服务调用缓慢,或者调用失败,发生级联反应,从而导致多个服务不能使用,发

2020-07-02 11:42:28 152

原创 93-java-springcloud(06)-服务调用-openFeign

openFeign一.概述1.官网参考官网: https://cloud.spring.io/spring-cloud-static/spring-cloud-openfeign/2.2.3.RELEASE/reference/html/#spring-cloud-feign-overriding-defaults2.OpenFeign是什么?Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可3.Feign和OpenFeign两

2020-07-01 18:16:32 133

原创 92-java-springcloud(05)-负载均衡-Ribbon

Ribbon一.Ribbon的概述1.官网参考文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.3.RELEASE/reference/html/#spring-cloud-ribbon2.ribbon是什么?ribbon是一个客户端负载均衡,是调用方得到地址,自己控制访问的算法策略.3.ribbon和nginx的对比Ribbon对比NginxRibbonNginx使用方

2020-07-01 17:12:21 95

原创 91-java-springcloud(04)-注册中心(3)-Consule

Consule一.Consule简介1.是什么?https://www.consul.io/intro/index.html2.能干嘛?服务发现健康监测KV存储多数据中心可视化Web界面3.去哪下?https://www.consul.io/downloads.html4.怎么玩?https://www.springcloud.cc/spring-cloud-consul.html二.安装并运行Consule1.官网安装说明https://l

2020-07-01 10:46:34 277

原创 90-java-springcloud(03)-注册中心(2)-Zookeeper

Zookeeper一.zookeeper的搭建参考文章: https://editor.csdn.net/md/?articleId=106782730二.使用zookeeper作为配置中心1.生产者1.建module略2.改pom <!-- 引入zookeeper依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <ar

2020-06-30 18:15:41 98

原创 89-java-springcloud(02)-注册中心(1)-Eureka

注册中心1.什么是注册中心?注册中心,主要包括3个组件要素,第一个就是注册中心,第二个就是消费者,第三个就是生产者.注册中心注册中心就是类似于淘宝商城,他的作用有两个.1.消费者要消费,调用接口,他告诉消费者,调用的服务的ip地址和端口是哪个.2.为了保证消费者每次访问的接口都正确,不是过期的地址,虽然消费者和生产者注册上来,但中途由于服务器宕机,关机等,他需要保证提供的服务对应的ip地址的实时性.由于以上原因,注册中心必须保证服务与ip地址的实时对应关系,这就涉及到了一致性协议.CAP理

2020-06-30 17:26:26 143

原创 88-java-springcloud(01)-简介/父项目/公共模块的搭建

本文架构如图一.概述1.why?(产生的原因)由于现在的系统越来越复杂,在微服务的理念提出之后,我们将系统拆分成一个个的独立的模块,所以我们迫切的需要一套技术来协调管理这一套的微服务.2.what?(是什么)1.解决分布式系统项目的协调的一整套解决方案,从服务注册,到服务调用,再到负载均衡,服务降级,配置中心等,都有一整套完整的解决方案.2.springCloud是spring社区在基于springBoot技术架构之上的.3.how?(怎么做)springCloud是一整套关于微服务分

2020-06-30 12:08:25 424

原创 87-java-rabbitMQ(4)-springBoot整合RabbitMQ

11

2020-06-23 10:25:01 67

原创 86-java-rabbitMQ(3)-rabbitMQ的消息可靠性/集群搭建

本文架构具体可参考文章:https://www.cnblogs.com/linjiqin/p/12683076.htmlhttps://blog.csdn.net/u013256816/article/details/60875666/

2020-06-22 17:20:30 112

原创 85-java-rabbitMQ(2)-rabbitMQ的javaAPI

本文按照两部分来说明java连接rabbitMQ的工作模式基础部分(1) pom依赖<dependencies> <!-- 这是java连接rabbitMQ的原生api依赖 --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId&

2020-06-22 17:12:41 163

原创 84-java-rabbitMQ(1)-rabbitMQ的概述/下载安装/管理界面

一、概述1.MQ是什么?(1) 概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。(2) 消息中间件的组成2.1 Broker消息服务器,作为server提供消息核心服务2.2 Producer消息生产者,业务的发起方,负责生产消息传输给broker,2.3

2020-06-22 15:49:45 250

原创 83-java-countDownLatch

本文架构countDownLatch1.作用这是用来做多线程操作的类,和join方法类似2.构造方法CountDownLatch countDownLatch = new CountDownLatch(1);#这个表示构造一个值为1的对象,当对象的值为0时,阻塞的方法则可继续执行3.阻塞当前线程:countDownLatch.await();#这个方法表示阻塞当前线程,当本对象的值为0时,接着继续执行后面的代码4.将对象的值减1:countDownLatch.countDo

2020-06-16 18:20:15 75

原创 82-java-zookeeper(2) -集群/curator/监控

一.zookeeper集群1.集群搭建1.创建一个文件夹,和复制配置zoo.cfg文件2.修改cfg配置文件3.在每一个文件夹中的dataDir下创建myid文件,并且根据配置文件中的信息,设置myid内容为服务器编号4.参照1.2.3步骤,再配置一个服务器5.启动三台服务器 sh zkSevver.sh start xxx.cfg #指定以哪个配置文件启动服务器6.检查服务器状态 sh zkServer.sh status xxx.cfg #检查之地服务器的状态2.zab协议

2020-06-16 18:08:43 349

原创 81-java-zookeeper(1) -zookeeper单机/原生api/应用场景

本文架构如图一.简介1.功能及用途1.维护配置信息2.分布式锁3.集群管理4.生成分布式唯一id2.设计目标及优点优点1.高性能内存,存储数据2.高可用集群部署3.严格顺序访问生成的全局唯一的id,分布式锁对比redisrediszookeeper存储类型内存内存数据类型k-v树形结构性能高中高可用好好目标数据缓存分布式辅助功能应用场景缓存数据库分布式锁/配置中心设计目标由于zooke

2020-06-16 11:55:25 180

原创 80-java-springboot(6)-错误处理/修改默认的web容器

一.异常处理异常处理分为两类,一类是返回异常的json数据,一类是返回异常的页面.1、SpringBoot默认的错误处理机制默认效果:1)、浏览器,返回一个默认的错误页面浏览器发送请求的请求头:2)、如果是其他客户端,默认响应一个json数据发起的请求:2、SpringBoot错误机制的原理可以参照ErrorMvcAutoConfiguration;错误处理的自动配置; 给容器中添加了以下组件:DefaultErrorAttributes:作用: 错误的属性配置,包括时间

2020-06-12 17:55:38 163

原创 79-java-springboot(5)-国际化

三.国际化1、编写国际化配置文件,抽取页面需要显示的国际化消息说明:1.新建一个文件xxx.properties2.新建一个文件xxx_en_US.properties上面两步完成之后,springboot会扫描出我们是要做国际化,会自动生成国际化视图.3.添加其他语言的properties文件4.分别给所有的文件,对应的属性设值.2、SpringBoot自动配置好了管理国际化资源文件的组件;MessageSourceAutoConfiguration #springboot默认注

2020-06-12 17:37:38 191

原创 78-java-springboot(4)-web/Thymeleaf

springboot的web环境spring官网文档:https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/html/spring-boot-features.html本文所有配置,均参考WebMvcAuotConfiguration这个类.这个类也是springbootweb模块的主要配置类.WebMvcAuotConfiguration一.springboot对静态资源的默认规则.1)、所有 /webjars/** ,都

2020-06-12 17:36:39 137

原创 77-java-springboot(3)-日志

日志基础使用参考文章:https://editor.csdn.net/md/?articleId=105598438一.springboot默认日志及配置1.默认日志框架springboot默认使用slf4j+logback框架二.切换springboot的日志框架

2020-06-12 11:32:38 108

原创 76-java-springboot(2)-启动原理分析及自定义starter

本文主要分析springboot启动原理分析及自定义starter一.springboot原理三问1.首先我们springBoot加载自己编写的bean是怎么加载的?思考: 加载bean到容器,无外乎,递归扫描基础包,找到相应的注解修饰的类,然后放入容器.所以我们需要指明基础包.实现: 通过这个注解@AutoConfigurationPackage 获得当前主启动类的包,并且以这个包为基础包2.其次我们导入其他starter项目的时候,他怎么帮我注入bean到容器的?思考1: 上

2020-06-11 18:25:09 195

原创 75-java-springboot(1)-概述/配置文件详解

spring boot

2020-06-03 09:37:33 156

原创 74-java-网络概述

本文结构

2020-06-02 11:22:03 101

原创 73.java项目-IO

IO一.IO是什么?java io是inputstream和outputStream的总称,其实就是java输入和输出的总称.如果换我们来设计的话,有两个问题需要考虑:第一从哪里读写.第二读写出来的结果是什么类型.所以解决第一个问题,我们定义了统一的接口,从不同地方读取,我们就是这个接口的不同实现;解决第二个问题,我们设置了不同的接口,如流式读取,我们的顶层接口为inputStream/outputStream,而字符型顶层接口为reader和writer.二.IO的分类IO的分类方式

2020-06-01 17:00:27 160

原创 72.java项目--maven

maven的架构如图maven

2020-05-25 01:26:09 122

原创 71.java项目--nginx

nginx

2020-05-21 20:58:30 284

原创 70.java项目--linux

本文的架构如图一.linux概述1.linux的历史概述Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。特点:all is file(一切皆为文件)Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也

2020-05-19 00:33:23 212

原创 69.java项目--git/github

本文架构一.git的概述git是一各分布式的版本管理工具,用于代码的管理.1.git和SVN的原理区别svn代码统一交由代码库管理,我们开发人员编写代码的时候需要从远程库下载,再编写.如果代码库宕机或者出现故障,则我们将丢失代码的版本,修改等等,因为我们本地只有代码,没有这个项目的所有变更的细节----这就是单点故障git为了解决svn的单点故障,git在本地同样也有一个本地库,并且代码只有commit到了本地库,在由本地库推送到远程的github仓库,所以如果远程的git如果丢失了,我们

2020-05-18 16:45:45 474

空空如也

空空如也

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

TA关注的人

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