自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ubuntu 安装k8s集群

前言本文介绍如何在ubuntu上部署k8s集群,大致可以分为如下几个步骤修改ubuntu配置安装docker安装kubeadm、kubectl以及kubelet初始化master节点将slave节点加入网络因为k8s分为管理节点和工作节点,所以我们将要 在master上部署管理节点,在worker上部署工作节点,master和worker节点信息如下主机名主机IP版本CPU内容master192.168.56.11Ubuntu server 18.042核

2022-03-22 23:58:14 4937 1

原创 Docker进阶之路(十二):搭建Docker私有镜像仓库

一、前言在docker中,我们通常使用docker pull xxx下载镜像,那么docker会从哪里查找并下载镜像呢?实际上是从 registry.hub.docker.com 这个地址下载的镜像,这是docker为我们提供的中央仓库,在中央仓库中的镜像,每个人都可以使用如果是在公司内部,制作出来的镜像不可能放在中央仓库中,这太不安全了,因此有必要搭建一个公司内部的私有仓库,仅供公司内部使用下面我们用官方提供的registry镜像来搭建私有镜像仓库二、环境准备准备两台安装docker环境的服

2020-07-26 16:15:29 447

原创 Docker进阶之路(十一):docker volume 数据卷及数据卷容器

一、前言应用在容器中运行时,会产生一些数据,如日志等,这些数据是存储在容器中的,容器停止后,数据会丢失,为了将数据存储下来,需要用到docker volume,将数据存储在数据卷或数据卷容器中。在启动容器时,可以使用-v参数指定容器数据的挂载方式,可以是本地目录或文件挂载到远程主机数据卷容器二、数据卷1.挂载本地目录有本地路径:/home/ubuntu/app/data/data1,执行如下命令,创建并启动容器时,指定容器的挂载目录到本地docker run -tid --name d

2020-07-25 20:28:46 354

原创 Docker进阶之路(十):docker swarm+docker stack+docker service实现多应用的集群部署,动态扩容缩容

一、前言在前面一篇博文中,我们使用docker swarm+docker service实现了单应用的集群部署,那么在多应用的情况下,比如现在有100个应用,如何快速部署到多台服务器上呢,下面为你详细介绍二、主要步骤1.将镜像上传到自己的私有仓库中2.在docker-compose.yml中编排服务3.创建docker swarm集群4.使用docker stack 集群化部署5.使用docker service 动态扩容缩容由于我没有创建私有仓库,因此第一步就略过,直接从第二步开始三、开

2020-07-19 10:18:54 1261

原创 Docker进阶之路(九):docker swarm+docker service实现集群部署,动态扩容缩容

一、前言场景1:如果需要将应用部署到100台服务器上,怎么才能快速部署场景2:你的公司在做一个促销活动,用户访问量已经达到上限瓶颈,服务器压力已经达到极限,如何快速的实现扩容,从而保证业务的正常运行场景3:俏销活动结束后,如何快速缩容,释放服务器资源下面介绍如何通过docker-swarm实现多节点的集群部署,动态实现对多节点的自动扩容和缩容二、docker-swarm集群部署图如上图,一个App应用需要部署到100台服务器中,为了能够快速部署,需要做以下几件事件1.使用docker-mac

2020-06-26 12:34:29 2147 3

原创 Docker进阶之路(八):使用docker-machine管理远程主机

一、前言本篇博文主要介绍如何使用docker-machine给远程主机安装并管理docker二、准备工作以下配置,需要在root账号下操作,否则在为远程主机创建docker时,会出现不必要的错误,特别重要,特别重要,特别重要!!!1.远程主机需要安装ssh server使用命令ps -ef | grep sshd检查是否安装并启动 ssh server服务root@S102:/home/ubuntu# ps -ef | grep sshdroot 7276 1 0 18

2020-06-13 11:19:43 1198

原创 Docker进阶之路(七):配置docker-machine免密登录

