自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yolly

个人博客

  • 博客(80)
  • 资源 (1)
  • 收藏
  • 关注

原创 解决 rocketmq-client-go 日志标准输出问题

rocketmq-client-go 包 会默认将Info级别的日志打印到标准输出进入supervisor解决这一问题的办法有两个:1.声明客户端是将rocketmq的log覆盖为项目log 并且指定日志打印级别2.配置环境变量设定rocketmq的log打印级别:export ROCKETMQ_GO_LOG_LEVEL=error...

2022-02-18 16:52:44 1713 1

转载 ElasticSearch技术应用及性能优化

前言:全文搜索引擎ElasticSearch1.什么是全文搜索引擎?什么是全文搜索引擎?百度百科中的定义:全文搜索引擎是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。从定义中可以大致了解全文检索的思路,为了更详细的说明,先从生活中的数据...

2021-04-26 16:40:17 369

转载 MySQL亿级数据表DDL解决方案及实战

MySQL亿级数据表DDL解决方案及实战背景  随着业务的发展,用户对系统需求变得越来越多,这就要求系统能够快速更新迭代以满足业务需求,通常系统版本发布时,都要先执行数据库的DDL变更,包括创建表、添加字段、添加索引、修改字段属性等。痛点:在数据量不大的情况下,执行DDL速度较快,对业务基本没啥影响,但是数据量大的情况,而且我们业务做了读写分离,接入了实时数仓,这时DDL变更就是一个的难题,需要综合各方业务全盘考虑,否则会造成主从延迟,业务崩溃等后果。DDL:MySQL中的DDL语句形式

2021-01-11 16:30:48 1886

原创 策略模式-springboot使用Demo

1.生命一个注解 用于标记策略类import java.lang.annotation.*;@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpublic @interface HandlerReportSubjectType { /** * 策略类型 * @return */ int value();}2.定义策略接口:

2020-06-08 16:34:17 340

原创 Apache Kafka

目录1 基本概念2 环境部署2.1. 准备工作2.1.1 安装包2.1.2 准备至少3台主机(ubuntu系统)2.2. 安装JAVA环境2.3搭建zookeeper集群2.4搭建kafka集群3Kafka管理 & 命令行操作3.1 伪分布式环境搭建3.2 集群管理3.2.1启动broker3.2.2 关闭broker3....

2019-09-24 16:56:29 428

原创 ZooKeeper

获取ZooKeeper安装包下载地址:http://opftp.op.com/packages/dev/zookeeper-3.4.14.tar.gz选择一个稳定版本进行下载,我这里下载的是zookeeper-3.4.14版本。ZooKeeper伪分布式集群安装伪分布式集群:在一台Server中,启动多个ZooKeeper的实例。上传并解压安装包c...

2019-09-19 14:07:29 139

原创 spring注解

目录一、定义二、作用域三、解析方式四、元注解五、内置注解[email protected] @Deprecated5.3 @SuppressWarnings六、常用注解6.1 @SpringBootApplication6.2 @Controller6.3 @RequestMapping、GetMapping、PostMapping6.3.1...

2019-09-12 17:57:35 420

原创 rabbitMq 环境搭建 及 与 springboot 集成(完整提供了所有业务场景demo)

目录1.基础知识:1.0 前言:1.1 rabbitmq的用户角色1.2 rabbitmq的端口号1.3 消息队列的运行原理1.4你必须知道的Rabbit2.六种队列2.1 上图1: 简单队列 生产者与消费者一一对应生产者将消息发送到队列,消费者从队列中获取消息。2.2 上图2:Work模式一个生产者多个消费者,每个消费者获取到的消息唯...

2019-09-12 15:15:28 860

原创 ide设置自动生成类注解

ide设置生成类注释File->Settings->Editor -> File and Code Templates -> Files -> Class把下面的内容粘进去 然后点Apply 即可:#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#...

2019-09-10 14:54:42 367

原创 IDE lombok插件 简化Bean get set 方法

1、File → settings → Plugins, 然后点击“Browse repositories” 如图 2、输入 lombok 搜索插件, 点install安装,安装完重启idea 这时候输入lom就可以有提示了这时Bean中注解@Data 就可以省略get set了...

2019-09-10 14:52:29 222

原创 redis-这个可以说是非常全面了

