自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ基本概念及安装(一)

RocketMQ

2021-12-30 00:47:14 1568

原创 Docker学习六-(操作系统)

利用docker安装和使用BusyBox、Alphine、Debian/Ubuntu、CentOS/Fedora等操作系统 一、系统列表 官方镜像大小比较 REPOSITORY TAG IMAGE ID VIRTUAL SIZE alpine latest e7d92cdc71fe ...

2020-01-30 23:37:36 418

原创 Docker-学习五(Mysql多实例安装)

一、数据卷准备 1.创建数据卷 docker volume create mysql_dbdata docker volume ls # 查看 docker volume inspect mysql_dbdata 删除数据卷 $ docker rm -v <container_id> # 删除容器及关联 $ docker volume rm <volume_name> #...

2020-01-30 23:28:39 420

原创 Docker-学习四(数据管理)

内容提要 利用数据卷对数据进行持久化,备份,恢复,及多个容器数据共享,实现数据的迁移等。 数据管理的两种方式: 数据卷(Data Volumes):容器内数据直接映射到本地主机环境; 数据卷容器(Data Volume Containers):使用特定容器维护数据卷。 数据卷 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于 Linux中的mount操作。(就是将...

2020-01-30 23:26:28 305

原创 Docker-学习三(Docker仓库)

docker仓库(Repository)是集中存放镜像的地方,与git概念类似,分为公共仓库和私有仓库。一般与注册服务器(Registry)容易混淆。注册服务器是存放仓库的服务器,其中可有多个仓库。 内容提要 使用Docker Hub官方仓库,登陆下载,及私有仓库的搭建等操作。 Docker Hub 公共仓库 Docker官方维护了一个公共镜像仓库 https://hub.docker.com ,...

2020-01-30 23:15:54 446

原创 Jenkins + Svn + Ant持续集成(增量包处理)

一、Jenkins基础配置 1.配置中文 主界面–>系统管理–>插件管理–>可选插件 安装插件locale plugin 系统管理–>系统设置–>Locale 填入:zh_CN 保存应用 2.插件管理 插件管理在 系统管理 -> 管理插件 里面。 我们需要先完成的插件的安装才能配置和管理我们Job,有以下几种插件是我们需要的: Svn plugin(Svn 源...

2020-01-12 20:27:41 1441

原创 Jenkins 安装配置

Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。 一、安装...

2020-01-12 20:26:47 194

原创 因使用错误的时间转换导致跨年的时间BUG

跨年了闲着无事逛社区的时候发现有好多人在修复BUG,关于YYYY-MM-dd的使用而出现的问题,因此实验一番进行记录防止入坑。 BUG代码 运行环境JDK1.8 SimpleDateFormat sf = new SimpleDateFormat("YYYY-MM-dd"); SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd"); Ca...

2020-01-06 21:05:57 533

原创 面向对象设计

拿到一个需求时应该怎么做? 明确需求 基础分析 了解最佳实践 测试用例 预计工期 约定接口定义 编写用户手册和文档,示例代码 如何进行面对象对象设计 职责划分进而区分有哪些类 将功能点罗列出来,职责相近属性类似归为同一类 找到功能相近,操作同样属性的可能归到一个类 复杂需求按照模块拆分,然后再找类 定义类的属性和方法 需求中的名词作为候选属性,动词作为候选方法 并不是所有的名词都需要...

2020-01-06 21:04:48 216

原创 负载均衡策略问题导致服务宕机(记一次生产问题)

tags : 避坑指南 一.问题 2019年12月4日上午11点左右收到线上报警,核心服务CPU使用率达到了3000%,看了下进程的线程信息都是active。因为使用的容器是weblogic,所以在console平台查看线程相关信息。 信息整理如下: 活动线程43个,队列的长度已经到了23个 数据库连接为不可用连接数为5,活动连接数为5,可用连接数为15 线程池 线程空闲指标大部分都是fals...

2019-12-22 23:32:40 1160

原创 Docker-学习二(容器基本操作)

内容提要 docker容器相关操作,包括容器启停,查看,删除,创建,导入导出,内存配置等。 1.创建并启动容器 1.新建容器 可以使用docker create命令新建一个容器,例如: docker create -it ubuntu:latest 2.启动容器 使用docker create 命令新建的容器处于停止状态需要配合使用docker start 命令启动。 docker start...

2019-11-27 23:39:25 339

原创 Docker-学习一(镜像基本操作)

内容提要 docker镜像相关操作,包括获取,查看,搜索,删除,创建,存出和载入,上传等。 1.启动 servie start docker 为了避免每次使用docker命令都要用特权身份 将当前用户加入docker用户组 sudo usermod -aG docker USER_NAME 2.获取镜像 可以使用**docker pull NAME[:TAG]**直接从DockerHub镜像...

2019-11-25 23:39:34 722

原创 Ubuntu 安装VNC

最近在用Windows 连接 Ubuntu的PC时想使用下图形化界面,因为之前玩树莓派用过VNC因此将为PC安装VNC 来进行图形传输。 准备工作: windows安装VNC-Viewer 或者相关工具,Linux 安装vncserver. 1.安装 1.1更新源和系统 apt update apt upgrade -y 1.2安装桌面 mate 桌面较为精简且不会出现显示不全的问题,选择其中一...

2019-11-21 23:49:20 544

原创 接口的幂等性设计

1.概念 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是...

2019-11-19 19:50:33 607

原创 日志输出使用姿势

1.什么是日志? 日志是记录程序运行的轨迹,方便查找信息,快速定位问题。日志应用主要有下面三个原因:记录操作轨迹、监控系统运行状况、回溯系统故障。在开发时可以使用debug来跟踪代码,真正代码发布到了DAT 生产环境是没办法随便使用远程调试的。因此如果日志打的好,线上的问题很快便能定位,反之用不好则影响系统性能。 2.如何引入日志? 常用日志框架及区别 在使用日志前先来认识下常用的日志框架: lo...

2019-11-02 22:01:52 428

原创 SpringCloud学习五-GateWay网关

1.GateWay是什么? GateWay 是SpringCloud 生态系统中的网关,目标是替代Zuul,同样提供了限流,监控,路由转发、权限校验等功能。 相关名词: Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。 Predicate(断言):这是一个 Java 8 的 Predicate。输入类型是一个 Ser...

2019-10-10 23:53:59 428

原创 SpringCloud学习四-服务消费者

前面讲了服务的注册和发现,在微服务架构中,业务会被拆分成一个个的微服务,服务与服务又是如何通讯的? SpringCloud中的通信协议是基于HTTP restful的,其中有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 ribbon ribbon是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为。Feign默认集成了ribbon。 1.依赖 &l...

2019-10-09 23:17:13 162

原创 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 184

原创 SpringCloud学习二-网关技术选型

什么是网关? Eureka用于服务的注册和发现,在发现服务后外部的客户端请求如何访问到服务呢?在微服务中,后端服务一般不会直接对外开放,而是通过一个API网关根据请求的url路由到对应的服务中去。就像家里的路由器一样在服务和客户端之间作为中转,来保护内部的服务,也可以将请求进行负载均衡。 网关的基本功能如下: 技术选型 网关相当于微服务世界的大门,可以说是微服务中的核心组件,那么网关的选择又有哪...

2019-10-08 23:33:32 1676

原创 SpringCloud 学习笔记(资源整合)

一、微服务 单体架构: ——优点: 1、易于开发:开发的方式简单,方便运行也容易调试。 2、易于测试。 3、易于部署。 ——缺点: 1、项目过于臃肿,维护成本大,出现bug难定位。 2、资源无法隔离:共享一个数据库,或者一块内存。 如果一个功能模块突然访问量过大,可能影响整个系统的性能。 3、无法灵活扩展:单体系统也可以集群部署,但是不够灵活,我明明只是订单系统遇到了瓶颈, 只需要将订单模块水平...

2019-10-08 23:28:36 228

原创 同一机器配置多个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 465

原创 SpringCloud学习一-服务注册和发现

注册中心-Eureka 参考资料 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本) Eureka 自我保护机制: 某时刻微服务不可用,Eureka不会立刻清理,依旧保存该微服务的信息。 在spring cloud中,除了可以使用eureka作为注册中心外,还可以通过配置的方式使用zookeeper作为注册中心。既然这样,该如何选择? 著...

2019-08-26 22:55:46 246

原创 SpringMVC学习一

一、是什么? MVC是一种设计思想既模型(Model)、视图(View)和控制器(Controller)使用这种分层的形式对其进行职能的划分。 而springMVC就是使用这种设计理念来快捷开发的web端框架。 二、技术对比 说到Java的web开发就不得不提Struts2(没办法谁让我一开始学的就是这个),Struts2也是控制层的框架那么springMVC与它的差别在哪呢? 1.首先Strut...

2019-08-18 22:46:53 204

原创 Spring-事务管理

什么是事务 Spring事务控制的目的是为了达到控制一组操作,要么都执行要么都不执行的一种操作。 ACID四大特性: 原子性 :最小执行单位,不可分割,要么都完成要么无效。 一致性 :保证数据库数据整体完整性,事务成功则整体数据修改,事务失败则数据回滚到之前的状态。 隔离性 :各事务之间是独立的,多个事务操作同一对象时,会串行等待方式执行,保证事务之间互不干扰。 持久性 :事务提交后数据会保存到...

2019-08-05 22:20:33 225

原创 HashMap多线程环境下死循环问题(记一次生产问题)

HashMap多线程环境下死循环问题(记一次生产问题) tags : 避坑指南 一.问题 今天在工作的时候项目组的同事说他们系统生产环境有线程stuck了,我抱着学习生产问题定位的心态凑合过去。了解到出现此问题时,操作员有多人使用同一帐号在系统中进行操作,且此种情况之前因为大批量的人员登录系统出现过。在拿到了报错日志时,在其中一段日志细节中突然发现了些许端倪。 下面连接防止图片连接失效备份图库...

2019-08-02 14:49:44 641

原创 Spring学习十-JDBCTemplate

JdbcTemplate简介 上图是一个持久层的数据总图,详细的画出了各个层级之间的关系,首先最底层是常用的数据库,例如MySql、Oracle、SQLserver等,上面的一层是由各个数据库厂商提供的数据库驱动,再上面的一层就是常用的JDBC,对底层各个数据库实现细节进行屏蔽,使之可以统一的管理,连接。而JDBCTemplate则是Spring在JDBC的基础上对其进行了事务的支持,异常处理等的...

2019-07-28 00:56:12 147

原创 Spring学习十一-事务管理

什么是事务 Spring事务控制的目的是为了达到控制一组操作,要么都执行要么都不执行的一种操作。 ACID四大特性: 原子性 :最小执行单位,不可分割,要么都完成要么无效。 一致性 :保证数据库数据整体完整性,事务成功则整体数据修改,事务失败则数据回滚到之前的状态。 隔离性 :各事务之间是独立的,多个事务操作同一对象时,会串行等待方式执行,保证事务之间互不干扰。 持久性 :事务提交后数据会保存到...

2019-07-28 00:55:34 240

原创 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 179

原创 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 229

原创 Spring学习八-之动态代理

一、问题来源 在进行软件设计的时候往往会将一个大的系统按照业务模块拆分成一个个的低耦合、高内聚的模块,分而治之。 如图: 拆分后发现一些问题,这些问题是通用的,跨模块的。比如: 1.日志:对执行某些操作分支判断时输出日志。 2.安全:在执行某些操作前进行权限检查。 3.事务:在方法开始前开始事务,方法结束时提交或者回滚事务。 4.性能统计:统计某些方法的执行时间。 以上这些属于非功能型需求,是多...

2019-06-23 22:48:22 216

原创 Spring学习七-Spring整合Junit的配置

##问题: 在Junit测试时,在将通用的bean注入提到方法外面形成全局变量时,在运行测试类代码时,会无法注入bean对象。 在Junit单元测试中,没有main方法也能执行,其实是因为Junit集成了一个main方法,该方法会判断当前测试类哪些方法使用了@Test注解,Junit会让有注解的方法执行,但是Junit不会探测是否使用了Spring框架,在执行方法时也不会读取配置文件创建Sprin...

2019-06-16 00:51:09 248

原创 Spring学习六-注解IOC

基本配置 @Component 注解是用于创建bean对象的,但是只使用@Component注解是无法使用的,需要在配置文件中去声明,告知spring在创建容器时要扫描的包,配置所需要的标签不是在bean的约束中,而是一个mingcheng为context名称空间和约束中 <context:component-scan base-package="com.how2java.pojo"/&gt...

2019-06-16 00:48:59 181

原创 Spirng学习五-依赖注入的几种方式

在学习的第一天就跟着demo练习了一番spring依赖注入的 具体操作,在接下来的几天对于为什么要这么做有了一定的认识,今天对于依赖注入的具体方式来进行一下细分。 一、构造函数注入 通过构造函数来进行依赖关系的设定,默认是使用的无参构造,如果重写了构造函数改成带参数的而没有无参构造,直接使用如下注入会失败。 String name; Integer price; Date ...

2019-06-10 22:56:49 223

原创 Spirng学习四-SpringBean的作用域

Bean注入的三种方式 1:使用默认的构造函数 在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时采用的就是默认的构造函数常见bean对象,此时如果没有默认构造函数则对象无法创建。 <bean name="car" class="impl.Car"/> 2.使用普通工厂的方法创建对象(使用某个类中的方法创建对象,交给spring管理) ...

2019-06-09 00:13:23 240

转载 Spring学习三-ApplicationContext

Spring中的Resource接口 在Spring内部实现机制,针对于资源文件(配置的xml文件)有一个统一的接口Resource。 Resource具体实现类: ClassPathResource:类路径下的资源,位置在classes路径下 FileSystemResource:文件系统资源,资源以文件系统路径的方式表示,如:D:/File/conf.xml; InputStreamReso...

2019-06-05 00:20:35 217

原创 spring学习二

Spring好处 经过昨天的练习学会了使用spring进行IOC,那么今天来思考一下,spring解决了什么问题,又有什么优势呢? 先来看下一段jdbc程序 //注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //创建连接 Connection connectMySQL = DriverManager.getConn...

2019-05-30 00:45:49 199

原创 Spring学习一

IOC、DI 基于配置文件的练习 1.准备pojo package 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 130

原创 sso单点登陆

起源 在一个企业发展的过程中,用到的系统会慢慢增多,在使用人员在多个系统中操作时需要登录各个系统,而且可能每个系统账号都不一样,这对使用人员来说很不方便,于是就产生了单点登录,在一个系统登录其他的系统就不同登陆。 实现过程 在做单点登录之前先来回顾下单系统登录的操作,首先进入系统登录页面,填写登录信息提交表单,系统后台对账号密码进行验证,验证通过就会建立Session ,然后把sessionid通...

2019-05-26 23:53:36 225

原创 hexo 搭建个人博客

hexo 搭建个人博客 tags : git 什么是Hexo ? Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Heroku上,是搭建博客的首选框架。 准备工作 相关资料 Github 官网 Github Pages Hexo 官网 Node.js 官网 Git 官网 相关教程 使用 GitHub 和 Hexo 搭建免费静态 Blog...

2019-05-26 20:22:58 153

原创 索引创建方式

今天的工作中因一张表数据量在100W上下(后续数据量还会不断增加)欲优化查询速度,决定给表中添加索引。oracle的索引分为5种:唯一索引,组合索引,反向键索引,位图索引,基于函数的索引创建索引:CREATE [unique] INDEX index_name ON table (column)unique --唯一索引index_name --索引名称table --表名column (列...

2018-07-03 19:34:22 3053

空空如也

空空如也

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

TA关注的人

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