自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yiXin_Chen的博客

亦昕解码

  • 博客(319)
  • 资源 (6)
  • 收藏
  • 关注

原创 spring cloud 常用的核心组件以及作用

1. spring cloud 常用的核心组件服务注册与发现——Netflix Eureka客户端负载均衡——Netflix Ribbon服务熔断器——Netflix Hystrix服务网关——Netflix Zuul服务接口调用——Netflix Feign服务跟踪——Netflix Sleuth聚合Hystrix监控数据——Netflix Turbine分布式配置——Spring Cloud Config2.springCloud核心组件作用以及解决了什么问题3. 详细

2022-03-12 15:39:13 2698 2

原创 HashMap、HashTable和ConCurrentHashMap异同比较

性能:ConcurrentHashMap(线程安全) > HashMap > HashTable(线程安全)区别对比一(HashMap 和HashTable 区别):1、HashMap 是非线程安全的,HashTable 是线程安全的。2、HashMap 的键和值都允许有null 值存在,而HashTable 则不行。3、因为线程安全的问题,HashMap 效率比HashTable 的要高。4.HashMap的扩容方式是:默认大小是16,扩容规则:2的指数倍...

2022-03-12 14:21:56 640

原创 线程状态之间的转换及调用的方法

java线程的六种状态及转换:线程状态 解释 调用方法 new 初始状态,创建线程 new Thread() , 调用 Thread 类的构造方法。 而这个构造方法,最终都会调用 Thread 类的 init() 方法 runnable 就绪状态(ready)(调用start,等待调度)+正在运行(running) start() 方法, 从运行到就绪调用了yield() blocked .

2022-03-11 20:33:34 530

原创 事务的隔离级别

一.什么是事务?事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。假如A转账给B 100 元,先从A的账户里扣除 100 元,再在 B 的账户上加上 100 元。如果扣完A的100元后,还没来得及给B加上,银行系统异常了,最后导致A的余额减少了,B的余额却没有增加。所以就需要事务,将A的钱回滚回去,就是这么简单。二.事务的四大特性原子性:事务作为一个整体被执行,包含在其中的对数据库的操作要么全部都执...

2022-03-11 11:49:27 1496

原创 MySQL索引创建及使用

一.索引的作用数据库索引好比是一本书前面的目录,能提升数据库的查询效率.二.索引的类型1.普通索引 : index这是最基本的索引,它没有任何限制, 允许在定义索引的列中插入重复值和空值.2.主键索引 :primary 主键列中的每个值是非空唯一的, 一个主键将自动创建主键索引3.唯一索引: unique与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须是唯一的,创...

2022-03-10 23:27:17 5795

原创 字符串转int数据类型的三种方式

方法一: Integer.valueOf( )它将返回一个包装器类型 Integer,当然可以通过自动拆箱的方式将其转成 int 类型。String a = "100";String b= "50";int A = Integer.valueOf(a);int B = Integer.valueOf(b);int c = A+B;System.out.println(c);方法二:Integer.parseInt(),它将返回一个基本数据类型 int。St...

2022-03-10 16:53:06 33429

原创 decimal数据类型保留小数格式化

1. 返回前端数据保留小数可在属性上添加注解, 转成字符串格式@JsonFormat(shape = JsonFormat.Shape.STRING)2. 保留各种小数位数格式化:示例:public class TestNumberFormat{   public static void main(String[]args){    double pi = 3.1415927; //圆周率    //取一位整数    System.out.println(new Decima..

2022-03-10 12:12:46 1207

原创 Redis分布式锁实现方法

分布式锁一般有数据库乐观锁、基于Redis的分布式锁以及基于ZooKeeper的分布式锁三种实现方式。1.导入Jedis依赖引入Jedis开源组件首先我们要通过Maven引入Jedis开源组件,在pom.xml文件加入下面的代码:<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> &lt...

2022-03-08 12:10:32 643

原创 分布式事务:两阶段提交(2PC)/补偿事务(TCC)

分布式事务指事务的操作位于不同的节点上,需要保证事务的 ACID 特性。 例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。一、两阶段提交(2PC) 两阶段提交(Two-phase Commit,2PC), 通过引入协调者(Coordinator)来协调参与者的行为, 并最终决定这些参与者是否要真正执行事务。 1. 运行过程 1.1 准备阶段 协调者询问参与者事务是否执行成功,参与者发回事务执行...

2022-03-07 23:55:45 1167

原创 垃圾收集(GC) 算法

1.标记 -清除法a. 原理:“标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两 个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。也可以反过来标记不需要回收的对象。问题: i. 标记和清除两个过程效率不⾼,产⽣内存碎⽚导致需要分配较⼤对象时⽆法找到⾜够的连续内存⽽需要触发⼀次GC操 作。 2. 标记-压缩法原理:适合⽤于存活对象较多的场合,如⽼年代。它在标记-清除算法的基础上做了⼀些优化。标记阶段⼀样...

2022-03-07 17:15:19 191

原创 JVM内存模型

JVM

2022-03-07 12:14:19 7921

原创 文件上传与下载示例

1.文件上传 页面示例<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>文件上传</title> </head> <body> <form action="/f/upload" method="post" enctype="multipart/form-data"

2022-03-05 10:38:56 255

原创 spring常用注解

使用注解注入(常用) 步骤: 1) 启用注解格式, 设置spring框架需要扫描的包 2) 在需要spring框架管理的对象的类上添加对应的注解 常用的注解: @Component, 无使用位置要求的注解 @Repository, 通常使用在DaoImpl上 ...

