- 博客(57)
- 资源 (3)
- 收藏
- 关注
原创 java中RabbitMQ的使用
SpringBoot整合RabbitMQ 使用Spring Cloud Stream对RabbitMQ进行消息发送 使用 Spring Cloud Stream 构建消息驱动微服务
2021-01-24 14:42:16
280
原创 java多线程中的概念
线程内存模型 参考: 多线程-内存模型 java线程详解 概述:每个线程都有自己的工作内存,在JVM层面,包含: 程序计数器 线程栈 线程分类 常规划分为两类: 用户线程:除守护线程都是用户线程 守护线程:为用户线程提供一种通用的服务,典型如GC线程,当进程中不存在非守护线程,则守护线程会自动销毁 用户线程转变为守护线程:用户线程在start之前可以通过setDaemo(true)来转变为守护线程。如果在start之后调用setDaemo(true),将会throw IllegalThreadS
2021-01-24 11:45:43
238
原创 Docker Compose部署Redis
单机 version: '2' services: redis: image: redis:buster container_name: docker_redis_single volumes: - /usr/local/docker/redis/data:/data - /usr/local/docker/redis/conf/redis.conf:/etc/redis/redis.conf - /usr/local/docker/redis
2021-01-24 11:29:33
235
原创 RabbitMQ学习笔记-02.消息
持久化消息 指消息想要从Rabbit崩溃中恢复,那么消息必须: 把投递模式(delivery mod)设置为 2,即持久 发送到持久化的交换器 到达持久化的队列 如何保证消息发送成功 方法1 使用发送方确认机制,只有消息安全到达了队列后,RabbitMQ会向生产者发送一条确认消息,生产者可以根据确认消息进行相关函数的回调 方法2 如果消息没有匹配路由,则可以在发布消息的时候加入mandatory参数,设置为true,则未路由的消息可以返回给生产者,生产者可以通过添加ReturnListener监听器来去
2021-01-23 21:48:02
366
1
原创 RabbitMQ学习笔记-01.入门
是什么 一个基于AMQP(高级消息队列协议)的消息中间件。 如何安装 windows,linux,docker安装 RabbitMQ的安装 docker-compose安装 version: '2' services: #rabbitmq container rabbitmq: #setup host name hostname: rabbit1 container_name: rabbit1 #use docker images image: rabbitm
2021-01-23 21:44:40
223
原创 RocketMQ笔记4-顺序消息
简介 消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。 全局有序:发送和消费参与的queue只有一个,效率低,不推荐 分区有序:有多个queue,但是每个queue中的消息的发送和消费都是有序的 要点 消息顺序发送 单线程同步发送 消息顺序储存 重写MessageQueueSelector接口中的select() 实现消息路由到一个queue 消息顺序消费 设置该监听器MessageListenerOrderl
2021-01-23 21:41:29
160
原创 RocketMQ笔记3-事务型消息
事务型消息简介 RocketMQ事务消息(Transactional Message) 是指应用本地事务和发送消息操作可以被定义到全局事务中,要么同时成功,要么同时失败。RocketMQ的事务消息提供类似 X/Open XA 的分布事务功能,通过事务消息能达到分布式事务的最终一致。 过程 阶段一(发送消息,执行本地事务,更行消息状态) 发送消息(half消息) 服务端响应消息写入结果 根据发送结果执行本地事务(如果写入失败,此时half消息对业务不可见,本地逻辑不执行) 根据本地事务状态执行Co
2021-01-23 21:40:55
194
原创 RocketMQ笔记2-主从模式
主从模式 2n1m1s主从搭建 可以保障消息的即时性与可靠性,主从节点可以消息同步 主节点挂掉,从节点无法接收消息,但是可以提供消费者数据进行消费 主节点重新上线后进行消费进度offset同步 生成者 核心参数 producerGroup: 组名,一个应用只有一个 defaultTopicQueueNums:在发送消息时,自动创建服务器不存在的 topic,默认创建的队列数 sendMsgTimeout:发送消息超时时间,如果无法将消息发送到Broker,重试 compressMsgBodyOver
2021-01-23 21:39:41
675
原创 RocketMQ笔记1-简介-单点模式-生产者消费者的使用-工作流程
简介 RocketMQ是一款分布式,队列模型的消息中间件 RocketMQ开发者指南 单机版安装 通过docker安装RocketMQ Server + Broker + Console,至少需要 2G 内存 docker-compose.yml 如下: version: '3.5'services: rmqnamesrv: image: foxiswho/rocketmq:server container_name: rmqnamesrv port
2021-01-23 21:38:37
439
原创 通过log.io对各日志文件进行汇总查看
Node.js 安装 菜鸟教程Node.js安装 设置 npm 淘宝镜像 npm config set registry https://registry.npm.taobao.org npm config get registry log.io 简介 官网地址 github地址 安装服务端 npm install -g log.io 配置服务端 找到 log.io vi log.io/config.json 内容如下,根据自己的要求设置port和host { "messageServ
2021-01-23 21:33:31
726
原创 docker安装 Elasticsearch+Kibana
前提 安装了docker,docker-compose,pull了相关的镜像,创建了相关的存放目录 本文相关环境如下: linux:ubuntu:16.04 docker version:19.03.1 docker-compose version:1.24.1 elasticsearch kibana version:7.3.0 docker 安装 docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name
2021-01-23 21:27:14
153
原创 docker-compose 安装nginx
默认已经安装好了 docker-compose 配置 创建目录 根据自己的需要存放位置 mkdir -p /usr/local/docker/nginx mkdir -p /usr/local/docker/nginx/data/conf.d mkdir -p /usr/local/docker/nginx/data/log mkdir -p /usr/local/docker/nginx/data/conf docker-compose.yml vi /usr/local/docker/ngin.
2021-01-23 21:25:17
2430
原创 SpringBoot项目中的定时任务实现方法
@Scheduled注解 开启条件 在启动类上加上 @EnableScheduling 注解 示例: @EnableScheduling @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 使用方式 作用在方法上 可选参数:(常用)cron,fix
2021-01-23 21:02:41
397
原创 log.io日志实时显示
Node.js 安装 菜鸟教程Node.js安装 设置 npm 淘宝镜像 npm config set registry https://registry.npm.taobao.org npm config get registry log.io 简介 官网地址github地址 安装服务端 npm install -g log.io 配置服务端 找到 log.io vi log.io/co...
2020-07-18 11:24:00
83
原创 (转载)SpringBoot Api接口防刷
aop+redis实现ip请求方法防刷 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--...
2020-06-04 22:50:00
114
原创 FastJson的使用
FastJson 通过maven引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.46</version> </dependency>...
2020-05-06 21:28:00
86
原创 (收藏)SpringSecurity系列博文
Spring Security添加图形验证码 Spring Security添加记住我功能 Spring Security短信验证码登录 Spring Security Session管理 Spring Security OAuth2入门 Spring Security OAuth2自定义Token获取方式 Spring Security OAuth2自定义令牌配置 Spring Securi...
2019-11-09 21:51:00
76
原创 SpringSecurity笔记2-自定义认证
自定义用户 说明 用户名和密码一般存储于数据库中,表单输入的用户名和密码与数据库查询出来的用户名和密码进行比对 以下例子为SpringSecurity5.x 实现UserDetailsService接口 @Service public class UserService implements UserDetailsService { @Override public Use...
2019-11-09 18:46:00
87
原创 SpringSecurity笔记1-初印象
简介 SpringSecurity是一个基于javaEE安全管理框架,主要功能为认证和授权 Spring Security 参考手册 基本原理 Spring Security 工作原理概览 简单流程 客户端发起一个请求,进入 Security 过滤器链。 当到 LogoutFilter 的时候判断是否是登出路径,如果是登出路径则到 logoutHandler ,如果登出成功...
2019-11-08 23:59:00
75
原创 Java多线程基础
线程内存模型 参考: 多线程-内存模型java线程详解 概述:每个线程都有自己的工作内存,在JVM层面,包含: 程序计数器 线程栈 线程分类 常规划分为两类: 用户线程:除守护线程都是用户线程 守护线程:为用户线程提供一种通用的服务,典型如GC线程,当进程中不存在非守护线程,则守护线程会自动销毁 用户线程转变为守护线程:用户线程在start之前可以通过setDaemo(true)来转...
2019-10-06 17:15:00
58
原创 (转)IDEA ERROR:找不到或无法加载主类
一 首先要检查你的编译输出路径File----project struture,如图 二 网上的解决办法一般使用第一步就解决了,但是我遇到的问题比较奇葩,我的项目结构是一个工程下面多个模块,如图 三 我要运行registry模块下面的某个类,一直报找不到或无法加载主类,其实我已经按照第一步配置好了路径,后来发现是因为父工程的source folder被设置成registry模块的sourc...
2019-09-15 17:38:00
76
原创 java中应对高并发的两种策略
目的:提高可用性 通过ExecutorService实现队列泄洪 //含有20个线程的线程池 private ExecutorService executorService = Executors.newFixedThreadPool(20); 将有并发压力的下游代码放入到线程池的submit方法中,如下: //同步调用线程池的submit方法 简单实现 拥塞窗口为20的队列泄洪(一个服务...
2019-09-13 15:45:00
66
原创 Java中的验证码实现
实例: /** * Created by hzllb */ import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.io.FileOutputStream; import ja...
2019-09-13 15:17:00
68
原创 (转) Lua之coroutine基础
感觉是比较老的文章了,但是对于我这种新手还是很有帮助的v_v 一、基本环境: Microsoft Windows XP/Service Pack 2 Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio 二、 coroutine的接口: (1) coroutine.create() (2) coroutine.resume() (3) corou...
2019-09-04 17:17:00
111
原创 SpringBoot加入Guava Cache实现本地缓存
也可以参考这里 在pom.xml中加入guava依赖 1 <dependency> 2 <groupId>com.google.guava</groupId> 3 <artifactId>guava</artifactId> 4 <version>18.0</versi...
2019-09-04 12:03:00
116
原创 CentOS7安装Mysql
说明:命令从上往下 yum install mysql* 安装mysql相关依赖 yum install mariadb-server systemctl start mariadb.service mysqladmin -u root password xxxx 设置root用户密码 mysql -uroot -p xxxx 登录mysql grant all privileges o...
2019-08-29 08:43:00
49
原创 SpringBoot中全局异常处理
参考:这里 统一返回UI格式类型 1 public class CommonReturnType { 2 //返回给UI的数据 3 private Object data; 4 //返回给UI的状态 5 private String status; 6 7 public static CommonReturnType create(Obj...
2019-08-27 20:18:00
63
原创 Docker-Compose简单使用
参考文档 Compose 快速入门 简介 Compose项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。开源地址在这 Compose定位是 「定义和运行多个 Docker 容器的应用」 Compose中有两个重要的概念: 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 项目 (project):由一组关联的应用容器...
2019-08-01 00:02:00
71
原创 Docker简单部署Mysql 5.7
获取镜像 1 docker pull mysql:5.7.22 启动mysql docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/my...
2019-07-31 19:12:00
65
原创 IntelliJ IDEA 常用快捷键
Ctrl + Alt +S 打开设置 连按两下shift 查找 Ctrl + Alt + L 格式化代码 Alt + Insert (已自定义为Alt + i)生产面板 Ctrl +D (自定义删除当前行) Ctrl + Y (自定义复制当前行) Ctrl + o 重写方法 Ctrl + i 实现方法 Ctrl + R 内容替换 iter 生成增强for itli l...
2019-07-31 12:05:00
54
原创 Dockerfile定制镜像入门
参考文档 简单案例 Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 在一个空白目录中,建立一个文本文件,并命名为Dockerfile: 1 $ mkdir mynginx 2 $ cd mynginx 3 $ touch Dockerfile 其内容为: 1 FROM nginx...
2019-07-30 22:24:00
60
原创 Docker常用命令
镜像(Images) 下载镜像: 1 docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如:(如果不写标签号,则默认为lastest) 1 docker pull ubuntu:16.04 查找镜像: 1 docker search httpd 查看下载的镜像: 1 docker images 删除镜像: 1 dock...
2019-07-30 16:40:00
58
原创 Docker简单入门
参考文档1 文档2 一:Docker简介 Docker是一种容器技术,容器技术是实现操作系统虚拟化的一种途径。与传统虚拟机相比: 虚拟机:每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。 Docker:宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运...
2019-07-30 14:43:00
61
原创 SpringBoot学习笔记6_整合Redis
三十四 SpringBoot整合Redis(结合 SpringBoot整合Mybatis) 34.0 该案例是实现单机版Redis整合 34.1 相关依赖 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <...
2019-07-27 22:52:00
71
原创 Maven集成 springboot 有两种方式
文章来源:https://www.cnblogs.com/cxygg/p/9559618.html 1 直接 父项目指向 springboot 1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-bo...
2019-07-27 21:00:00
79
原创 SpringBoot学习笔记5-整合Email-文件上传-Neo4J-打包为war包
二十九 SpringBoot整合Email 以下演示的是简单邮件发送 29.1 加入相关依赖 1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-sta...
2019-07-26 21:35:00
268
原创 SpringBoot学习笔记4-整合Jdbc Template-Mybatis-多数据源-事务管理-JPA
二十三 SpringBoot整合JdbcTemplate 23.1 添加相关依赖(已经添加了spring-boot-starter-web) 1 <!-- JdbcTemplate的依賴 --> 2 <dependency> 3 <groupId>org.springframework.boot...
2019-07-24 11:40:00
87
原创 SpringBoot学习笔记3-自定义拦截器-全局异常处理-Freemarker-Thymeleaf-定时任务调度...
十六:自定义拦截器 参考文档 16.1 编写拦截器类 extendsWebMvcConfigurerAdapter并重写WebMvcConfigurerAdapter,如下: 1 package com.wu.interceptor; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servle...
2019-07-22 16:42:00
67
原创 SpringBoot学习笔记2-日志管理-开发模式-web开发-FastJson
九:创建父工程 注意:打包方式选择为pom 将创建SpringBoot常用的依赖和插件放在父工程的pom.xml,如下: 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:...
2019-07-20 21:18:00
82
原创 SpringBoot学习笔记1-简介-全局配置文件-starter-profiles-自动配置原理
参考教程1,教程2 一:SpringBoot简介 目的: 简化Spring 应用的初始搭建以及开发过程 优势: 1,快速建立独立运行的Spring项目以及与主流框架集成 2,使用嵌入式的Servlet容器,应用无需打成war包 3,starters(启动器)自动依赖与版本控制 4,大量的自动配置,简化开发,也可以修改默认值 5,无需配置xml,无代码生成,开箱即用 5,准生成环境的运行时应用监控...
2019-07-20 18:09:00
1033
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