8 当我遇上你csy

尚未进行身份认证

我要认证

公众号【当我遇上你】 博客: https://idea360.cn/

等级
TA的排名 4w+

springboot-mybatis-oracle学习笔记

前言最近公司的项目是基于 oracle 数据库的,这里记录下 springboot+mybatis+oracle 的踩坑过程。开发前准备环境参数开发工具:IDEA基础工具:Maven+JDK8所用技术:SpringBoot+Mybatis+Oracle数据库:MySQL5.7SpringBoot 版本:2.2.6.RELEASEMybatis 版本: 2.1.2Oracle:...

2020-04-13 22:33:26

spring-cloud-gateway降级

前言本文主要研究一下 spring cloud gateway 如何集成 hystrix。当下游接口负载很大,或者接口不通等其他原因导致超时,如果接口不熔断的话将会影响到下游接口得不到喘息,网关也会因为超时连接一直挂起,很可能因为一个子系统的问题导致整个系统的雪崩。所以我们的网关需要设计熔断,当因为熔断器打开时,网关将返回一个降级的应答。Maven 配置添加 hystrix 依赖pom....

2020-04-07 23:15:36

spring-cloud-gateway限流

概述限流:网关上有大量请求,对指定服务进行限流,可以很大程度上提高服务的可用性与稳定性,限流的目的是通过对并发访问/请求进行限速,或对一个时间窗口内的请求进行限速来保护系统。一旦达到限制速率则可以拒绝服务、排队或等待、降级。在 Spring Cloud Gateway 中,有 Filter过滤器,因此可以在 pre 类型的 Filter 中自行实现上述三种过滤器。但是限流作为网关最基本的功能,...

2020-04-07 23:14:15

spring-cloud-gateway动态路由

概述线上项目发布一般有以下几种方案:停机发布蓝绿部署滚动部署灰度发布停机发布 这种发布一般在夜里或者进行大版本升级的时候发布,因为需要停机,所以现在大家都在研究 Devops 方案。蓝绿部署 需要准备两个相同的环境。一个环境新版本,一个环境旧版本,通过负载均衡进行切换与回滚,目的是为了减少服务停止时间。滚动部署 就是在升级过程中,并不一下子启动所有新版本,是先启动一台新版本,再...

2020-04-04 17:30:03

spring-cloud-gateway静态路由

为什么引入 API 网关使用 API 网关后的优点如下:易于监控。可以在网关收集监控数据并将其推送到外部系统进行分析。易于认证。可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证。减少了客户端与各个微服务之间的交互次数。基本环境见 spring-cloud-gateway 简介, 项目中 provider1 的 maven 配置在此做下更正pom.x...

2020-04-04 16:16:09

activiti6官方示例笔记

概述要想学习 activiti工作流, 入门便是学习官方的示例。下边我将基于官方的 demo 做一遍流程,考虑自己的业务该如何基于 activiti 设计逻辑。工作流要素:流程表单用户有了以上 3 大要素,流程便可以流转。表单绑定在流程节点上,用来输入当前流程信息用户绑定在流程节点上,用来处理当前流程任务下载安装首先到 官方 下载 activiti6.0.0。对 ...

2020-04-02 23:02:16

spring-cloud-gateway过滤器实践

概述这里是 SpringCloud Gateway 实践的第一篇,主要讲过滤器的相关实现。Spring-Cloud-Gateway 是以 WebFlux 为基础的响应式架构设计, 是异步非阻塞式的,它能够充分利用多核 CPU 的硬件资源去处理大量的并发请求。本篇将基于 spring-cloud-gateway 简介 基础环境进行改造。工作原理Spring-Cloud-Gateway 基于过...

2020-04-01 22:29:13

spring-cloud-gateway简介

概述API网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求。如果让客户端直接与各个微服务通信,会有以下的问题:客户端会多次请求不同的微服务,增加了客户端的复杂性。存在跨域请求,在一定场景下处理相对复杂。认证复杂,每个服务都需要独立认证。难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合...

2020-04-01 22:27:08

设计模式--策略模式

1. 概述策略模式(Strategy Pattern)是比较典型的对象行为型模式,它是将对处理对象的一系列不同算法都单独抽离出来,单独封装成一个个类。策略的出现,主要是为了解决不同算法替换时的逻辑判断,将逻辑判断移到 Client 中去(即由客户端自己决定在什么情况下使用什么具体策略)。2. 模式结构策略模式包含如下角色:Context: 环境类,也叫做上下文角色,起承上启下封装作用; ...

2020-03-18 20:29:27

学习ConcurrentHashMap1.7分段锁原理

1. 概述接上一篇 学习 ConcurrentHashMap1.8 并发写机制, 本文主要学习 Segment分段锁 的实现原理。虽然 JDK1.7 在生产环境已逐渐被 JDK1.8 替代,然而一些好的思想还是需要进行学习的。比方说位图中寻找 bit 位的思路是不是和 ConcurrentHashMap1.7 有点相似?接下来,本文基于 OpenJDK7 来做源码解析。2. Concurr...