2022-03-04 23:58:56 193

原创 java后台启动jar包的一些命令

启动方式一在jar包所在文件夹打开命令窗口,输入以下命令java -jar app.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出启动方式二java -jar app.jar &&代表在后台运行。特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。启动方式三: nohup命令linux系统启动命令: nohup java -jar xxx.jar &nohup 意思是不挂断运行命...

2022-03-04 16:49:25 34881 1

原创 maven项目打包

1. pom.xml文件配置注: 一定要有这下图部分的内容 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> .

2022-03-04 16:05:49 373

原创 配置主从数据库步骤

1.主数据库配置, 在主数据库容器中操作: 1)重新生成serverID rm -rf /usr/local/mysql/data/auto.cnf 2) 重启mysql service mysqld restart 注: 重启时, 配置文件不生效, 则执行: chmod 644 /usr/local/mysql/my.cnf 3) 修改配置文件. 在mysql的配置文件中添加如下内容: ##指定serverid, 通常...

2022-03-03 17:59:56 740

原创 重写equals方法示例

重写equals方法: 比较两个对象是否是同一个对象,如果是 , 返回true. @Override public boolean equals(Object obj) { //判断, obj的地址是否与当前对象一致 if(this == obj) return true; //判断, obj是符合Cat类的格式要求 //使用关键字(运算符) : instanceof 进行类型判断 if(!(obj instanceof Cat)) return false;

2022-03-03 11:43:22 260

原创 spring为什么默认是单例?

spring为什么默认是单例? 好处: 1)提升性能,减少了新生成实例的消耗 新生成实例消耗包括两方面,第一,spring会通过反射或者cglib来生成bean实例, 其次,给对象分配内存也会涉及复杂算法,这些都是消耗性能的操作. 2)减少垃圾回收 因为不会给每个请求都新生成bean实例,所以回收的对象也少了. ...

2022-03-01 18:02:59 1713

原创 数据库缓存

数据库缓存: 1) 一级缓存: 每个数据库的session都一个与其对应的一级缓存. 一级缓存的生命周期与对应的session一致. 一级缓存是默认生效的 作用: 会将session执行过的查询语句的结果自动保存到一级缓存中, 当同一个session再执行相同的查询时, sql将不再执行, 直接从一级缓存中提取之前的查询结果 好处:减轻数据库的查询压力,如...

2022-03-01 17:46:20 2123

原创 mybatis动态sql与关联查询示例(Mapper文件)

<?xml version="1.0" encoding="UTF-8" ?><!--必要部分, 下面的内容可以全部自己编写, mapper映射文件的声明--><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- 1. 配置根元素 属性: namesp...

2022-02-28 23:22:50 1109

原创 mybatis框架简介

1. mybatis: 数据层框架 同类框架 : hibernate 别名: 持久层框架, orm框架 ORM: Object Relationship Mapping 实体关系映射 出品公司: apache 原名: ibatis 2. 特征及设计理念: mybatis hibernate 半自动框架 ...

2022-02-28 22:50:31 729

原创 熔断:springcloud-hystrix的简介

1.2.Hystrix的作用是什么Hystrix旨在执行以下操作:提供保护并控制延迟和失败,以及通过第三方客户端库(通常是通过网络)访问依赖项导致的失败。切断复杂的分布式系统中的级联故障。快速响应并快速恢复。回退并在可能的情况下正常降级。启用近乎实时的监视,警报和操控。...

2022-02-28 16:56:22 234

原创 网关(gateway)简介与作用

网关的英文名称:gateway,又叫做网间连接器、协议转换器。网关是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换等网络兼容功能的设施。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。1.网关既可以用于广域网互连,也可以用于局域网互连。2.网关是一种充当转换重任的计算机系统或设备。3.在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。4....

2022-02-28 09:11:35 9064

原创 JWT(Json Web Token)实现无状态登录

1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务..

2022-02-28 09:06:27 687

原创 token在前端页面的处理

token在登录页面及加载登录用户信息页面的处理

2022-02-28 09:06:06 1310

原创 分布式注册中心

