自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux系统防火墙相关问题及常用命令介绍

linux系统防火墙:centos5、centos6、redhat6系统自带的是iptables防火墙,centos7、redhat7自带firewall防火墙,ubuntu系统使用的是ufw防火墙。防火墙导致服务不正常的问题在服务器安装某些服务之后,服务无法连接、无法正常启动等情况。查看下系统防火墙有没开放相关的服务端口。(linux系统防火墙开放相关端口后还要重启防火墙,重启防火墙后防火墙规则才会生效)关于80端口应国家相关部门的相关规定,解析在国内的域名必须要备案,所以要使用80端口的客户.

2021-09-01 09:01:25 53

原创 Spring Boot与异步任务、定时任务、邮件任务

异步任务在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在 处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用 多线程来完成此类任务 。 其实,在Spring 3.x之后,就已经内置了@Async来完 美解决这个问题。使用 @EnableAysnc、@Aysnc 两个注解package com.moti.task;import org.springframework.scheduling.annotation.Async;import org.sprin

2021-09-01 09:00:27 54

原创 手把手带你实现一个短信验证码

我相信大家的手机短信里面,有两类短信占据了绝大多数,一个是快递的取件码,另一个就是各种短信验证码。就像下面这样:用大腿想一想都知道,这种短信验证码肯定是由第三方提供的服务。那么我们作为开发者和使用者,如何将短信验证码整合到我们项目中呢?本期文章,将会整合腾讯云的短信服务,以手机号注册为例,手把手带你研究一下短信验证码。腾讯云注册短信服务首先第一步,我们需要前往腾讯云,进行注册短信服务、创建应用、创建签名、创建模块等程序。https://cloud.tencent.com/完善认证信息首先

2022-05-06 11:00:56 1476

原创 简单实用的邮件任务 ,让验证码、激活链接来丰富你的登录注册

大家肯定遇到过很多下面的场景,当你在某个网站、某个APP注册信息的时候,为了验证身份,需要填写你的邮箱地址,之后邮箱可能会收到验证码,也可能会收到一个里面有激活链接的邮件,叫你点击链接进行激活。就像下面这样:这两种方式是登录注册时对邮件任务的经典应用场景。那么今天就继续上次整合登录的讲解,人脸识别和三方登录,往期的文章已经介绍了,有兴趣的回头再去看看。邮件任务SpringBoot已经为我们整合了对发送邮件的支持,也就是说我们可以使用代码,很方便的给指定的邮箱发送任意内容的邮件。整合步骤引

2022-04-28 12:45:21 532

原创 简简单单,带你撸个人脸识别登录

近期研究很多种登录系统的方式,有邮箱、手机号、QQ、微博、人脸登录等。整合了一下,用SpringBoot写了个简单的小Demo,供大家学习参考。之后在编写项目的时候你就可以选择性整合进去了,可以稍微提升一下项目B格。这期文章先讲一下我觉得挺好玩的人脸登录,我用的是百度云的人脸识别服务。实现的效果如下:登录百度云创建应用即然我们用到的是百度云的服务,那么我们首选需要登录百度云的官网https://console.bce.baidu.com/注册登录之后好像需要实名认证,认证一下就OK了,很快

2022-04-24 16:25:07 279

原创 Kafka集群的搭建与批量启停

