Docker—Docker Compose(七)
Docker ——DockerFile build run 手动操作,单个容器! 微服务。100个微服务!依赖关系。 Docker Compose 来轻松高效的管理容器。定义运行多个容器。 官方介绍 …
Docker—网络(六)
理解Docker0 测试 查看本地ip ip addr 这里我们分析可得,有三个网络: lo 127.0.0.1 # 本机回环地址 eth0 172.17.90.138 # 阿里云的私有IP dock…
Docker—DockerFile(五)
我们要研究自己如何做一个镜像,而且我们写的微服务项目以及springboot打包上云部署,Docker就是 最方便的。 微服务打包成镜像,任何装了Docker的地方,都可以下载使用,极其的方便。 流程…
Docker—数据卷(四)
docker的理念回顾: 将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的! 就好比,你安装一个MySQL,结果你把容器删了,就相当于删库跑路了,这T…
Docker—镜像(三)
镜像是什么 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 Docker镜像加载原理 …
Docker—常用命令(二)
了解过Docker的基本知识后,接下来看看Docker的常用命令。 http://www.enmalvi.com/2020/10/29/docker/ 帮助命令 docker version #显示D…
Docker—安装与基本组成(一)
Docker为什么出现 1.环境(切换/配置)麻烦 一般我们写程序的,能接触到好几个环境: 自己写代码的环境叫做开发环境。给测试去跑的环境叫做测试环境。测试完可以对外使用的叫做生产环境。 其实我们在学…
Java—线程池Executors使用中的坑
我们介绍过了Java中线程池的常见用法以及基本原理。 http://www.enmalvi.com/2020/10/26/java-threadpoolexecutor-threadpooltaske…
Java—ThreadPoolExecutor/ThreadPoolTaskExecutor 线程池技术提高系统吞吐量
1、概述 在Java中,我们一般通过集成Thread类和实现Runnnable接口,调用线程的start()方法实现线程的启动。但如果并发的数量很多,而且每个线程都是执行很短的时间便结束了,那样频繁的…
Java—集合知识总结
集合概述 集合:集合是Java中提供的一种容器,可以用来存储多个数据。 集合和数组的区别: (1)数组长度的是固定的,集合的长度是可变的。 (2)数组中存储的都是同一类型的元素。集合存储的都是对象,对…
Java—Pair、MutablePair、ImmutablePair(实用数据结构推荐apache)
当一个函数返回两个值并且两个值都有重要意义时我们一般会用Map的key和value来表达,但是这样的话就需要两个键值对,用Map映射去做处理时,此时的key相当于value的一个描述或者引用,而具体的…
Java—Future、FutureTask、CompletionService、CompletableFuture多线程并发中归集问题的效率对比
开启线程执行任务,不管是使用Runnable(无返回值不支持上报异常)还是Callable(有返回值支持上报异常)接口,都可以轻松实现。那么如果是开启线程池并需要获取结果归集的情况下,如何实现,以及优…
Java8—新特性之CompletableFuture(构建异步应用)
异步 传统单线程环境下,调用函数是同步的,必须等待程序返回结果后,才可进行其他处理。因此为了提高系统整体的并发性能,引入了异步执行~ jdk中已经内置future模式的实现。Future是Java5添…
Java—Future与FutureTask的区别与联系
Future模式简述 传统单线程环境下,调用函数是同步的,必须等待程序返回结果后,才可进行其他处理。 Futrue模式下,调用方式改为异步。Futrue模式的核心在于:充分利用主函数中的等待时间,利用…
Java—Future模式(数据库连接池)
在学习了Future模式后可以来尝试着应用它,所有就有了这个数据库连接池。 http://www.enmalvi.com/2020/10/25/java-future-2/ 1、手动写一个数据库连接池…
Java—Future模式(设计思想)
Futrue模式简介 Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门。Future模式就是,当某一程序提交请求,期望得到一个答复。但…
Java—快速开发二维码生成服务(ZXing)
不知道从什么时候开始,我们的生活突然之间就充满了二维码,连街边大妈的鸡蛋饼早餐摊也贴上了二维码。而且这次疫情的管控也用上了二维码,避免手工填写造成交叉感染。那么 Java 如何开发二维码功能呢? 1.…
Mybatis—手写脱敏插件
1. 前言 在日常开发中,身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。否则容易造成个人隐私泄露,客户资料泄露,给不法分子可乘之机。但是数据脱敏不是把敏感信息隐藏起来,而是看起来像真的一…
Redis—Geo功能实现查找附近的位置
1、前言 我们平时骑共享单车或者是找酒店,餐馆的时候总是会用到查找附近的功能。 地图后台如何根据自己所在位置查询来查询附近的呢? 显然通过经纬度坐标来查询。 其次为什么不用MySQL呢?MySQL是我…
Redis—实现消息队列
redis消息队列适合轻量级高并发的情况,比如秒杀,及时数据分析等。 首先来看一下redis在SpringMvc上的配置,这个相比起Boot的配置坑会比较多! SpringMvc版 1.依赖配置 2.…
SQL 语句大全
一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- …
SpringSecurity—AuthenticationManagerBuilder (认证管理器分析)
SecurityBuilder 有它的一个重要实现 HttpSecurity,在 SecurityBuilder 的实现类里边,还有一个重要的分支,那就是 AuthenticationManagerB…
SpringSecurity—同时对接多个用户表(多数据源)
如果我们需要两个不同的 userdetailsservice 来实现不同平台查询不同的用户,怎么实现呢? 其实这个问题的核心点就是 ProviderManager 只要懂了这个, 其他的就很容易 。 …
SpringSecurity—AuthenticationManager(用户的全局和局部定义)
在 SpringSecurity 中有很多种定义用户的方式,尝试不同的用户定义可以有助于我们更好的理解SpringSecurity的源码部分! 基于 SpringSecurity 多个过滤器链来展示:…
SpringSecurity—OAuth 2-Spring Cloud 安全管理
微服务架构 在微服务中,我们一般都会有一个网关,网关背后有很多个微服务,所有的请求都是首先到达网关,再由网关转发到不同的服务上去。另外我们可能会搭建一个统一认证中心,我画一个已经过简化的架构图大家来看…
SpringSecurity—OAuth 2(十)OAuth2 结合 JWT
传统的 session 来记录用户认证信息的方式我们可以理解为这是一种有状态登录,而 JWT 则代表了一种无状态登录。无状态登录天然的具备单点登录能力,所以这个技术组合小伙伴们还是很有必要认真学习下。…
SpringSecurity—OAuth 2(九)第三方应用优化
依旧是基于授权码模式改造: http://www.enmalvi.com/2020/09/12/springsecurity-oauth-2-2/ 前面我们所写的第三方登录,我们在 Controlle…
SpringSecurity—OAuth 2(八)客户端信息入库
还是根据授权码进行改造: http://www.enmalvi.com/2020/09/12/springsecurity-oauth-2-2/ 客户端信息我们是直接存储在内存中的,像下面这样: //…
SpringSecurity—OAuth 2(七) 令牌存入 Redis
令牌往哪里存 在我们配置授权码模式的时候,有两个东西当时存在了内存中: InMemoryAuthorizationCodeServices 这个表授权码存在内存中。 InMemoryTokenStor…
SpringSecurity—OAuth 2(六)刷新Token
刷新Token,是四种授权模式共有的功能。 以授权码模式为例,当我们启动 auth-server 之后,在 IntelliJ IDEA 中,我们可以看到项目暴露出来的接口: http://www.en…