一、前言我们管理远程主机时,首先要从本地输入远程主机的地址,账号密码登录到远程主机后,才能对远程主机进行操作,为了避免每次都输入账号密码的麻烦,我们可以配置本地主机和远程主机的信任关系,从而实现免密登录二、配置信任连接如下图所示,通过client管理远程主机中的docker01,docker02,docker03,因此需要在client-server中建立一种信任关系1.在client中生成公私钥执行如下命令,使用默认配置,直接回车ssh-keygen -t rsa说明:-t rsa指定

2020-05-24 12:40:01 929

原创 Docker进阶之路(六):安装docker-machine

一、在线安装1.1 执行如下命令即可base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine命令解释声明一个base变量,并

2020-05-17 10:22:27 634

原创 Docker进阶之路(五):docker engine

一、Docker Engine介绍由客户端 - 服务器应用组成的守护进程,与守护进程交互的接口的REST API,以及与守护进程进行通信的命令行(CLI)客户端(通过REST API包装器)。用户通过docker client向docker daemon发送REST 请求,Docker Engine接受来自CLI的docker命令,例如docker run [image],docker ps,docker image ls等二、Docker Engine组成部分docker engine包括如下三个部

2020-05-16 12:22:33 715

原创 Docker进阶之路(四):docker compose配置文件详解

一、前言docker-compose 依赖于yml文件,默认为docker-compose.yml文件,通过yml文件,可以完成一系列的服务编排,指定服务间的依赖,网络,挂载卷等,因此有必要掌握compose配置文件二、compose 配置文件介绍YML文件是一种非标记语言,以数据为中心,使用空白,缩进,分行组织数据基本原则大小写敏感使用缩进表示层级关系禁止使用tab键,只能使用空...

2020-05-01 11:00:05 2676

原创 Docker进阶之路(三):docker-compose常用命令

一、前言docker-compose 依赖于yml文件,默认为docker-compose.yml文件,compose命令需要在docker-compose.yml文件所在目录下才能执行,否则需要指定yml文件路径通过-f参数指定yml文件路径才能执行docker-compose -f dev_tools/docker-compose.yml ps二、compose常用命令说明:以下所...

2020-04-29 00:34:54 519

原创 Docker进阶之路(二):安装docker-compose

一、在线安装1.1 下载安装包curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose1.2 设置可执行权限chmod +x /usr/local/bin/docker-co...

2020-04-16 23:39:18 487

原创 Docker进阶之路(一):使用Dockerfile在Docker中安装Nginx

前言本文主要介绍在ubuntu系统下,如何通过Dockerfile,在Docker中安装Nginx,分为以下三部分一、Dockerfile组成部分二、Dockerfile文件内容三、生成镜像一、Dockerfile组成部分Dockerfile的命令非常简单,主要包含4个部分组成:基础镜像、维护者信息、执行指令、容器启动时执行指令Dockerfile组成指令基础...

2020-03-26 16:55:46 3063

转载 跟我一步一步学Spring Security(超详细)

真实项目实践:https://blog.csdn.net/jaune161/article/details/17639305Spring Security 安全权限管理手册:http://www.mossle.com/docs/auth/html/index.html

2019-10-17 18:51:51 388

原创 Shiro权限控制(七):Spring整合Shiro做权限控制综合实践-按钮层级-超详细

前言本文是Spring整合Shiro进行细粒度权限控制的综合实训,主要内容包括:一、Spring中引入Shiro框架二、Shiro登录控制三、权限表设计四、服务权限配置五、自定义标签控制页面(HTML)按钮权限开始正文之前,先介绍一下我的工程环境:Spring+Spring MVC+Mybatis+MySql+Maven,下面从Spring引入Shiro框架开始本文的介绍一、S...

2019-10-13 14:35:10 2295 1

原创 Shiro权限控制(六):Shiro按钮权限控制