目录前言1.Redis有多快?2.Redis为什么这么快?3.Redis为什么是单线程的?4.Redis五种存储类型及操作命令 4.1 字符串string 可存储 字符串、整数、浮点数 4.2 列表 list 4.3 集合 set 4.4 散列 hash 4.5 有序集合 zsetRedis一共有几种数据类型?五...

2019-09-04 15:59:07 666 1

原创 IO模型

io模型:1.阻塞I/O模型在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样:当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还没有收到一个完整的UDP包),这个时候kernel就要等待足够的数据到来。而在用户进程这...

2019-09-04 15:33:17 127

原创 并发编程和线程安全

JAVA内存模型是一种规范,其规定了一个线程如何和何时可见由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量,他要求调用栈和本地变量放在线程栈上,对象存放在堆上。线程之间的通信必须经过主内存.目的是解决由于多线程通过共享内存进行通信时,存在的本地内存数据不一致、编译器会对代码指令重排序、处理器会对代码乱序执行等带来的问题。首先介绍几个比较重要的概念:1 as-if-...

2019-08-12 15:05:52 260

原创 JAVA NIO Netty

一、BIO 1.阻塞IO与非阻塞IO Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了。 2.特点每个请求都需要独立的线程完成数据read,业务处理,数据write的完整操作问题。 当并发数较大时,需要创建大量线程来...

2019-08-08 11:09:33 266

原创 JAVA反射与动态代理

一、了解类加载机制和类加载器字节码此处应有操作演示:javap反解析class文件类加载机制概述:Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。虚拟机把描述类的数据从class文件加载到...

2019-08-08 10:53:04 164

原创 Mybatis

概念:Mybatis是支持定制化SQL,存储过程以及高级映射的优秀的持久层框架。 Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。优缺点: 优点:(1)易于上手和掌握。 (2)sql写在xml里,便于统一管理和优化。 (3)解除sql和...

2019-08-06 18:48:40 211

原创 git常用命令

git branch -a 查看所有版本git branch 查看本机版本git checkout -b rms-jsrz origin/rms-jsrz 切换版本git branch -vv 查看本地与远程对应#切换回master分支$ git checkout master#删除本地的某个分支git branch -D hongc...

2019-08-05 16:13:51 136

原创 Mysql 改变packet大小及导入sql,sql文件过大,导入导出缓慢解决办法

有时候当sql文件较大时,导入导出数据库会非常耗时,这是我们可以通过改变packet大小来加快速度,具体操作办法如下:1 找安装目录 进入mysql命令行输入:show variables like "%char%";2 打开MySQL安装目录下的my.ini文件:2.1输入%ProgramData%2.2找到C:\ProgramData\MySQL\MySQL Server ...

2019-08-02 15:55:33 622

原创 mysql查询指定表空间下的各表详细信息脚本

