- 博客(65)
- 收藏
- 关注
原创 Docker学习六-(操作系统)
利用docker安装和使用BusyBox、Alphine、Debian/Ubuntu、CentOS/Fedora等操作系统一、系统列表官方镜像大小比较 REPOSITORY TAG IMAGE ID VIRTUAL SIZE alpine latest e7d92cdc71fe ...
2020-01-30 23:37:36
220
原创 Docker-学习五(Mysql多实例安装)
一、数据卷准备1.创建数据卷docker volume create mysql_dbdatadocker volume ls # 查看docker volume inspect mysql_dbdata删除数据卷$ docker rm -v <container_id> # 删除容器及关联$ docker volume rm <volume_name> #...
2020-01-30 23:28:39
311
原创 Docker-学习四(数据管理)
内容提要利用数据卷对数据进行持久化,备份,恢复,及多个容器数据共享,实现数据的迁移等。数据管理的两种方式:数据卷(Data Volumes):容器内数据直接映射到本地主机环境;数据卷容器(Data Volume Containers):使用特定容器维护数据卷。数据卷数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于 Linux中的mount操作。(就是将...
2020-01-30 23:26:28
201
原创 Docker-学习三(Docker仓库)
docker仓库(Repository)是集中存放镜像的地方,与git概念类似,分为公共仓库和私有仓库。一般与注册服务器(Registry)容易混淆。注册服务器是存放仓库的服务器,其中可有多个仓库。内容提要使用Docker Hub官方仓库,登陆下载,及私有仓库的搭建等操作。Docker Hub 公共仓库Docker官方维护了一个公共镜像仓库 https://hub.docker.com ,...
2020-01-30 23:15:54
341
原创 Jenkins + Svn + Ant持续集成(增量包处理)
一、Jenkins基础配置1.配置中文主界面–>系统管理–>插件管理–>可选插件安装插件locale plugin系统管理–>系统设置–>Locale填入:zh_CN保存应用2.插件管理插件管理在 系统管理 -> 管理插件 里面。我们需要先完成的插件的安装才能配置和管理我们Job,有以下几种插件是我们需要的:Svn plugin(Svn 源...
2020-01-12 20:27:41
1238
原创 Jenkins 安装配置
Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。一、安装...
2020-01-12 20:26:47
124
原创 因使用错误的时间转换导致跨年的时间BUG
跨年了闲着无事逛社区的时候发现有好多人在修复BUG,关于YYYY-MM-dd的使用而出现的问题,因此实验一番进行记录防止入坑。BUG代码运行环境JDK1.8SimpleDateFormat sf = new SimpleDateFormat("YYYY-MM-dd");SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd");Ca...
2020-01-06 21:05:57
386
原创 面向对象设计
拿到一个需求时应该怎么做?明确需求基础分析了解最佳实践测试用例预计工期约定接口定义编写用户手册和文档,示例代码如何进行面对象对象设计职责划分进而区分有哪些类将功能点罗列出来,职责相近属性类似归为同一类找到功能相近,操作同样属性的可能归到一个类复杂需求按照模块拆分,然后再找类定义类的属性和方法需求中的名词作为候选属性,动词作为候选方法并不是所有的名词都需要...
2020-01-06 21:04:48
120
原创 负载均衡策略问题导致服务宕机(记一次生产问题)
tags : 避坑指南一.问题2019年12月4日上午11点左右收到线上报警,核心服务CPU使用率达到了3000%,看了下进程的线程信息都是active。因为使用的容器是weblogic,所以在console平台查看线程相关信息。信息整理如下:活动线程43个,队列的长度已经到了23个数据库连接为不可用连接数为5,活动连接数为5,可用连接数为15线程池 线程空闲指标大部分都是fals...
2019-12-22 23:32:40
1018
原创 Docker-学习二(容器基本操作)
内容提要docker容器相关操作,包括容器启停,查看,删除,创建,导入导出,内存配置等。1.创建并启动容器1.新建容器可以使用docker create命令新建一个容器,例如: docker create -it ubuntu:latest2.启动容器使用docker create命令新建的容器处于停止状态需要配合使用docker start 命令启动。docker start...
2019-11-27 23:39:25
228
原创 Docker-学习一(镜像基本操作)
内容提要docker镜像相关操作,包括获取,查看,搜索,删除,创建,存出和载入,上传等。1.启动servie start docker为了避免每次使用docker命令都要用特权身份将当前用户加入docker用户组 sudo usermod -aG docker USER_NAME2.获取镜像可以使用**docker pull NAME[:TAG]**直接从DockerHub镜像...
2019-11-25 23:39:34
613
原创 Ubuntu 安装VNC
最近在用Windows 连接 Ubuntu的PC时想使用下图形化界面,因为之前玩树莓派用过VNC因此将为PC安装VNC 来进行图形传输。准备工作:windows安装VNC-Viewer 或者相关工具,Linux 安装vncserver.1.安装1.1更新源和系统apt updateapt upgrade -y1.2安装桌面mate 桌面较为精简且不会出现显示不全的问题,选择其中一...
2019-11-21 23:49:20
330
原创 接口的幂等性设计
1.概念幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是...
2019-11-19 19:50:33
365
原创 日志输出使用姿势
1.什么是日志?日志是记录程序运行的轨迹,方便查找信息,快速定位问题。日志应用主要有下面三个原因:记录操作轨迹、监控系统运行状况、回溯系统故障。在开发时可以使用debug来跟踪代码,真正代码发布到了DAT 生产环境是没办法随便使用远程调试的。因此如果日志打的好,线上的问题很快便能定位,反之用不好则影响系统性能。2.如何引入日志?常用日志框架及区别在使用日志前先来认识下常用的日志框架:lo...
2019-11-02 22:01:52
309
原创 SpringCloud学习五-GateWay网关
1.GateWay是什么?GateWay 是SpringCloud 生态系统中的网关,目标是替代Zuul,同样提供了限流,监控,路由转发、权限校验等功能。相关名词:Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。Predicate(断言):这是一个 Java 8 的 Predicate。输入类型是一个 Ser...
2019-10-10 23:53:59
298
原创 SpringCloud学习四-服务消费者
前面讲了服务的注册和发现,在微服务架构中,业务会被拆分成一个个的微服务,服务与服务又是如何通讯的?SpringCloud中的通信协议是基于HTTP restful的,其中有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。ribbonribbon是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为。Feign默认集成了ribbon。1.依赖 &l...
2019-10-09 23:17:13
116
原创 SpringCloud学习三-zuul网关搭建
由于最后技术选型使用的是GateWay,所以zuul只是搭建的基本功能。基本配置1.依赖 <properties> <java.version>1.8</java.version> <spring-cloud.version>Dalston.SR1</spring-cloud.version> ...
2019-10-08 23:34:38
118
原创 SpringCloud学习二-网关技术选型
什么是网关?Eureka用于服务的注册和发现,在发现服务后外部的客户端请求如何访问到服务呢?在微服务中,后端服务一般不会直接对外开放,而是通过一个API网关根据请求的url路由到对应的服务中去。就像家里的路由器一样在服务和客户端之间作为中转,来保护内部的服务,也可以将请求进行负载均衡。网关的基本功能如下:技术选型网关相当于微服务世界的大门,可以说是微服务中的核心组件,那么网关的选择又有哪...
2019-10-08 23:33:32
1518
原创 SpringCloud 学习笔记(资源整合)
一、微服务单体架构:——优点:1、易于开发:开发的方式简单,方便运行也容易调试。2、易于测试。3、易于部署。——缺点:1、项目过于臃肿,维护成本大,出现bug难定位。2、资源无法隔离:共享一个数据库,或者一块内存。如果一个功能模块突然访问量过大,可能影响整个系统的性能。3、无法灵活扩展:单体系统也可以集群部署,但是不够灵活,我明明只是订单系统遇到了瓶颈,只需要将订单模块水平...
2019-10-08 23:28:36
159
原创 同一机器配置多个git账号的ssh秘钥
背景个人电脑因工作需要需连接公司gitlab,但是生成的ssh已经连接了GitHub,并且工作的邮箱和个人邮箱也不是一致的,此时需要对不同的平台进行不同的配置。1.生成ssh key打开git bash 输入以下命令ssh-keygen -t rsa -C "github-user1@163.com"第一个 ssh key 使用默认名字,三下回车,完成第一个默认的 ssh key。在...
2019-10-01 23:06:24
342
原创 SpringCloud学习一-服务注册和发现
注册中心-Eureka参考资料史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)Eureka 自我保护机制:某时刻微服务不可用,Eureka不会立刻清理,依旧保存该微服务的信息。在spring cloud中,除了可以使用eureka作为注册中心外,还可以通过配置的方式使用zookeeper作为注册中心。既然这样,该如何选择?著...
2019-08-26 22:55:46
100
原创 SpringMVC学习一
一、是什么?MVC是一种设计思想既模型(Model)、视图(View)和控制器(Controller)使用这种分层的形式对其进行职能的划分。而springMVC就是使用这种设计理念来快捷开发的web端框架。二、技术对比说到Java的web开发就不得不提Struts2(没办法谁让我一开始学的就是这个),Struts2也是控制层的框架那么springMVC与它的差别在哪呢?1.首先Strut...
2019-08-18 22:46:53
123
原创 Spring-事务管理
什么是事务Spring事务控制的目的是为了达到控制一组操作,要么都执行要么都不执行的一种操作。ACID四大特性:原子性 :最小执行单位,不可分割,要么都完成要么无效。一致性 :保证数据库数据整体完整性,事务成功则整体数据修改,事务失败则数据回滚到之前的状态。隔离性 :各事务之间是独立的,多个事务操作同一对象时,会串行等待方式执行,保证事务之间互不干扰。持久性 :事务提交后数据会保存到...
2019-08-05 22:20:33
154
原创 HashMap多线程环境下死循环问题(记一次生产问题)
HashMap多线程环境下死循环问题(记一次生产问题)tags : 避坑指南一.问题今天在工作的时候项目组的同事说他们系统生产环境有线程stuck了,我抱着学习生产问题定位的心态凑合过去。了解到出现此问题时,操作员有多人使用同一帐号在系统中进行操作,且此种情况之前因为大批量的人员登录系统出现过。在拿到了报错日志时,在其中一段日志细节中突然发现了些许端倪。下面连接防止图片连接失效备份图库...
2019-08-02 14:49:44
524
原创 Spring学习十-JDBCTemplate
JdbcTemplate简介上图是一个持久层的数据总图,详细的画出了各个层级之间的关系,首先最底层是常用的数据库,例如MySql、Oracle、SQLserver等,上面的一层是由各个数据库厂商提供的数据库驱动,再上面的一层就是常用的JDBC,对底层各个数据库实现细节进行屏蔽,使之可以统一的管理,连接。而JDBCTemplate则是Spring在JDBC的基础上对其进行了事务的支持,异常处理等的...
2019-07-28 00:56:12
100
原创 Spring学习十一-事务管理
什么是事务Spring事务控制的目的是为了达到控制一组操作,要么都执行要么都不执行的一种操作。ACID四大特性:原子性 :最小执行单位,不可分割,要么都完成要么无效。一致性 :保证数据库数据整体完整性,事务成功则整体数据修改,事务失败则数据回滚到之前的状态。隔离性 :各事务之间是独立的,多个事务操作同一对象时,会串行等待方式执行,保证事务之间互不干扰。持久性 :事务提交后数据会保存到...
2019-07-28 00:55:34
138
原创 String 知必会
String 对象实现方式在众多版本中,String对象做了大量优化,下图是版本推进的演化过程:1.在Java1.6之前的版本中,String对象是对char数组进行了封装实现的对象。2.而从Java1.7到1.8版本,Java对String类做了一些改变。String类不在有offset和count两个变量。3.从Java1.9开始,则将char[]字段改为了byte[]字段,又维护了...
2019-07-10 00:24:50
111
原创 Spring学习九-AOP
AOP概念1.什么是AOP?AOP:全称是 Aspect Oriented Programming 即:面向切面编程。简单来说AOP就是在程序中将重复的代码提取出来,在需要的时候,通过预编译方式运行时动态代理实现在不修改源代码的情况下,对已有的方法进行增强。2.Spring AOP代理机制1.若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类...
2019-06-30 00:02:55
144
原创 Spring学习八-之动态代理
一、问题来源在进行软件设计的时候往往会将一个大的系统按照业务模块拆分成一个个的低耦合、高内聚的模块,分而治之。如图:拆分后发现一些问题,这些问题是通用的,跨模块的。比如:1.日志:对执行某些操作分支判断时输出日志。2.安全:在执行某些操作前进行权限检查。3.事务:在方法开始前开始事务,方法结束时提交或者回滚事务。4.性能统计:统计某些方法的执行时间。以上这些属于非功能型需求,是多...
2019-06-23 22:48:22
125
原创 Spring学习七-Spring整合Junit的配置
##问题:在Junit测试时,在将通用的bean注入提到方法外面形成全局变量时,在运行测试类代码时,会无法注入bean对象。在Junit单元测试中,没有main方法也能执行,其实是因为Junit集成了一个main方法,该方法会判断当前测试类哪些方法使用了@Test注解,Junit会让有注解的方法执行,但是Junit不会探测是否使用了Spring框架,在执行方法时也不会读取配置文件创建Sprin...
2019-06-16 00:51:09
167
原创 Spring学习六-注解IOC
基本配置@Component 注解是用于创建bean对象的,但是只使用@Component注解是无法使用的,需要在配置文件中去声明,告知spring在创建容器时要扫描的包,配置所需要的标签不是在bean的约束中,而是一个mingcheng为context名称空间和约束中<context:component-scan base-package="com.how2java.pojo"/>...
2019-06-16 00:48:59
120
原创 Spirng学习五-依赖注入的几种方式
在学习的第一天就跟着demo练习了一番spring依赖注入的具体操作,在接下来的几天对于为什么要这么做有了一定的认识,今天对于依赖注入的具体方式来进行一下细分。一、构造函数注入通过构造函数来进行依赖关系的设定,默认是使用的无参构造,如果重写了构造函数改成带参数的而没有无参构造,直接使用如下注入会失败。 String name; Integer price; Date ...
2019-06-10 22:56:49
163
原创 Spirng学习四-SpringBean的作用域
Bean注入的三种方式1:使用默认的构造函数在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时采用的就是默认的构造函数常见bean对象,此时如果没有默认构造函数则对象无法创建。<bean name="car" class="impl.Car"/> 2.使用普通工厂的方法创建对象(使用某个类中的方法创建对象,交给spring管理)...
2019-06-09 00:13:23
164
转载 Spring学习三-ApplicationContext
Spring中的Resource接口在Spring内部实现机制,针对于资源文件(配置的xml文件)有一个统一的接口Resource。Resource具体实现类:ClassPathResource:类路径下的资源,位置在classes路径下FileSystemResource:文件系统资源,资源以文件系统路径的方式表示,如:D:/File/conf.xml;InputStreamReso...
2019-06-05 00:20:35
138
原创 spring学习二
Spring好处经过昨天的练习学会了使用spring进行IOC,那么今天来思考一下,spring解决了什么问题,又有什么优势呢?先来看下一段jdbc程序//注册驱动DriverManager.registerDriver(new com.mysql.jdbc.Driver());//创建连接Connection connectMySQL = DriverManager.getConn...
2019-05-30 00:45:49
139
原创 Spring学习一
IOC、DI基于配置文件的练习1.准备pojopackage com.how2java.pojo;public class Category { public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return ...
2019-05-28 00:20:54
81
原创 sso单点登陆
起源在一个企业发展的过程中,用到的系统会慢慢增多,在使用人员在多个系统中操作时需要登录各个系统,而且可能每个系统账号都不一样,这对使用人员来说很不方便,于是就产生了单点登录,在一个系统登录其他的系统就不同登陆。实现过程在做单点登录之前先来回顾下单系统登录的操作,首先进入系统登录页面,填写登录信息提交表单,系统后台对账号密码进行验证,验证通过就会建立Session ,然后把sessionid通...
2019-05-26 23:53:36
132
原创 hexo 搭建个人博客
hexo 搭建个人博客tags : git什么是Hexo ?Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Heroku上,是搭建博客的首选框架。准备工作相关资料Github 官网Github PagesHexo 官网Node.js 官网Git 官网相关教程使用 GitHub 和 Hexo 搭建免费静态 Blog...
2019-05-26 20:22:58
90
原创 索引创建方式
今天的工作中因一张表数据量在100W上下(后续数据量还会不断增加)欲优化查询速度,决定给表中添加索引。oracle的索引分为5种:唯一索引,组合索引,反向键索引,位图索引,基于函数的索引创建索引:CREATE [unique] INDEX index_name ON table (column)unique --唯一索引index_name --索引名称table --表名column (列...
2018-07-03 19:34:22
2921
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人