一、前言前段时间一直在研究如何通过标签方式控制控制的权限,我用HTML做页面的渲染,Shiro标签在HTML中不生效,但还是想用Shiro标签方式控制页面的按钮,有权限则显示,无权限则不显示,因此我想了一个替代方案来实现二、方案描述后端返回用户的所有角色及权限,前端自定义权限标签,通过标签中指定的权限与后端返回的权限做对比,有权限则按钮显示,无权限则按钮隐藏PS:权限控制不仅是前端按钮的按...

2019-10-07 22:53:41 6291 1

原创 Shiro权限控制(五):整合thymeleaf做细粒度的权限校验

一、前言在Shiro的官方文档中,默认介绍的是与JSP整合来做页面上的权限控制,Shiro有一套自己的标签库,能与JSP无缝整合,只需要在JSP页面上引入Shiro的标签库即可<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %><%@ taglib prefix="c" uri="http://jav...

2019-04-11 22:57:00 1389

原创 Shiro权限控制(四):Shiro注解验证异常处理

一、目标权限验证异常时,对异常进行封装,使之不直接抛给用户二、前言在前面的一篇博文中《Shiro权限控制之注解验证(三)》,权限验证异常时,异常信息直接抛到页面显示,如何处理验证时的异常信息呢,请看下面的介绍三、定义异常处理类异常有两种,登录认证异常和权限认证异常,分别对应的异常类是登录认证异常:UnauthenticatedException,AuthenticationExcept...

2019-04-11 00:01:47 4917 5

原创 Shiro权限控制(三):Shiro注解权限验证

一、目标通过注解方式实现URL的权限验证二、前言在前面的一篇博文中《Shiro权限控制之自定义Filter(二)》,我们的权限验证是配置在shiro配置文件中的,即在spring-shiro-web.xml中的ShiroFilterFactoryBean的filterChainDefinitions属性中,如下 <!-- Shiro的web过滤器 --> <...

2019-04-10 23:56:42 12934 1

原创 Shiro权限控制(二):自定义Filter

通过自定义Filter实现权限配置,如某个URL需要某个角色的某个权限才能操作

2019-04-07 13:07:41 10780

原创 Shiro权限控制(一):Spring整合Shiro

1.介绍如何在SpringMVC中整合Shiro权限框架2.介绍如何使用Shrio进行身份验证,如常见的登录3.介绍如何控制哪些服务登录后才能访问,哪些服务不需要登录就可以访问

2019-03-30 14:37:56 32725 7

原创 使用 Maven profiles实现不同环境打包

在项目开发过程中,通常会有多套环境,如dev环境,SIT环境,uat环境,演练环境及生产环境,每个环境的配置都不相同,如何根据需要打不同环境的包呢,Maven的profile为我们提供了简单快捷的配置方式,通过激活不同的配置,就可以打出相应环境的包一、工程结构我的工程结构如下在src/main/resources/prop/目录下,分别有dev,sit,prod三个环境的配置,接下来,我们...

2019-03-16 01:03:44 1003

原创 性能优化之通过Aspose组件将Word/Excel/PPT/PDF转成HTML文件,解决大附件预览性能问题

在最近的一个项目中,遇到一个非常棘手的性能问题,场景是这样的:有PC端和手机端两个应用,用户在PC端上传的附件,如word,Excel,pdf等,当用户出差或不在电脑边上时,上传的附件在手机端能够打开预览。然后问题就来了,当在PC端上传的附件比较大,在手机端想要预览就比较慢,有时候甚至打不开,怎么解决这个性能问题呢?一、多线程分段下载分析:在预览的时候,将原文件切分成多分,使用多线程分段下载,...

2019-01-25 15:03:23 4909 6

原创 Java POI实现Excel导入-通用组件

