摘要:
什么是适配器模式 适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作,属于结构型设计模式。 适配器模式主要有3个角色: 被适配者(Adaptee):适配者即被适配的角色 比如买了一个欧标吹风机,和国内的标准并不匹配。这时,被适 阅读全文
摘要:
什么是装饰器模式? 装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。(抄来的) 装饰器模式主要有4个角色: 抽象接口:抽离出最基本的需求。 比如小卖铺家的房子马上要交付了,装修就是我最基本的需求 具体 阅读全文
摘要:
文档映射 把ElasticSearch的核心概念和关系数据库做了一个对比,索引(index)相当于数据库,类型(type)相当于数据表,映射(Mapping)相当于数据表的表结构。ElasticSearch中的映射(Mapping)用来定义一个文档,可以定义所包含的字段以及字段的类型、分词器及属性等 阅读全文
摘要:
之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字段分成一个一个汉字,然后搜索的时候也会把搜索的句子进行分词,所以这里就需要更加智能的分词器IK分词器了。 ik分词器的下载和安装,测试 第一: 下载地址:https://github.com/medcl/elast 阅读全文
摘要:
确保已安装JDK 推荐1.8以上 可参考:https://www.cnblogs.com/laoyeye/p/6753222.html 上传安装包 1、elasticsearch-6.8.10.tar.gz 2、kibana-6.8.10-linux-x86_64.tar.gz 新建es用户 因为e 阅读全文
摘要:
什么是原型模式? 原型模式是通过给出一个原型对象来指明所创建的对象的类型,然后使用自身实现的克隆接口来复制这个原型对象,该模式就是用这种方式来创建出更多同类型的对象。 原型模式的优点? 一个对象通过new创建的过程为: 在内存中开辟一块空间; 在开辟的内存空间中创建对象; 调用对象的构造函数进行初始 阅读全文
摘要:
最近在做一些涉及分库分表的需求,正好周末有点时间就简单做下总结,也方便自己以后查看。 本文只讲述使用Sharding-JDBC做分库分表的一些实践经验,如果有错误欢迎大家指出。 什么是Sharding-JDBC Sharding-jdbc是当当网开源的一款客户端代理中间件。Sharding-jdbc 阅读全文
摘要:
docker基本命令 1、查看容器 docker ps -a -- 查看运行中的容器 docker ps -- 查看所有的容器 2、查询镜像 docker images 3、进入容器 docker exec -it xxxx bash xxxx为container id或者names 4、删除容器 阅读全文
摘要:
Docker概念 镜像:一个只读的模版,类似系统安装镜像(iso)文件。 容器:容器类似于虚拟主机,每个容器都是独立互相隔离。容器可以被启动、停止、删除。 仓库:是存放镜像的场所,仓库分为公开仓库和私有仓库。 环境:阿里云CentOS 8 卸载旧版本 1.卸载老版本(没有老版本跳过) 保留/var/ 阅读全文
摘要:
cd /etc/yum.repos.d 备份一下原来的yum源 mv CentOS-Base.repo CentOS-Base.repo.bk 下载新的CentOS-Base.repo 到/etc/yum.repos.d/ 如下的源用一个就好,三条命令选其一 //更新为阿里云的源 wget -O / 阅读全文
摘要:
在JAVA开发过程中,有时会遇到一些小运算。比如传入一个List集合,我们需要根据集合中的某一属性做过滤。 相信这种场景大家都有遇到过,通常的解决办法是直接在java代码中写好一些比较规则,实现上也是比较简单的。 但是如果这个规则是动态的呢,假如A类型的数据,我们根据A字段过滤,B类型的数据,我们根 阅读全文
摘要:
1、下载 下载地址:http://rocketmq.apache.org/release_notes/执行命令: 2、创建RocketMQ存储文件的目录,执行如下命令: 3. RocketMQ配置文件 4、进入conf目录,替换所有xml中的${user.home},保证日志路径正确 注意:sed 阅读全文
摘要:
简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装 阅读全文
摘要:
报表导出有很多种方法,像之前我有写过的jxl,poi,jasperreport又或者各种商业软件,这次来简单介绍下用了许久的开源轮子easypoi。 easypoi的底层原理就不介绍了。因为官方文档的不足,本次简单记录下使用easypoi导出excel的各种方法。 首先在具体介绍前,建议大家先看一看 阅读全文
摘要:
多线程、线程池、并发包每当谈起这些词汇,可能不是在面试就是在准备面试的路上了。 有句话叫“面试造航母,工作拧螺丝“,确实很多情况下我们是用不到这些东西的,但是学好这些东西对我们的日常工作也可能会产生意想不到的好处的。 临近年末,收拾了下手头工作,趁着最后两天有些闲暇,准备着手优化下前段时间业务人员反 阅读全文
摘要:
写在最前面 前几周写了篇 利用Redis实现分布式锁 ,今天简单总结下ZooKeeper实现分布式锁的过程。其实生产上我只用过Redis或者数据库的方式,之前还真没了解过ZooKeeper怎么实现分布式锁。这周简单写了个小Demo,更坚定了我继续使用Redis的信心了。 ZooKeeper分布式锁的 阅读全文
摘要:
写在最前面 犹记毕业第一年时,公司每次发布完成后,都会在一个群里通知【版本更新,各部门清理缓存,有问题及时反馈】之类的话。归根结底就是资源缓存的问题,浏览器会将请求到的静态资源,如JS、CSS等文件缓存到用户本地,当用户再次访问时就不需要再次请求这些资源了,以此也是提升了用户体验。但是也正是因为这些 阅读全文
摘要:
写在最前面 我在之前总结幂等性的时候,写过一种分布式锁的实现,可惜当时没有真正应用过,着实的心虚啊。正好这段时间对这部分实践了一下,也算是对之前填坑了。 分布式锁按照网上的结论,大致分为三种:1、数据库乐观锁; 2、基于Redis的分布式锁;3.、基于ZooKeeper的分布式锁; 关于乐观锁的实现 阅读全文
摘要:
一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)表字符集默认使用utf8,必要时候使用utf8mb4 解读:1、通用,无乱码风险,汉字3字节,英文1字节。2、utf8mb4是utf8的超集,有存储4字节例如表情符 阅读全文
摘要:
可能有些同学知道ArrayList,HashSet,,HashMap这些容器都是线程不安全的,如果多个线程并发的访问这些容器就会导致线程不安全问题,很多时候需要我们手动对这些容器进行同步处理,造成我们很大的不便,因此java为我们提供了同步容器和并发容器来解决这个问题。 一、同步容器 首先详细介绍前 阅读全文