select t.TABLE_SCHEMA as '表空间',t.TABLE_NAME as '表名',t.TABLE_ROWS as '行数',t.TABLE_COLLATION as '字符集',t.TABLE_COMMENT as '注释'from information_schema.tables t wheretable_schema in ('sinochem_order_go...

2019-08-02 15:27:07 660

原创 mysql查询指定表的字段信息

方法一:show full columns from res_store_place;这种方法会将所有表的表字段信息列出来。方法二:select t.TABLE_SCHEMA as '表空间' ,t.TABLE_NAME as '表名' , t.COLUMN_KEY as '是否主键' ,t.COLUMN_NAME as '字段名称' , t.IS_NULLABLE as '是否...

2019-08-02 15:26:07 835

原创 linux 命令行发送get、post请求

发送get请求curl -d "customerId=52478242&productClient=0" http://192.168.100.57/api/account/getcreditcoefficient2发送json参数post请求curl -i -X POST -H "'Content-type':'application/json'" -d '{"ATime":...

2019-08-02 15:22:45 7277

原创 集合元素为对象时按对象属性排序

/*** 按排序号升序方法* @param effectsChannellist2* @return*/List<ChannelsVO> reSort(List<ChannelsVO> effectsChannellist2){List<ChannelsVO> effectsChannellistnew = new ArrayList&l...

2019-08-02 15:19:07 168

原创 GOF设计模式-对象行为型模式-访问者模式

操作复杂对象结构——访问者模式访问者模式概述访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部 分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操 作。例如处方单中的各种药品信息就是被访问的元素,而划价人员和药房工作人员就是访问 者。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型 的元素增加新的...

2019-08-01 18:20:31 142

原创 GOF设计模式-对象行为型模式-模板模式

在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点 单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单-->吃东西-->买单。 在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满 汉全席可大不相同。在软件开发中,有时也会遇到类似的情况,某个方法的实现需要多个步骤(类似“请客”),其 中有些步骤...

2019-08-01 17:24:26 181

原创 GOF设计模式-对象行为型模式-策略模式

算法的封装与切换——策略模式写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题,本篇博客就带你详细了解策略模式。策略模式概述在策略模式中,我们可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算 法,在这里,每一个封装算法的类我们都可以称之为一种策略(Strate...

2019-08-01 15:46:34 254

原创 GOF设计模式-对象行为型模式-状态模式

处理对象的多种状态及其相互转换——状态模式“人有悲欢离合,月有阴晴圆缺”,包括人在内,很多事物都具有多种状态,而且在不同状态下 会具有不同的行为,这些状态在特定条件下还将发生相互转换。就像水,它可以凝固成冰, 也可以受热蒸发后变成水蒸汽,水可以流动,冰可以雕刻,蒸汽可以扩散。我们可以用UML 状态图来描述H2O的三种状态,如图所示:在软件系统中,有些对象也像水一样具有多种状态,这...

2019-08-01 11:36:12 405

原创 GOF设计模式-对象行为型模式-观察者模式

对象间的联动——观察者模式观察者模式是设计模式中的“超级模式”,其应用随处可见,在之后几篇文章里,我将向大家详 细介绍观察者模式。“红灯停,绿灯行”,在日常生活中,交通信号灯装点着我们的城市,指挥着日益拥挤的城市交 通。当红灯亮起,来往的汽车将停止;而绿灯亮起,汽车可以继续前行。在这个过程中,交 通信号灯是汽车(更准确地说应该是汽车驾驶员)的观察目标,而汽车是观察者。随着交通 信号灯的变化,...

2019-07-31 16:28:40 151

原创 GOF设计模式-对象行为型模式-备忘录模式

撤销功能的实现——备忘录模式备忘录模式用于保存和恢复对象的状态,相信大家看过我前面的拙作就会想到原型模式也能保存一个对象在某一个时刻的状态,那么两者有何不同的呢?原型模式保存的是当前对象的所有状态信息,恢复的时候会生成与保存的对象完全相同的另外一个实例;而备忘录模式保存的是我们关心的在恢复时需要的对象的部分状态信息,相当于快照。备忘录模式大家肯定都见过,比如在玩游戏的时候有一个保存当前闯...

2019-07-31 15:22:10 141

原创 GOF设计模式-对象行为型模式-中介者模式

协调多个对象之间的交互——中介者模式QQ作为一款免费的即时聊天软件深受广大用户的喜爱,它已经成为很多人学 习、工作和生活的一部分。在QQ聊天中,一般有两种聊天方式: 第一种是用户与用户直接聊天,第二种是通过QQ群聊天。如果我们使用用户与用户直接聊天方式,一个用户如果要与别的用户聊天或发送文件,通常需要加其他用户为好友,用 户与用户之间存在多对多的联系,这将导致系统中用户之间的关系非常复杂,一...

2019-07-31 11:38:47 156

原创 GOF设计模式-对象行为型模式-迭代器模式

遍历聚合对象中的元素——迭代器模式迭代器模式概述在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一 是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变 化的,又是可分离的。因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被 称之为“迭代器”的对象中,由迭代器来提供遍历聚合对象内部数据的行为,这将简化聚合对象 的设计...

2019-07-30 18:48:23 153

原创 GOF设计模式-对象行为型模式-解释器模式

自定义语言的实现——解释器模式 为人处事是一门大学问,察言观色、听懂弦外之音都是非常重要的,老板跟你说“XX你最近表现平平啊,还得要多努力”,如果你不当回事,平常对待,可能下次就是“XX,恩,你人还是不错,平常工作也很努力,但是我想这份工作可能不是很适合你…..”。又比如你老大说“XX,你最近表现不错,工作积极性很高啊!继续保持啊!”,你高兴乐呵着心想是不是老板要给我加工资了,可能你...

2019-07-30 17:05:34 186

原创 GOF设计模式-对象行为型模式-命令模式

请求发送者与接收者解耦–命令模式装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关 闭,例如电灯或者排气扇。在购买开关时,我们并不知道它将来到底用于控制什么电器,也 就是说,开关与电灯、排气扇并无直接关系,一个开关在安装之后可能用来控制电灯,也可 能用来控制排气扇或者其他电器设备。开关与电器之间通过电线建立连接,如果开关打开, 则电线通电,电器工作;反之,开关关闭,...

2019-07-30 11:28:19 144

原创 GOF设计模式-对象行为型模式-职责链模式

“一对二”,“过”,“过”……这声音熟悉吗?你会想到什么?对!纸牌。在类似“斗地主”这样的 纸牌游戏中,某人出牌给他的下家,下家看看手中的牌,如果要不起上家的牌则将出牌请求 再转发给他的下家,其下家再进行判断。一个循环下来,如果其他人都要不起该牌,则最初 的出牌者可以打出新的牌。在这个过程中,牌作为一个请求沿着一条链在传递,每一位纸牌 的玩家都可以处理该请求。在设计模式中,我们也有一种专门用于处理...

2019-07-29 18:37:30 154

原创 GOF设计模式-对象结构型模式-代理模式

间接访问对象-代理模式代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难 时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与 代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类 型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于不同的场合,满足用户 的不同需求。代理模式概述近年来,...

2019-07-18 18:23:59 213

原创 GOF设计模式-对象结构型模式-享元模式

实现对象的复用-享元模式在软件系统中,有时候也会存在资源浪费的情况,例如在计算 机内存中存储了多个完全相同或者非常相似的对象,如果这些对象的数量太多将导致系统运 行代价过高,内存属于计算机的“稀缺资源”,不应该用来“随便浪费”,那么是否存在一种技术 可以用于节约内存使用空间,实现对这些相同或者相似对象的共享访问呢?答案是肯定,这 种技术就是我们本章将要学习的享元模式。举个栗子:围...

2019-07-18 17:43:35 160

原创 GOF设计模式-对象结构型模式-外观模式

深入浅出-外观模式外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端 与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦 合度,且客户端调用非常方便。外观模式概述:不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶 叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最简单的方式就是跟茶馆服务员说想要...

2019-07-17 16:17:02 147

原创 GOF设计模式-对象结构型模式-装饰模式

拓展系统功能-装饰模式尽管目前房价依旧很高,但还是阻止不了大家对新房的渴望和买房的热情。如果大家买的是 毛坯房,无疑还有一项艰巨的任务要面对,那就是装修。对新房进行装修并没有改变房屋用 于居住的本质,但它可以让房子变得更漂亮、更温馨、更实用、更能满足居家的需求。在软 件设计中,我们也有一种类似新房装修的技术可以对已有对象(新房)的功能进行扩展(装 修),以获得更加符合用户需求的对象,使得对象具...

2019-07-17 14:39:41 164

原创 GOF设计模式-对象结构型模式-组合模式

树形结构的处理-组合模式树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中 的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的 问题,组合模式通过一种巧妙的设计方案使得用户可以一致性地处理整个树形结构或者树形 结构的一部分,也可以一致性地处理树形结构中的叶子节点(不包含子节点的节点)和容器 节点(包含子节点的节点)。下面将学习这种用于...

2019-07-17 13:42:42 141

原创 GOF设计模式-对象结构型模式-桥接模式

处理多维度变化-桥接模式 在正式介绍桥接模式之前,我先跟大家谈谈两种常见文具的区别,它们是毛笔和蜡笔。假如 我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12= 36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对 象个数仅为3+12=15,远小于36,却能实现与36支蜡笔同样的功能。如果增加一种新型号...

2019-07-16 14:27:24 226

原创 GOF设计模式-对象结构型模式-适配器模式

不兼容结构的协调—适配器模式我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够 在220V的电压下工作?答案是引入一个电源适配器(ACAdapter),俗称充电器或变压器,有了 这个电源适配器,生活用电和笔记本电脑即可兼容在软件开发中,有时也存在类似这种不兼容的情况,我们也可以像引入一个电源适配器一样 引入一个称之为适配器的角色来协调这些存在不...

2019-07-15 16:12:44 230

并发编程线程安全样例代码.zip

并发编程、线程安全样例 代码 包含了并发编程的多种业务场景demo测试代码

2019-08-12

空空如也

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

TA关注的人

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