在工作中,会经常大量使用到Excel导入,如果每个开发人员都自己实现一套Excel导入,带来的问题是研发效率降低,项目中存在大量重复的代码,这时就有必要将Excel导入写成通用组件,开发人员使用该组件,便可轻松实现导入功能设计思路:1.将Excel导入设计成模板形式,导入前需要配置此模板2.通过反射的形式调用对应VO的属性的set方法,给属性赋值3.返回解析后的结果集Excel导入模板设...

2019-01-10 11:23:07 1867 3

原创 Spring MVC实现文件上传功能

平时在工作中,我们会经常使用到文件上传的功能,刚好前一段时间,正好用过这段

2019-01-05 08:43:27 264

原创 《架构系列四:一键部署应用到Tomcat集群中》

基于前面两遍文章,我们配置了nginx+Tomcat集群,这时候怎么将应用部署到集群中呢,用手工一个一个的部署,这即费时,又费力,这里,我们通过脚本方式,一键将应用部署到群集中集群信息 VM1:192.168.130.128 VM1:192.168.130.129 物理机:Mac Tomcat路径:/home/ubuntu/dev_tools/apache-tomcat-7.0.62 ...

2018-12-28 11:00:06 791 1

转载 那个16岁盗走马化腾QQ 震惊央视的农村男孩去哪了

十几年前,还没有微博、微信、知乎。 但在网络上却有这样一个无人不知,无人不晓的江湖——“天涯社区”,和它的名字一样,这里鱼龙混杂,又有情有义,有无数大神。 当年的天涯孕育了一个又一个爆点:慕容雪村和他的《成都,今夜请将我遗忘》、芙蓉姐姐、奇葩小月月、天下霸唱和他的《鬼吹灯》…… 如今,论坛的黄金时代落下帷幕,逐渐走向衰落的天涯或许只能成为天涯“沦落人”共同的回忆,成为互联网历史中的一段传奇。...

2018-08-27 08:27:10 1007

原创 使用slf4j和logback记录日志

前言 Logback是由log4j创始人设计的一个开源日志组件, 性能比log4j的性能还好, 将会逐步地替代掉log4j,Logback需要和slf4j一起使用,slf4j只提供接口,没有提供具体的实现,Logback很好的实现slf4j中的接口,现在来看看如何使用logback记录日志导入依赖 logback依赖如下几个Jar包 slf4j-api.jar,logback-core....

2018-07-14 12:34:54 1732

原创 架构系列四:Maven实现动静分离打war包及zip包

目标:实现Maven动静分离打包,静态资源打成zip包,动态资源打成war包工程结构 打包前先看下工程结构 我的静态资源都是放在webapp目录下面,有css,fonts,html,images,js,根目录下的login.js,login.html,打包时需要将这些静态资源文件打成单独的zip包,动态资源打成单独的war包打war包 pom.xml文件内容如下&amp;amp;lt;bui...

2018-07-14 06:14:20 2739

原创 Callable+ThreadPoolExecutor实现多线程并发并获得返回值

前言 经常会遇到一些性能问题,比如调用某个接口,可能要循环调用100次,并且需要拿到每一次调用的返回结果,通常我们都是放在for循环中一次次的串行调用,这种方式可想而知道有多慢,那怎么解决这个问题呢?多线程 为了解决以上问题,我使用的方式是多线程。多线程常规的有两种实现方式,即继承Tread类,实现Runnable接口,但是这两种实现方式,有一个共同的问题,就是没有返回值,对于我们来说,获...

2018-06-20 00:05:49 14229 5

原创 架构系列三:使用Keepalived+Nginx+tomcat实现集群部署

在前面的一篇文章《架构系列二:使用Nginx+tomcat实现集群部署》,介绍了通过Nginx配置Tomct集群,当其中一个Tomcat服务停止后,Nginx可自动识别并选择另一个服务器响应用户请求,达到了Tomcat集群的效果,那如果Nginx服务器停掉后,就会导致整个应用不可用,因此引入了keepalived,通过keepalived配置Nginx集群,保证Nginx的高可用性。一、环境介...

2018-06-18 17:48:46 4236

