- 博客(83)
- 收藏
- 关注
原创 elasticSearch-索引详解-es的基本使用
文章导航查看先关信息查看健康状况查看所有索引创建索引索引&查询一个文档索引一个文档到hero索引中查询所有文档查看先关信息查看健康状况通过cat命令可以查看所有能查看的信息http://localhost:9200/_cat查看集群健康状况http://localhost:9200/_cat/health?v_cat/health即可查看集群的健康状态?号后面的v, 是用来要求在返回结果找那个返回表头其中状态值status,有三种不同状态Green - ever
2020-11-16 10:53:53 1048
原创 elasticSearch-索引详解-索引管理
文章导航索引管理创建索引索引监控状态管理索引管理创建索引/**/PUT twitter{ "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } }}索引监控状态管理...
2020-11-16 10:53:38 1547
原创 elasticSearch-索引详解-映射详解
文章导航mapping 映射定义mapping type废除说明字段类型介绍字段定义属性介绍Multi Fields 多重字段元字段介绍动态映射mapping 映射定义mapping type废除说明字段类型介绍字段定义属性介绍Multi Fields 多重字段元字段介绍动态映射...
2020-11-16 10:53:26 1436
原创 设计模式--适配器模式
文章导航定义示例定义适配器模式: 将一个类的拮抗转换成用户期望的另一个接口,使原本不兼容的类也可以一起工作结构型设计模式亡羊补牢,并非代码初期使用的设计模式,而是在后期类的方法和需求不兼容时进行处理示例很多耳机是圆孔线,而有些手机只支持Type-c的接口.因此,我们在Type-C类型的手机上使用耳机时需要转接口来进行转换, 这个转接口就是一种适配器创建圆孔接口类public class CircularHole { public String connectByCircula
2020-09-13 13:42:31 225
原创 设计模式--模板模式
文章导航定义示例定义模板模式: 定义一个骨架, 允许子类为一个或多个步骤提供实现.可一次性实现实现一段逻辑的不变部分,将可变部分留给子类实现避免代码重复, 将各个类的公共行为提取到一个统一父类上示例以完成作业,然后老师抽查作业为例子, 想思路,拿笔本,做作业等步骤都是一样,将不同老师检查作业方式不同作为钩子函数创建一个作业工作类public abstract class Job { protected final void doHomework() { //
2020-09-03 19:58:53 148
原创 设计模式--代理模式
文章导航定义示例定义代理模式: 指为其他对象提供一种代理起到中介作用用于保护和增强目标对象无需更改源代码示例玩游戏需要升级,但自己没有时间,请一个代练帮忙升级, 这个代练就是 代理创建一个人物接口,有比如升级的功能public interface Person { public void upgrade();}需要给我的人物升级,创建一个实现类public class Myself implements Person { public void upgrad
2020-09-02 18:32:54 149
原创 设计模式--原型模式
文章导航概念定义适用场景浅克隆深克隆概念定义原型模式: 指原用型实例指定创建对象的种类, 并通过复制这些原型创建新的对象适用场景构造函数比较复杂的情况下需要在循环体中产生大量对象时类初始化消耗的资源较多时生成对象非常繁琐时浅克隆浅克隆克隆的对象,复制的是引用的地址. 也就是说如果我们对任意一个对象的属性值进行修改, 全部克隆对象都会被更改值原型接口public interface Prototype { Prototype clone();}具体需要克隆
2020-08-31 20:39:24 302
原创 设计模式--单例模式
文章导航单例模式饿汉式单例模式饿汉式单例模式线程安全饿汉式单例模式单例模式确保一个类在任何情况下都绝对只有一个实例,并提供一个全局的访问点饿汉式单例模式在加载时就立即实例化第一种实现public class HungrySingleton { private static final HungrySingleton hungrySingleton = new HungrySingleton(); public HungrySingleton() { } p
2020-08-27 20:34:54 131
原创 设计模式--工厂模式
文章导航工厂模式简单工厂工厂方法模式抽象工厂工厂模式简单工厂以订单为例,公司里有普通订单,先定义一个订单接口public interface IOrder { /** 生成订单*/ public void createOrder();}创建一个普通订单的实现类public class OrdinaryOrder implements IOrder { public void createOrder() { System.out.println("生成普
2020-08-26 21:01:48 397
原创 软件设计原则--合成复用原则
合成复用原则 (Composite/Aggregate Reuse Principle, CARP) : 尽量使用对象组合/聚合,而不是继承关系降低类与类值啊金的欧核对使得系统更加灵活,一个类的更改对其他类造成的影响变小很典型合成复用创建一个数据库连接类public class DBConnection { public String getConnection() { return "MySql 数据库连接"; }}连接的数据库的demopubli.
2020-08-25 21:36:47 171
原创 ElasticSearch & Kibana 安装 (Windows环境7.6版本 ) 附百度云地址
文章导航前置 & 下载安装 & 配置 & 说明Kibana安装前置 & 下载前置条件:jdk8及以上官网对应关系表:https://www.elastic.co/cn/support/matrix#matrix_jvm安装包官网:https://www.elastic.co/cn/downloads/elasticsearch.https://www.elastic.co/guide/en/kibana/current/index.html.百度云:ht
2020-08-21 20:30:54 776 2
原创 软件设计原则--迪米特原则
迪米特原则 (Law of Demeter LoD): 一个对象应该对其他对象保持最少了解, 又叫最少知道原则,降低类与类之间的耦合度老板需要做一个做直播窗口,了解热门直播平台的价格,老板找到经理,让经理统计好后把结果告诉老板,...
2020-08-14 14:49:38 208
原创 软件设计原则--接口隔离原则
接口隔离原则 (Interface Segregation Principle, ISP) : 是指用多个专门的接口, 而不适用单一的总接口, 不应该依赖它不需要的接口接口细化适度, 接口中方法应该尽量少,但不是越少越好接口单一化,不要建立庞大臃肿的接口一个类对另一个类的依赖应该建立在最小接口之上接口隔离符合高内聚,低耦合.具有很好的可读性,扩展性和可维护性设计接口时,需要多花时间思考,考虑业务模式,预判之后可能出现变更或者新的需求所以,对于业务模型的理解是非常重要的以动物行为进行抽象.
2020-08-13 16:51:00 213
原创 软件设计原则--单一职责原则
单一职责 (Simple Responsibility Pinciple, SRP) 是指不要存在多于一个导致类变更的原因降低类的复杂度, 提高类的可读性,系统的稳定性,降低修改风险一个类如果负责两个职责,当需求发生变更,修改其中一个职责的逻辑时,可能会导致另一个职责功能发生意想不到的问题.创建一个 Course 类, 体育课送一套护具,其他课程不送public class Course { public void study(String courseName) { .
2020-08-13 16:17:55 148
原创 软件设计原则--依赖倒置原则
依赖倒置原则 (Dependence Inversion Principle, DIP): 高层模块不应该依赖底层模块,二者都应该依赖其抽象.抽象不应该依赖细节, 细节应该依赖抽象.减少类与类之间的耦合,提高系统稳定性,可读性,可维护性降低修改程序造成的风险new 一个小明public class XiaoMing { public void studyScienceCourse(){ System.out.println("小明在学习理科课程"); }.
2020-08-12 15:46:39 156
原创 软件设计原则--开闭原则
开闭原则 (Open-Closed Principle, OCP) : 一个软件实体(类,模块,函数之类的) 应该对扩展开放,对修改关闭强调的是用抽象构建框架, 实现扩展细节,提高系统的可复用性及可维护性面向对象设计中最基本的设计原则其核心思想就是面向抽象编程...
2020-08-12 15:45:58 137
原创 基于docker安装jdk1.8
1.安装Docker菜鸟教程2.下载centos镜像# 默认拉取最新,版本号可手动添加# 比如 docker pull centos:7.2.1511docker pull centos 查看本地镜像docker images 创建容器以 交互模式 启动后进入命令行 将容器目录和宿主机目录进行挂载 并启动容器后启动bashdocker run -i -t -v /root/software/:/mnt/software/ 831691599b88 /bin/bash -i:表
2020-07-31 16:08:54 5677
原创 基于docker安装tomcat
拉取镜像docker pull tomcat查看镜像docker images启动容器docker run -d -p 8080:8080 tomcat进入容器docker exec -it 412e7f687a9a /bin/bash可以看到webapps里面没有内容删除webapps,将webapps.dist改名为webappsrm -rf webappsmv webapps.dist webapps访问8080端口ok...
2020-07-31 15:14:25 411 2
原创 基于docker安装redis
获取redis镜像docker pull redis启动镜像docker run -d --name redis --restart always -p 6379:6379 -v /usr/local/redis/data:/data redis --requirepass "123456" --appendonly yes# 端口-p 6379:6379 #容器名--name redis# 容器挂载-v usr/local/redis/data:/data# 后台启动-d red
2020-07-31 12:30:43 157
转载 RPC理论
RPC概述:RPC (Remote Procedure Call Protocol) - 远程过程调用协议, 一种通过网络从远程计算机程序上请求服务, 而不需要了解底层网络技术的协议。 RPC协议假定某些传输协议的存在, 如TCP或UDP, 为通信程序之间携带信息数据, 在OSI网络通信模型中, RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易过程是什么?过程就是业务处理, 计算任务, 更直白理解, 就是程序像调用本地方法一样调用远程的过程响应要慢几个
2020-05-26 13:41:18 310
原创 Linux基本概念,操作命令,权限
基本概念Linux目录信息目录含义/每一个文件和目录从根目录开始, 只有root用户具有该目录下的写权限/boot引导操作系统启动的文件/home所有用户用home目录来存储他们的个人档案/usr用户的程序文件, 文档和源代码/tmp系统和用户创建的临时文件/var可以变化的文件, 包括日志文件, 数据库文件等/opt从个别厂商的附加应用程序/dev所有连接到系统的设备/srv服务器特定服务相关的数据/bin用
2020-05-25 15:20:32 133
原创 多线程之启动,中止,及其他
启动线程1.Runnable是Thread执行的逻辑2.CallableFutureTask也是Thread要执行的逻辑,只是封装了获取结果的功能因此: 启动线程的方式只有一种: new Thread().start();终止线程1.stop(不建议使用)示例代码:public class Demo_Stop { public static void main(Stri...
2020-02-21 10:39:15 172
原创 线程安全之可见性问题
一.可见性问题1.CPU指令重排Java编程语言为了增强效率,其的语义允许Java编译器和微处理器进行执行优化,这些优化导致了与其交互的代码不再同步,从而导致出现看似矛盾的行为。比如代码 boolean isTrue = true; while (isTrue){ //... }在循环判断执行一定次数,变量isTrue的值...
2020-02-19 19:21:44 175
原创 多线程之等待唤醒机制
等待唤醒机制总的来说共有三种1.被弃用的suspend/resume2.wait/notify机制3.park/unpark机制1.被弃用的suspend/resume调用suspend挂起目标线程,通过resume可以恢复线程执行被弃用的主要原因是因为: 容易写出死锁的代码比如:public void test_suspend() throws Exception { ...
2020-02-19 18:29:38 169
原创 ThreadPoolExecutor简单理解与使用
查看ThreadPoolExecutor的源码发现,其提供了4个构造方法,如下:其中典型使用线程池会根据corePoolSize和maximumPoolSize自动地调整线程池大小如果当前线程池的线程数少于corePoolSize线程正在运行的个数时, 无论已有线程是否空闲,都会新增一个线程如果当前线程池的线程大于或者是等于corePooleSIze,并且任务队列没有满时,将其提交给...
2020-02-17 11:40:35 191
原创 SpringCloud熔断机制-ribbon结合hystrix
ribbon服务1.pom依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> ...
2020-02-12 13:17:16 307
原创 SpringCloud负载均衡-ribbon服务的搭建
ribbon服务端1.pom依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> ...
2020-02-12 10:10:10 152
原创 SpringCloudConfig快速入门-配置中心的搭建
server端1.pom中添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> <version>2.0.1.RELEASE&l...
2020-02-10 12:20:02 469
原创 eureka快速入门--单机与集群的搭建
eureka单机搭建搭建eureka server创建一个springboot项目1.pom中添加依赖 <!--端点监控工具依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId...
2020-02-06 17:03:20 322
原创 Eureka服务注册
注册流程如果需要注册,肯定需要一个注册的实例端在EurekaClientAutoConfiguration中寻找EurekaClient@Bean(destroyMethod = "shutdown") // 如果spring中没有该bean则创建,反之不创建 @ConditionalOnMissingBean(value = EurekaClient.class, se...
2019-11-11 17:23:20 161
原创 Eureka初步认识
EurekaEureka和Consul,Zookeeper类似,是一个服务注册发现组件Eureka基本架构主要包括三个角色Register Server: 服务注册中心, 一个Eureka Server, 用于提供服务注册和发现Provider Service: 提供服务Consumer Service: 消费服务提供者Provider Service 将服务名,ip地址,端口...
2019-11-08 00:33:26 153
原创 SpringCloud组件简述
简介SpringCloud是基于SpringBoot的。在开发部署上继承了SpringBoot的一些优点,快速开发部署。SpringCloud通过提供了一系列的开发组件和集成框架,帮助开发可以迅速的搭建一个分布式的微服务系统。SpringCloud提供了很多微服务应该具备的功能组件,包括但不限于,服务注册,配置中心,熔断器,网关路由,分布式会话等功能常用组件服务组成发现组件Eureka...
2019-11-06 21:51:21 160
原创 springcloud笔记--微服务应该具备的功能
1.微服务应该具备的功能服务注册发现服务负载均衡服务容错服务网关服务配置中心服务链路追踪服务实时日志2.服务注册发现由于微服务系统的服务力度较小,服务熟练多,所以需要一个共同的注册中心来统一管理微服务实例注册中心会提供服务的健康检查方案,检查该注册服务收费可用。通常是一个服务实例注册后, 会定时的向服务中心提供‘心跳’检测3.服务负载均衡网络往往有不可靠性,为了保证服务...
2019-11-05 20:24:55 141
原创 redis学习记录阶段二 (数据结构的基本使用-linux-1)
阶段二目标:环境搭建基本语法,用法特性学习官方文档阅读权威书籍阅读目标二: 基本语法,用法语法使用一.字符串string简单的key-value类型,其中value不仅仅可以说String类型,还可以是int类型的常见场景:微博数,粉丝数常用命令Set: 设置指定key的值Get:获取指定key的值Incr: 将key中存储的数字+1Decr: 将key中存储...
2019-10-22 23:43:37 145
原创 redis学习笔记阶段二 (环境搭建)
阶段二目标:环境搭建基本语法,用法的使用特性学习官方文档阅读权威书籍阅读目标一: 环境搭建安装wgetyum -y install wget安装rediswget http://download.redis.io/releases/redis-5.0.5.tar.gz解压到指定目录tar xzf redis-5.0.5.tar.gz -C /usr/local/...
2019-10-21 22:54:04 117
原创 redis学习记录阶段一 (初始redis)
阶段一目标redis的概念和方向redis解决了什么问题同类技术有哪些redis术的主要组成部分redis为什么会出现目标一: 该技术的概念和方向官方定义:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets)...
2019-10-21 22:34:34 125
原创 SpringBoot-记录-用策略模式--实现微信小程序不同二维码扫码功能
Controller层@RequestMapping("/storeRecharge")@RestController@Api(value="扫一扫二维码功能管理",description = "提供查询二维码是否正确")public class StoreRechargeController { private static Logger log = LoggerFactory....
2019-04-10 22:21:35 712
原创 跨域问题解决办法之一:proxyTable
解决跨域问题问题一:为什么会有跨域问题浏览器的同源策略不允许跨域访问同源策略:指协议,域名,端口相同.问题二:解决思路有什么?既然浏览器不能跨域访问,那么跨域使用后台服务访问吗?可以!问题三:怎么让后台服务访问代替浏览器访问使用proxyTable解决问题四:什么是proxyTable?vue-cli提供的解决vue开发环境下跨域问题的方法proxyTable的底层使用了ht...
2019-01-20 11:23:55 864
原创 多线程面试--进阶篇3(并发工具类和并发容器)
1.为什么要使用ConcurrentHashMapHashMap里也有failFast机制,在多线程环境下,使用HashMap进行put操作会引起死循环因为多线程可能会导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环一直获取EntryHashTable容器是使用synchronized来保证线程安全,但是由于sync...
2019-01-13 00:49:30 274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人