一、分布式注册中心 分布式架构中的所有服务器都向中心注册服务器信息 应用a访问应用b时, 则应用a首先通过应用b的应用名称向注册中心获取最新的ip地址, 再根据ip地址访问应用b在分布式架构中,服务会注册到注册中心,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。二、注册中心原理主要包括三个角色:服务提供者、服务消费者、注册中心。运行原理差不多是:1.、微服务在启动时,将自己的网络地址等信息注册到注册中心...

2022-02-28 09:05:55 859

原创 token的作用

token是服务端生成的一串字符串, 充当客户端进行请求的一个令牌, 当第一次登录后, 服务器生成一个token, 将token返回客户端, 客户端存储token, 客户端只需带上token来请求数据即可, 服务端验证token并返回数据.token的作用:1. 防止表单重复提交客户端首次登录时, 调用后端代码, 后端生成一个token返回给客户端, 客户端存储token, 可以存在cookie 中或者Local Storage(本地存储) ,客户端再次访问时, 将request中的token与

2022-02-27 01:43:51 7570

原创 获取用户使用设备信息的两种方法

方式一: 通过 HttpServletRequest 获取public Object login(User user, HttpServletRequest request){ //获取设备信息 String userAgent = request.getHeader("user-agent");}方式 二:通过 @RequestHeader获取public Object login(User user, @RequestHeader("user-agent") ...

2022-02-27 01:31:14 2426

原创 设置静态资源的硬盘路径示例

spring: resources: static-locations: file:d://jt46/images/,classpath:/pages/,classpath:/static/

2022-02-27 01:24:29 243

原创 缓存穿透/ 缓存击穿 / 缓存雪崩

1. 缓存穿透: 不断地查询一个sql中不存在的数据 ,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存, 这将导致这个不存在的数据的每次请求都要到数据库中去查询,进而给数据库带来压力. 解决方式:可将查询不到的数据在缓存中存空值,设置过期时间 2.缓存击穿:指一个key非常热点,在不停地扛着大并发, 大并发集中对这个点进行访问,当key失效的瞬间,持续的大并发就会突破缓存,直接请求数据库. 解决方式...

2022-02-27 01:19:29 376

原创 使用缓存的流程(步骤)

使用缓存的流程(步骤): 查询请求 ---> redis中查询 --->有数据则返回, 没有则到sql中查询 ---> 将数据保存到redis中 ---> 返回 ...

2022-02-27 01:05:06 288

原创 springboot整合redis

1. pom.xml文件添加依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.

2022-02-27 00:57:39 87

原创 Redis简介

Redis 的启动及数据类型

2022-02-27 00:36:03 156

原创 配置本机域名

C盘 --> Windows --> System32 --> drivers --> etc --> hosts示例:# localhost name resolution is handled within DNS itself.# 127.0.0.1 localhost# 127.0.0.1 exam.cn

2022-02-27 00:10:45 774

原创 在类中获取application.yml文件中的配置信息示例

application.yml文件:server: port: 8181spring: profiles: demo1---server: port: 8182spring: profiles: demo2---server: port: 8183spring: profiles: demo3---类:package com.controller;import org.springframework.beans.factory.annotation

2022-02-27 00:06:43 207

原创 Nginx简述及负载均衡策略

2022-02-26 23:51:42 2010

原创 正向代理 / 反向代理

正向代理 / 反向代理

2022-02-26 23:49:01 4323 3

原创 实现负载均衡的2种解决方案

注: NAT 为网络地址转移, 访问进来时, 最初以LVS将访问进行地址转移到内部的Nginx, 由 Nginx 进行负载均衡

2022-02-26 23:06:36 289

原创 集群与分布式

1. 分布式的每台服务器提供的是不同的功能2. 集群的每台服务器提供的是相同的功能

2022-02-26 23:01:07 87

原创 nginx使用注意事项/常用命令

1. 转发路径的末尾是否有‘/’ 1) 有'/', 则在转发时, 将用于匹配的字符串从url中去除 jt46.com/test1 >>> 127.0.0.1:8081/ 2) 没有'/', 则按照原有的url直接转发 jt46.com/test1 >>> 127.0.0.1:8081/test1 2. 常用命令: 启动: start nginx 停止: nginx -s stop ...

2022-02-26 22:50:51 2026

mybatis动态sql及关联查询项目示例

javaEE项目

2022-02-28

token在前端页面的处理及java后台代码( 登录 /加载登录用户的信息/ 置换token

token在前端页面的处理及java后台代码( 登录 /加载登录用户的信息/ 置换token

2022-02-27

RabbitMQ 消息中间件示例: 抢购

以抢购为例, 给抢购用户发布消息

2022-02-24

消息中间件-- -activemq项目示例

简单示例如何 使用

2022-02-21

消息中间件--rabbitmq项目示例

消息中间件--rabbitmq项目示例

2022-02-21

用docker-compose搭建集群的nginx配置文件及docker-compose.yml文件示例.rar

用docker-compose搭建集群的nginx配置文件及docker-compose.yml文件示例.rar

2022-01-18

空空如也

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

TA关注的人

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