原创 架构系列二:使用Nginx+tomcat实现集群部署

在前面的一篇文章《架构系列一:系统架构的演变》中,简单介绍了系统架构的演变,从单机到集群部署,现在的企业级项目,可以说99.99%以上的项目,都是集群部署,作为一个程序员,这是一个不得不会的技能,现在就基于keepalived+nginx+tomcat搭建一套完整的集群一、环境介绍 虚拟机1:Ubuntu-S100 IP:192.168.130.128 主要部署Tomcat应用 虚拟机2...

2018-06-10 20:38:00 2956

原创 架构系列一:大型项目架构演进过程

作为一名程序员,单单只为了Coding是远远不够的,想要走的更高更完,还必需懂Coding之外的其他东西,如架构设计,系统分析等,今天就架构这块,谈谈自己的理解 一、单机时代 单机时间的应用,都很简单,一个应用,一台服务器,就搞定了,大至的架构设计如下图 用户通过Internet访问某个网站,经过DNS服务器解析,找到对应的服务器地址,请求服务器,响应用户请求的信息 优点: 1.部署...

2018-06-09 12:20:11 3636 1

原创 在CentOS中安装JDK1.8

1.下载JDK 在官网中下载JDK1.8,官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.安装JDK 新建/usr/java文件夹,使用 rpm -qa |grep sz 或 rpm -qa |grep rz命令,将jdk-8u171-linu...

2018-05-15 22:57:43 227

原创 在CentOS中卸载MySQL

1.登录数据库,show databases命令查看之前已经创建好的数据库mysql&amp;amp;amp;amp;gt; show databases;+--------------------+| Database |+--------------------+| information_schema || mairuan || mysql ...

2018-05-14 15:23:59 464

原创 在CentOS中安装mysql5.7

1.卸载原有的mysql数据库 使用如下命令查看系统中是否有安装mysql数据库[root@mair-001 ~]# rpm -qa | grep mysql如果有的话,通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉 [root@mair-001 ~]# rpm -e mysql  // 普通删除模式 [root@mair-001 ~]# rpm -e –...

2018-05-09 23:21:30 904

原创 在CentOS7.4 64bit中安装SVN服务器

1.安装 CentOS通过yum安装subversion,先登录服务器,使用如下命令安装subversion[root@mair-001 ~]# yum install subversionsubversion默认安装在/bin/目录下,如下查看命令[root@mair-001 /]# which svnserve/usr/bin/svnserve检查subversi...

2018-05-01 18:05:37 2151 2

原创 如何制作Docker镜像

我们知道,要创建一个Docker容器,要先有Docker镜像,Docker镜像怎么创建的呢,一般有两种创建方式: 1. 根据基础镜像,生成新镜像 2. 使用Dockerfile生成镜像在制作镜像之前,先看下怎么查找镜像列出所有在主机上的镜像 docker images列出所有镜像 我主机上有两个镜像centos和ubuntu,我们在镜像列表中看到三个至关重要的东西。 - 镜像源

2017-07-22 12:38:06 20698

原创 使用Dockerfile制作Docker镜像

最近项目中使用到Docker,因此趁在周末时间,研究下Docker。Docker环境安装之前已经安装就绪,请参考:《在Centos中安装Docker CE》。我们从简单的开始,使用Dockerfile制作一个能运行Java应用程序的Docker镜像 1、准备JDK和Tomcat,将JDK和Tomcat放到/usr/local/soft目录下,soft目录是我自己新增的 2、在/usr/loc

2017-06-03 18:09:13 9064

原创 Docker 常用命令

docker images 查看所有镜像docker build 通过Dockerfile创建一个Docker镜像,例:docker build -t="javaimage/javaweb" .docker ps 查询存在运行中的docker进程docker ps -l 查询运行过的Docker进程docker run 使用image创建一个container -d 以daemon的形式

2017-06-03 17:20:25 371

空空如也

空空如也

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

TA关注的人

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