2020-03-17 22:01:09

学习ConcurrentHashMap并发写机制

1. 前言上篇文章讲了 Unsafe 类中 CAS 的实现,其实是在为这篇文章打基础。不太熟悉的小伙伴请移步Unsafe 中 CAS 的实现。本篇文章主要基于 OpenJDK8 来做源码解析。2. 源码ConcurrentHashMap 基于 HashMap 实现。JDK1.7 和 JDK1.8 作为并发容器在实现上是有差别的。JDK1.7 通过 Segment 分段锁实现,而 JDK1....

2020-03-15 23:53:01

Unsafe中CAS的实现

前言Unsafe 是位于 sun.misc 包下的一个类。Unsafe 提供的 API 大致可分为内存操作、CAS、Class 相关、对象操作、线程调度、系统信息获取、内存屏障、数组操作等几类。由于并发相关的源码很多用到了 CAS,比如 java.util.concurrent.atomic 相关类、AQS、CurrentHashMap 等相关类。所以本文主要讲 Unsafe 中 CAS 的实现...

2020-03-15 11:17:26

LinkedHashMap源码解读

1. 前言还是从面试中来,到面试中去。面试官在面试 Redis 的时候经常会问到,Redis 的 LRU 是如何实现的?如果让你实现 LRU 算法,你会怎么实现呢?除了用现有的结构 LinkedHashMap 实现,你可以自己实现一个吗?跳跃表、小顶堆行不行…阅读这篇文章前建议大家先熟悉下Java 面试必问之 Hashmap 底层实现原理(JDK1.8)。LinkedHashMap 基于 Ha...

2020-03-14 00:24:32

Hashset源码分析

1. 概述Hashset 实现 set 接口,底层基于 Hashmap 实现, 但与 Hashmap 不同的实 Hashmap 存储键值对,Hashset 仅存储对象。HashSet 使用成员对象来计算 hashcode 值。2. 原理在《Head fist java》一书中有描述:当你把对象加入 HashSet 时,HashSet 会先计算对象的 hashcode 值来判断对象加入的位...

2020-03-12 18:08:13

复盘MySQL分页查询优化方案

一、前言MySQL分页查询作为Java面试的一道高频面试题,这里有必要实践一下,毕竟实践出真知。很多同学在做测试时苦于没有海量数据,官方其实是有一套测试库的。二、模拟数据这里模拟数据分2种情况导入,如果只是需要数据测试下,那么推荐官方数据。如果官方数据满足不了需求的话,那么我们自己模拟数据。1. 导入官方测试库下载 官方数据库文件 或者在 github 上下载。该测试库含有6个表。...

2020-03-10 21:53:14

Java面试必问之Hashmap底层实现原理(JDK1.8)

1. 前言上一篇从源码方面了解了JDK1.7中Hashmap的实现原理,可以看到其源码相对还是比较简单的。本篇笔者和大家一起学习下JDK1.8下Hashmap的实现。JDK1.8中对Hashmap做了以下改动。默认初始化容量=0引入红黑树,优化数据结构将链表头插法改为尾插法,解决1.7中多线程循环链表的bug优化hash算法resize计算索引位置的算法改进先插入后扩容2. H...

2020-03-06 09:44:05

Java面试必问之Hashmap底层实现原理(JDK1.7)

1. 前言Hashmap可以说是Java面试必问的,一般的面试题会问:Hashmap有哪些特性?Hashmap底层实现原理(get\put\resize)Hashmap怎么解决hash冲突?Hashmap是线程安全的吗?…今天就从源码角度一探究竟。笔者的源码是OpenJDK1.72. 构造方法首先看构造方法的源码 // 默认初始容量 static final ...

2020-03-05 13:09:24

Docker实战之Kafka集群

1. 概述Apache Kafka 是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统。其具有高吞吐量、内置分区、支持数据副本和容错的特性,适合在大规模消息处理场景中使用。笔者之前在物联网公司工作,其中 Kafka 作为物联网 MQ 选型的事实标准,这里优先给大家搭建 Kafka 集群环境。由于 Kafka 的安装需要依赖 Zookeeper,对 Zookeeper 还不了解的小伙伴...

2020-03-04 20:06:23

Docker实战之Zookeeper集群

1. 概述这里是 Docker 实战系列第四篇。主要介绍分布式系统中的元老级组件 Zookeeper。ZooKeeper 是一个开源的分布式协调服务,是 Hadoop,HBase 和其他分布式框架使用的有组织服务的标准。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。读过 D...

2020-03-03 22:17:13

Docker实战之Consul集群

前言最近参加了几场 Java 面试,发现大多数的微服务实践还是 Eureka 偏多,鉴于笔者的单位选型 Consul,这里对 Consul 做简单总结。该篇是 Docker 实战系列的第三篇。传送门:Docker 实战之 MySQL 主从复制Docker 实战之 Redis-Cluster 集群为什么选 Consul?首先 Consul 有以下几个关键特性:服务发现:支持服务发...

2020-03-02 23:13:10

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。