自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 资源 (13)
  • 收藏
  • 关注

原创 Https安全协议

前提由于 HTTP 协议通信的不安全性,所以人们为了防止信息在传输过程中遭到泄漏或者篡改,就想出来对传输通道进行加密的方式 https。介绍https 是一种加密的超文本传输协议,它与 HTTP 在协议差异在于对数据传输的过程中,https对数据做了完全加密。由于 http 协议或者 https 协议都是处于 TCP 传输层之上,同时网络协议又是一个分层的结构,所以在 tcp 协议层之上增加了一层 SSL(Secure Socket Layer,安全层)或者 TLS(Transport Laye

2021-11-07 17:30:15 4728 1

原创 Rancher 图形化管理K8S

题外话之前我们一直都是使用命令行来管理K8S的,这种做法虽然对程序员来说看起来很炫酷,但有时候用起来还是挺麻烦的。今天我们来介绍一个K8S可视化管理工具Rancher,使用它可以大大减少我们管理K8S的工作量,希望对大家有所帮助!简介Rancher是为使用容器的公司打造的容器管理平台。Rancher简化了使用K8S的流程,开发者可以随处运行K8S,满足IT需求规范,赋能DevOps团队。Docker安装安装yum-utilsyum install -y yum-utils .

2021-03-31 17:01:17 1487

原创 Java对接微信公众号模板消息

场景产品经理今天告知想要一个功能:微信定时接收自己的运营平台每天的数据,比如今天注册多少人,有多少个订单等!暂时想到的是通过微信公众号给关注的特定客户发送运维消息,看了公众号提供的模板功能,就记录下来便于以后对接!获取ACCESS_TOKEN公众号提供的功能api的基础前提是需要拿到token,拿到token后才能去调用相关的接口获取token直接就是一个get请求,代码如下:/** * @author:JackRen * @Description:获取授权..

2021-03-25 18:14:22 540

原创 Docker之私有镜像仓库Harbor搭建

简介Docker离不开可靠的镜像管理,官方默认的DockHub,虽然Docker官方也提供了公共的镜像仓库Registry,但是功能略显简单。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。系统环境(harbor需要docker-compose)#docker versiondocker version 19.03.1#docker-compose ver

2021-03-15 12:51:04 418

原创 SpringBoot集成plumelog日志系统

PlumeLog简介无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志 基于elasticsearch作为查询引擎 高吞吐,查询效率高 全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目本身运行 无需修改老项目,引入直接使用,支持dubbo,支持springcloud服务端安装首先是消息队列,PlumeLog适配了redis或kafka,一般项目redis足够了,我这边也是直接用redis,redis 官网:https:

2021-03-13 20:54:44 1399

原创 SpringBoot + SqlServer+Mybatis

前提:项目搭建需要数据库,运行这个项目之前需要先部署好sqlserver数据库,上一篇文章简单的用docker部署了sqlserver数据库,有需要的可以去看下:Docker安装部署Sql Servermaven引入<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-

2021-03-11 14:56:28 1630 1

原创 SpringBoot实现缓存机制

简介Spring 定义 CacheManager 和 Cache 接口用来统一不同的缓存技术。例如 JCache、 EhCache、 Hazelcast、 Guava、 Redis 等。在使用 Spring 集成 Cache 的时候,我们需要注册实现的 CacheManager 的 Bean。Spring Boot 默认使用的是 SimpleCacheConfiguration,即使用 ConcurrentMapCacheManager 来实现的缓存。CacheManager:缓存管理器,管理各种缓

2021-03-05 17:16:55 873

原创 SpringBoot下Java动态创建表和表字段

场景:网上看到一个项目在线生成表结构,感觉这样很方便,能够节省很大的人工,也想做一个这样的项目,先尝试着写了个测试类,后续再找前端继续完善我这边动态创建的前提是有一个存在的数据库,代码如下:Class.forName("com.mysql.jdbc.Driver");​ //创建连接 String url = "jdbc:mysql://172.16.10.54:3306/jeemp?useUnicode=true&characterEncoding=UTF-8

2021-02-24 17:17:19 4901

原创 Spring Boot 之 spring.factories

引言在java spring cloud项目中,我们常常会在子模块中创建公共类库,作为驱动包。那么在另外一个子模块中,需要加载配置文件的时候,往往Spring Boot 自动扫描包的时候,只会扫描自己模块下的类。问题如果想要被Spring容器管理的Bean的路径不再Spring Boot 的包扫描路径下,怎么办呢?也就是如何去加载第三方的Bean 呢? 首先一个Swagger的配置类:SwaggerConfig 工程结构图 ...

2020-12-02 16:49:44 196

原创 当Docker遇到Intellij IDEA,再次解放了生产力

服务器端部署docker:0.sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 1.sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 2.sudo yum install docker-ce docker-ce-cli containerd.io -y将docke.

2020-11-24 14:24:38 210

原创 linux服务器间文件相互传输

​​​场景:因前期设计得失误,导致应用中得富文本上传服务器并没有单独传到相应得文件服务器上,而是直接上传到应用所属的服务器上​。若是就一台服务器也没什么问题,问题是若是对服务做了负载均衡,就会出现问题,有可能你上传的文件在服务器A上,但是当你通过域名访问到服务器B上的时候,就会找不到相应的文件​。​​针对这种情况,前期考虑是将所有服务器文件同步,做到每台服务器上都有这个文件,这样就不会有什么问题,当然后期肯定会抽出单独的文件服务器进行访问​。下面来说服务器同步文件问题​。...

2020-11-23 17:06:43 437

原创 ActiveMQ的延时投递和定时投递实践

​​在开发业务系统的时候,很多业务场景消息都会用到延时投递和定时投递,比如我们说的定时任务生成报表,短信的定时发送​等等,这时候就用到了ActiveMQ的定时投递,可参考​官方文档:http://activemq.apache.org/delay-and-schedule-message-delivery.html​​ActiveMQ对消息延时和定时投递做了很好的支持,其内部启动Scheduled来对该功能支持,也提供了一个封装的消息类型:org.apache.activ...

2020-11-21 22:36:31 517

原创 Spring+JMS+ActiveMQ实现消息传递

JMS简介JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。对于消息的传递有两种类型,一种是点对点的,即一个生产者和一个消费者一一对应;另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。消息的两种传播方式...

2020-11-21 16:46:57 259

原创 Spring集成RocketMq进阶

​​场景​:我们平台是做冷链数据采集的,和硬件设备对接,采集实时的温湿度和车辆的定位信息,现有3000多硬件设备,每个设备5分钟上传一次数据,这样的数据量上来后直接把服务搞死,cpu过载​。​​上面这种情况就算数据库做读写分离,分库分表,但是数据一直在写入,CPU一直在飙高,早晚服务会崩溃,所以考虑放到消息队列中​。但是放到消息队列中也不能说就没有什么问题,如果入队数据量远远大于出队数据量,那么还是会导致服务出现问题,所以现在的考虑是​:使用RocketMq,设备采...

2020-11-20 21:43:31 321

原创 Spring集成RocketMq

先说下RocketMQ的优点​: 单机吞吐量:十万级 可用性:非常高,分布式架构 消息可靠性:经过参数优化配置,消息可以做到0丢失 功能支持:MQ功能较为完善,还是分布式的,扩展性好 支持10亿级别的消息堆积,不会因为堆积导致性能下降 源码是java,我们可以自己阅读源码,定制自己公司的MQ,可以掌控 缺点: 支持的客户端语言不多,目前是java及c++,其中c++不成熟; 社区活跃度一般 没有在 mq 核心中去实现JM.

2020-11-19 18:39:08 1575

原创 设计模式之观察者模式

定义观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用于在关联行为之间建立一套触发机制的场景。适用场景我们经常看到微信朋友圈的动态通知、邮件通知等实例我们来实现下java.awt.Event,简单的模拟下创建Event类public class Event { ...

2020-10-16 10:39:50 249

原创 设计模式之装饰者模式

定义​​装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。适用场景1、用于扩展一个类的功能或给一个类添加附加职责。2、动态的给一个对象添加功能,这些功能可以再动态的撤销。实例说太多的概念都太过于苍白,我喜欢直接上代码我们用装饰者模式写下买煎饼加鸡蛋加烤肠这个场景,可以根据客户要求任意加创建一个煎饼的抽象类public abstract...

2020-10-16 09:59:13 236

原创 设计模式之适配器模式

适配器模式定义​​适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作,属于结构型设计模式。适用场景1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。2、适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。有点亡羊补牢的感觉。实例我们现在的登录有很多种,QQ、微信等,我们利用适配模式来写下这个代码...

2020-10-14 15:59:55 222

原创 设计模式之模板模式

一、模板模式定义​​模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。适用场景1、一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2、各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。优点 利用模板方法将相同处理逻辑的代码放到抽象父类中,提高代码的...

2020-10-14 15:17:22 374

原创 五分钟理解设计模式之代理模式

定义​​代理模式(ProxyPattern)的定义也非常简单,是指为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客服端和目标对象之间起到中介作用,代理模式属于结构型设计模式。​​代理其实就是在原本逻辑前后增加一些逻辑,而调用者无感知分类 静态代理 动态代理 jdk动态代理 cglib动态代理 目的 保护目标对象 增强目标对象 静态代理场景​...

2020-10-13 16:01:11 180

原创 设计模式之委派模式和策略模式

一、委派模式委派模式(Delegate Pattern)的基本作用就是负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。举例:老板(Boss)给项目经理(Leader)下达任务,项目经理会根据 实际情况给每个员工派发工作任务,待员工把工作任务完成之后,再由项目经理汇报工作进度和结果给老板。创建员工IEmployee接口public interface IEmploye...

2020-10-13 15:02:51 426

原创 五分钟精通设计模式之原型模式

定义原型模式(Prototype Pattern)是指原型实例指定创建对象的 种类,并且通过拷贝这些原型创建新的对象。 调用者不需要知道任何创建细节,不调用构造函数。适用场景类初始化消耗资源较多。 new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等) 构造函数比较复杂 循环体中生产大量对象时,可读性下降。 原型模式就是快速构建对象的方法总结, 简单工厂将getter、setter封装到某个方法中 JDK提供的实现Cloneable接口,实现快速复制 scope=“prototy

2020-10-11 16:39:37 129

原创 五分钟精通设计模式之单例模式

定义单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点适用场景 确保任何情况下都绝对只有一个实例 常见写法 饿汉式单例 懒汉式单例 注册式单例 ThreadLocal单例 饿汉式单例 在单例类首次加载时就创建实例 绝对线程安全,在线程还没出现以前就实例化了,不可能出现访问安全问题 缺点:浪费内存空间 优点:没有加任何的锁...

2020-10-11 16:07:50 136

原创 五分钟读懂设计模式之工厂方法模式、抽象工厂模式

一、工厂方法模式定义:​​工厂方法模式是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行适用场景​: 创建对象需要大量重复的代码 客户端(应用层)不依赖于产品实例如何被创建、实现等细节 一个类通过子类来指定创建哪个对象 优点 用户只需关心所需产品对应的工行,无需关心创建细节 加入新产品符合开闭原则,提高系统的可扩展性 缺点 类的个数容易过多,增加了代码结构的复杂度...

2020-10-11 15:02:39 171 1

原创 五分钟读懂工厂模式之简单工厂模式

工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。一、简单工厂模式 定义 简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类的实例。2.使用场景 厂类负责创建的对象较少 客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心 3....

2020-10-11 13:22:55 165

原创 MyCat介绍和使用

1.MyCAT介绍1.1什么是MyCAT简单的说,MyCAT就是:一个彻底开源的,面向企业应用开发的“大数据库集群”支持事务、ACID、可以替代Mysql的加强版数据库一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品一个新颖的数据库中间件产品MyCAT的目...

2020-10-10 10:35:37 541

原创 SpringMVC介绍和使用

一、概念介绍1.1三层结构介绍我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器;另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层表现层 也就是我们常说的web层,她负责接收客户端请求,向客户端相应结果,通常客户端使用http协议请求web层,web需要接收http请求,完成http响应 表现层包括展示层和控制层:控制层负责...

2020-10-09 17:00:56 587

原创 docker+prometheus+grafana+alertmanager告警安装使用 (图文详解)

前言:一个服务上线了后,你想知道这个服务是否可用,需要监控。假如线上出故障了,你要先于顾客感知错误,你需要监控。还有对数据库,服务器的监控,等等各层面的监控。近年来,微服务架构的流行,服务数越来越多,监控指标变得越来越多,所以监控也变得越来越复杂,需要新的监控系统适应这种变化。以前我们用zabbix,StatsD监控,但是随着容器化,微服务的流行,我们需要新的监控系统来适应这种变化。于是监控项目Prometheus就应运而生。所有的前提是在安装docker后,若不会安装docker可以翻看我

2020-09-22 20:30:18 945

原创 修改docker部署jenkins时区和时间

场景:在jekins中设置的定时任务凌晨备份数据库,但是都是上午十点左右开始备份,想到应该是时区的问题。系统时间查询date -R运行tzselecttzselect复制文件到/etc目录下cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime查看时间进入jekins容器查看:docker exec -it jekins /bin/bash修改容器内系...

2020-08-16 14:27:31 1060

原创 启动redis的警告处理

警告1 : WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128解释:上面写的很清晰,意思是配置 /proc/sys/net/core/somaxconn的值是128,虽然redis.conf中配置的是511,但是linux内核会以无提示的方式将其截断为128。在一个高并发的环境下,128是远远不...

2020-08-14 17:04:43 774

原创 Ubuntu系统运行一段时间出现python进程CPU过载

最近生产系统出现python进程cpu过载,如下图:和运维沟通后并没有被攻击,不定时出现这个问题,但是查询不到什么原因,尝试过后,可通过以下命令杀掉进程:kill -STOP 进程号备注:通过kill其他命令杀掉大约1分钟后再次过载查了很久没有找到相关原因,有知道的大神能否指导告知下!...

2020-08-06 15:44:28 542 1

原创 spring原理(二)

Spring APO原理1.概念横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。使用"横切"技术,AOP 把软件系统分为两个部分:...

2020-04-20 16:21:28 246

原创 spring原理(一)

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring仍然可以和其他的框架无缝整合。1. Spring特点 1.轻量级 2.控制反转 3.面向切面 4.容器 5.框架集合2. Spring核心组件3. Spring常用模块4. Spring主要包5. Spring常用注解...

2020-04-20 15:41:29 1527

原创 JAVA多线程并发(二)

JAVA 锁1.乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新),如果失败则要重复读-比较-写的操作。java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是...

2020-04-15 15:35:50 304

原创 JAVA多线程并发

线程的实现/创建方式1.集成Thread类public class MyThread extends Thread { public void run() { System.out.println("MyThread.run()"); } } MyThread myThread1 = new MyThread(); myThread1.start();2.实现 Ru...

2020-04-14 11:05:50 173

原创 Docker下redis的主从配置

先部署三台redis服务器,6379,6380,6381docker run --name elvis.redis6381 -d \-p 6381:6379 \-v `pwd`/data:/data \daocloud.io/library/redis测试容器:看容器内网的ip地址:3个redis的内网ip地址为:r...

2019-12-25 16:34:27 179

原创 mycat完成分库分表【水平】

1、前提需要完成mycat的安装:https://mp.weixin.qq.com/s/7d05OmBLcK34DXjL2lm4uA2、修改配置文件查看文件内容:mycat\conf\server.xml <user name="root" defaultAccount="true"> <property name="password"...

2019-11-24 12:45:26 260

原创 ubuntu环境下MyCAT安装

什么是mycat,为什么要用mycat,官网介绍的很清楚了,http://www.mycat.io/下载链接:http://dl.mycat.io/1.6.7.3/20190927161129/下载后你需要将它拷贝到你的机器上然后解压它tarzxvfMycat-server-1.6.7--linux.tar.gz最好放置在/usr/local目录下...

2019-11-20 18:58:43 883

原创 seata-server安装、运行(ubuntu)

​一、下载并安装github官网地址:https://github.com/seata/seata/releases/download/v0.9.0/seata-server-0.9.0.tar.gz因下载比较慢,我将下载好的资源上传了CSDN:https://download.csdn.net/download/JackRen_Developer/11982282下载好后上...

2019-11-17 17:00:54 2878

原创 spring-boot-starter-data-elasticsearch 中测试查询语句报错failed to map source

报错信息:org.springframework.data.elasticsearch.ElasticsearchException: failed to map source [ {"id":5,"title":"荣耀V10","category":"手机","brand":"华为","price":2799.0,"images":"http://image.baidu.com/13123...

2019-10-18 14:02:16 1647 1

GeoLite2-City.mmdb文件.rar

根据IP地址可以解析到对应的城市代码,城市名称等等

2021-02-27

全国省市县数据+拼音+经纬度

全国省市县数据+拼音+经纬度 一张表实现,已经亲自验证,没有问题,这是mysql文件,其他数据库的可以在看下,以免下载错误!

2019-11-27

mycat-server-1.6.7.zip

Mycat数据库分库分表中间件,发出来供大家加速下载,有疑问可私聊

2019-11-20

seata-server-0.9.0.tar.gz

因在github下载seat太慢,上传tar包资源,供大家学习分布式事务,项目版本是0.9.0,用于ubuntu的安装使用,有问题可以私信!!!

2019-11-17

elasticsearch-analysis-pinyin-5.6.12.zip

非常好用的一款中文分词器,应用于全文搜索技术中,于elasticsearch能够非常紧密配置,实现分词检索

2019-10-17

elasticsearch-analysis-ik-5.6.12.zip

非常好用的一款中文分词器,应用于全文搜索技术中,于elasticsearch能够非常紧密配置,实现分词检索

2019-10-17

elasticsearch-analysis-ik-6.6.1.zip

非常好用的一款中文分词器,应用于全文搜索技术中,于elasticsearch能够非常紧密配置,实现分词检索

2019-10-17

win32-x64-64_binding.node

在安装node-sass时,由于网速过慢或者...等原因造成的下载文件失败。因此共享该文件。

2019-08-07

基于SpringBoot开发一套完整的项目

基于SpringBoot开发一套项目,其中运用了Thymeleaf模版

2019-04-20

IDEA搭建SpringMVC并用gradle配置的实战demo

该案例详细配置了SSM框架开发例子,虽然只是demo,但是涵盖较多。

2019-04-19

Intellij IDEA创建Gradle项目并配置Tomcat

该项目创建是用gradle创建的,便于开发者学习使用,麻雀虽小,五脏俱全

2019-04-18

IDEA搭建SpringMVC并用maven配置的实战demo

该案例详细配置了SSM框架开发例子,虽然只是demo,但是涵盖较多。

2019-04-16

jenkins配置所需war包

java开发中可用于自动执行与构建,测试,交付或部署软件相关的各种任务,配置jenkins所需要的war包

2018-08-20

空空如也

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

TA关注的人

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