什么是Kafka?Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域。最新官方给Kafka的定义是一个开源的分布式事件流平台(Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。Kafka集群的搭建部署服务器发行版本为CentOS7 ✖️ 三台(已安装好Java环境),三台服务器的IP为:192.168.182.4192.168.182.5192.168.182.6部

2022-03-29 10:13:06 1907

原创 SSH配置多台服务器之间的免密登陆以及登陆别名

在研究Kafka集群的时候遇到的问题,我想要在集群中的任意节点都可以操作整个集群的服务,比如启动、停止。这里就需要使用到SSH来远程执行目标服务器上面的命令,但是就会遇到一个需要登陆密码的问题,所以研究了一下SSH的免密登陆。什么是SSH?SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理

2022-03-25 20:46:41 470

原创 MongoDB简介以及核心概念

简介MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型 。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。特点面向集合存储,易存储

2021-12-27 16:22:16 244

原创 CentOS7安装MongoDB

常规安装前往官网下载安装包,我选择的版本是CentOS7,打包方式选择的tgz。之后需要将压缩包上传至服务器并解压,我上传的是/usr/local目录下,为了方便起见我还改了个名字。tar -zxvf mongodb-linux-x86_64-rhel70-5.0.5.tgz# 重命名mv mongodb-linux-x86_64-rhel70-5.0.5.tgz mongodb之后进入到此目录创建用于存储数据data和日志log的文件夹。进入到bin目录下。执行启动命令如下:./m

2021-12-27 16:03:14 745

原创 微博第三方登录,拿捏了

什么是第三方登录?用户登录操作不是基于自身建设账号体系,而是基于用户在第三方平台上已有的账号和密码来快速完成登录的过程。下面我列举了几点第三方登录的优点。极大的简化登录注册的流程。方便用户快捷登录,降低用户的登录流失率,第三方大厂的用户某种意义上都可以是你用户。传统的登录注册,如果网站较小或者用户不经常使用,可能时间长了,用户就把登录的用户名和密码忘记了。第三方登录接入后,应用可直接获取用户昵称、头像、用户ID等信息,方便产品获取用户的基本资料。国内比较广泛使用的第三方登录方式为微博、微信、QQ,

2021-12-15 16:26:47 1048

原创 引入QQ第三方登录最新解决方案

最近一段时间经常有很多朋友和我反馈,说看了我之前关于『Java引入QQ第三方登录』的视频,然后去腾讯开发者平台按照我介绍的方法去申请的时候总是审核不通过,各种各样的反馈的失败信息,但其实之前我申请是很顺利的,所以我怀疑是腾讯的审核策略发生了变化。所以这次我又帮助大家把坑踩了一遍,大家按照我下面介绍的方法再去申请就没什么问题了。新的审核策略一般会进行几轮审核,第一轮是检查你所填写的网站的信息是否和备案信息相符,第二轮的时候审核员会打开你所填写的网站地址,如果打不开则会退回申请,第三轮的时候审核员会检查你.

2021-12-08 08:17:25 650

原创 SpringBoot指定多套配置文件环境

开发阶段SpringBoot本身对项目的多环境配置已经做了非常友好的支持了,我们只需按照SpringBoot的约定去做就好。首先我们都知道,SpringBoot的默认配置文件是application.yml。配置多个环境只需要将默认配置文件复制几份,然后将文件名按照application-环境名.yml改为相应的名称,比如:测试环境:application-dev.yml生成环境:application-prod.yml我们可以将多个环境相同的配置写在application.yml默认配置文件

2021-10-15 08:51:28 886

原创 SpringBoot配置文件属性注入

属性注入在application.yml添加以下配置author: name: 莫提 age: 22 isMan: true # 日期格式必须为 yyyy/MM/dd HH:mm:ss birthday: 1999/07/29 12:00:00 # 数组或集合使用,分割 friends: 张三,李四,王五,赵六 # 此处为JSON字符串,双引号包裹 school: "{'name':'宜春学院','location':'江西-宜春','major':'计算机科学与技术

2021-10-15 08:51:11 119

原创 服务注册中心Eureka

什么是服务注册中心?所谓服务注册中心就是在整个的微服务架构中单独提出一个服务,这个服务不完成系统的任何的业务功能,仅仅用来完成对整个微服务系统的服务注册和服务发现,以及对服务健康状态的监控和管理功能。SpringCloud支持的多种注册中心Eureka、Consul、Zookeeper、以及阿里巴巴推出Nacos。这些注册中心在本质上都是用来 管理服务的注册和发现以及服务状态的检查的。服务注册中心的功能有以下几点:可以对所有的微服务的信息进行存储,如微服务的名称、IP、端口等。可以在进行服务调

2021-10-14 08:58:12 99

原创 服务注册中心Consul

简介Consul是一个可以提供服务发现,健康检查,多数据中心,Key/Value存储等功能的分布式服务框架,用于实现分布式系统的服务发现与配置,使用起来也较为简单。Consul基于Golang语言实现,因此具有天然可移植性(支持Linux、Windows和MacOS)。安装包仅包含一个可执行文件,方便部署。Consul具有分布式的、高可用的、可横向扩展的特点。官网:https://www.consul.ioConsul的功能特性特性描述服务发现(Service Discove

2021-10-14 08:57:57 96

原创 基于RestTemplate的服务调用

简介Spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,我们只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。前期准备在SpringCloud环境下创建用户服务和订单服务两个模块,引入以下依赖: <dependencies> <!--引入SpringBoot依赖-

2021-10-14 08:57:37 214

原创 基于Ribbon+RestTemplate的服务调用

简介SpringCloud Ribbon是一个基于HTTP和TCP的客户端的负载均衡工具,它基于Netflix Ribbon实现。通过SpringCloud 的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。注意这里的两个关键词:客户端:Ribbon需要将注册中心的服务示例拉去到本地进行缓存,并在本地完成负载均衡的动作,默认使用轮询的方式。负载均衡:Ribbon只是进行负载均衡的操作,选取合适的微服务示例来提供给RestTemplate,请求的操作由后者完成。

2021-10-14 08:57:09 74

原创 Ribbon的负载均衡策略

关系UML类图如图所示,可以看到在Ribbon中实现了非常多的选择策略,下面我们来详细看一下IRule接口的各个实现。AbstractLoadBalancerRule负载均衡策略的抽象类,在该抽象类中定义了负载均衡器ILoadBalancer对象,该对象能够在具体实现选择服务策略时,获取到一些负载均衡器中维护的信息来作为分配依据,并以此设计一些算法来实现针对特定场景的高效策略。RandomRule该策略实现了从服务实例清单中随机选择一个服务实例的功能。具体的选择逻辑在一个while(server

2021-10-14 08:56:41 227

原创 基于OpenFeign的服务调用

简介OpenFeign是一个声明式的web服务客户端,让编写web服务客户端变的非常容易,只需要创建一个接口并在接口上添加注解即可,OpenFeign的前身是Feign,后者目前已经停更了,OpenFeign是SpringCloud在Feign的基础上支持了Spring MVC的注解,并通过动态代理的方式产生实现类来做负载均衡并进行调用其他服务。OpenFeign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用OpenFeign,可以做到使用HTTP请求访问远程服务,就像调用本地方法

2021-10-14 08:56:21 174

原创 服务雪崩、服务熔断、服务降级

服务雪崩在微服务之间进行服务调用是由于某一个服务故障,导致级联服务故障的现象,称为雪崩效应。雪崩效应描述的是提供方不可用,导致消费方不可用并将不可用逐渐放大的过程。如存在如下调用链路:此时,Service A的流量波动很大,流量经常会突然性增加!那么在这种情况下,就算Service A能扛得住请求,Service B和Service C未必能扛得住这突发的请求。此时,如果Service C因为抗不住请求,变得不可用。那么Service B的请求也会阻塞,慢慢耗尽Service B的线程资源,Serv

2021-10-14 08:55:50 410 1

原创 服务熔断器-Hystrix

简介在分布式环境中,许多服务依赖项不可避免地会失败。Hystrix是一个库,它通过添加延迟容忍和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止它们之间的级联故障以及提供后备选项来实现这一点,所有这些都可以提高系统的整体弹性。Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统中,许多依赖不可避免的会调用失败,超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障(服务雪崩现象),提高分布式系统的弹性

2021-10-14 08:55:05 55

原创 搭建一个简单的SpringCloud环境

简介SpringCloud为开发人员提供了在分布式系统中快速构建一些通用模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线)。这是一个含概多个子项目的开发工具集,集合了众多的开源框架,利用了Spring Boot开发的便利性实现了很多功能,比如服务注册、服务注册发现、负载均衡等。SpringCloud在整合过程中主要是针对Netflix开源组件的封装。SpringCloud的出现真正的简化了分布式架构的开发。NetFlix是美国的一个在线视频网站,微服务业的翘楚,是公认的大规模生产

2021-10-14 08:54:02 60

原创 超详细的Java8-StreamAPI讲解!

先贴上几个案例,水平高超的同学可以挑战一下:从员工集合中筛选出salary大于8000的员工,并放置到新的集合里。统计员工的最高薪资、平均薪资、薪资之和。将员工按薪资从高到低排序,同样薪资者年龄小者在前。将员工按性别分类,将员工按性别和地区分类,将员工按薪资是否高于8000分为两部分。用传统的迭代处理也不是很难,但代码就显得冗余了,跟Stream相比高下立判。Stream概述Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(.

2021-10-14 08:52:47 436

原创 开源一款优秀毕业设计!

素材分享网这是一个多用户的资源共享平台,是一个专为文件共享而设计的新概念网盘系统。这是一个综合性非常强、灵活度非常高的素材网站,注册成为用户之后可以上传自己所喜欢的素材供他人浏览和高速下载。同时设立网站管理员来审核用户上传的素材以及创建不同的素材分类来方便用户去上传、搜索,以此来为素材来设立分区,比如:壁纸区、PPT模版、简历模版、前端模版等。演示网址:http://xuewei.world/su-share/功能介绍未登录系统那么便默认为游客角色,涉及到以下的权限和功能:游客角色注册

2021-10-13 11:17:31 146

原创 ZooKeeper客户端常用命令

连接客户端ZK的客户端位于安装目录的bin目录下。ZK的客户端为zkCli.sh,进入bin目录后执行./zkCli.sh即可启动客户端。zkCli.sh还可以携带一些参数:./zkCli.sh –timeout 1000 –r –server ip:port-timeout 1000:设置超时时间,单位毫秒-r:设置为只读权限,不加-r则为可读可写权限-server ip:port:指定连接的ZK服务器以及端口号如果就是连接本机的ZK服务,那么可以在bin目录下直接输入:./zkCli

2021-10-13 11:17:11 682

原创 Docker安装MySQL

安装MySQL# 下载镜像到本地,没有加TAG标签,默认下载最新的docker pull mysql运行镜像,获得容器,添加数据卷,并配置mysql的root用户密码docker run -p 12345:3306 --name mysql -v /moti/mysql/conf:/etc/mysql/conf.d -v /moti/mysql/logs:/logs -v /moti/m

2021-10-13 11:16:48 43

原创 EasyPoi的基本使用

1. 前言官方文档:http://doc.wupaas.com/docs/easypoi/1.1 简介Easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法。1.2 环境搭建如果使用maven,请使用如下坐标:<!--导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能--&g

2021-10-13 11:16:36 1811

原创 Linux的vim和vi的简单使用

基本介绍所有的 Linux 系统都会内建 vi 文本编辑器。Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富vi和vim的三种模式正常模式在正常模式下,我们可以使用快捷键。以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。插入

2021-10-13 11:16:14 28

原创 Linux系统安装JDK

下载文件去Oracle官网下载需要安装的jdk版本,我这里用的是jdk-8u161-linux-x64.tar.gz将该压缩包放到/usr/local/java目录下解压sudo tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local/java/配置环境变量vim /etc/profile文件尾部追加export JAVA_HOME=/usr/local/java/jdk1.8.0_161export CLASSPATH=$:CLASS

2021-10-13 11:16:02 26

原创 服务器启动 SpringBoot 后访问特别慢的解决方案

原因Tomcat 使用 SHA1PRNG 算法是基于 SHA-1 算法实现且保密性较强的伪随机数生成器。在 SHA1PRNG 中,有一个种子产生器,它根据配置执行各种操作。Linux 中的随机数可以从两个特殊的文件中产生,一个是 /dev/urandom,另外一个是 /dev/random。他们产生随机数的原理是利用当前系统的熵池来计算出固定一定数量的随机比特,然后将这些比特作为字节流返回。熵池就是当前系统的环境噪音,熵指的是一个系统的混乱程度,系统噪音可以通过很多参数来评估,如内存的使用,文件的使用量

2021-10-13 11:15:35 1250 2

原创 解决docker-compose 命令不存在、未找到命令错误

安装扩展源sudo yum -y install epel-release安装python-pip模块sudo yum install python-pip查看docker-compose版本,提示未找到命令docker-compose version通过命令进行安装cd /usr/local/bin/wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-

2021-10-13 11:15:20 1546

原创 使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException

File > Project Structure > Artifacts > 在右侧Output Layout右击项目名,选择Put into Output Root见下面截图:执行后,在WEB-INF在增加了lib目录,里面是项目引用的jar包,点击OK。重新启动Tomcat,这次成功发布。...

2021-10-13 11:14:56 214

原创 修改CentOS默认yum源为阿里镜像源

备份系统自带yum源配置文件mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载ailiyun的yum源配置文件CentOS7wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoCentOS6wget -O /etc/y

2021-10-13 11:14:22 92

原创 整合SpringBoot与MyBatis时报错时区异常

场景:Spring Boot配置MySQL数据源时报错:java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a m

2021-10-12 10:33:41 43

原创 工作中必用的SVN命令笔记【超详细】

SVN服务端的搭建CentOS 7 安装SVN服务器端程序安装命令yum install -y subversion验证svn --version创建并配置版本库创建版本库目录mkdir -p /var/svn/repository在版本库目录下创建具体项目目录mkdir helloworld创建SVN版本库svnadmin create /var/svn/repository/helloworld查看效果conf :是这个仓库的配置文件(仓库的用户访问账号、权限

2021-10-12 10:32:29 397

原创 Docker可视化工具-Portainer

介绍一款牛逼的Docker可视化工具学后端的小伙伴一定要学的一个技术便是Docker,部署项目、部署环境啥的都贼方便!之前我用docker都是简单粗暴,直接上命令行,什么docker ps,docker images…然而今天无意之间看到了一个东西,Docker的可视化工具!下面就来介绍今天的主角:PortainerPortainer简介官方文档:https://documentation.portainer.io/Portainer是一个可视化的容器镜像的图形管理工具,利用Portaine

2021-10-12 10:31:56 259

原创 摸鱼神器-EasyCode的使用

EasyCode是一个什么东西?EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与java类型映射关系配置。支持同时生成生成多张表的代码。每张表有独立的配置信息。完全的个性化定义,规则由你设置。创建一个SpringBoot项目下载Easy Code配置数据源使用Easy Code一定要使用IDEA自带的数据库工具来配置数据源。打开侧边的Databa

2021-10-12 10:31:08 1245

原创 Linux系统安装Zookeeper

什么是ZooKeeper?ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。它也是 Hadoop,HBase 和其他分布式框架中非常重要的组件。分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。ZooKeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心。安装ZooKeeper本文介绍了如

2021-10-12 10:29:17 188

原创 Docker搭建Neo4j图数据库

下载镜像docker search neo4j# 下载最新版本docker pull neo4j运行镜像(二选一)# 直接运行下面的命令docker run -d -p 7474:7474 -p 7687:7687 -v /Users/moti/Environment/Docker/Neo4j/data:/data -v /Users/moti/Environment/Docker/Neo4j/logs:/logs -v /Users/moti/Environment/Docker/Neo

2021-10-12 10:28:28 148

原创 Windows、Mac、Linux解决端口被占用的问题

有的时候我们启动项目,可能会报端口被占用的错,原因是我们上次可能没有把正在允许的项目彻底关闭!报错信息: java.net.BindException: Address already in use: JVM_Bind:8080Windows解决端口被占用问题进入到CMD快捷键:Windows+R ,输入cmd回车输入命令查出占用8080端口的进程netstat -ano | findstr 8080输入命令删除该进程(根据查出来的进程ID,最后一列)taskkill /F /PID

2021-10-12 10:27:51 31

空空如也

空空如也

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

TA关注的人

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