卡卢比-Blog

Reading|Fitness|Coding


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 搜索

docker安装redis(哨兵模式)

发表于 2019-11-22 | 分类于 docker | | 阅读次数:

docker安装redis(哨兵模式)

准备工作,5台本地虚拟机,三台哨兵,2台redis(一主一从),安装好docker环境。(也可以在一台机器上启动5个实例,配置5个不同端口即可)

下载镜像

  • 搜索redis镜像
    1
    docker search redis
阅读全文 »

ES查询DSL之全文查询

发表于 2019-11-11 | 分类于 ElasticSearch , DSL | | 阅读次数:

全文搜索

间隔查询(intervals)

7.X的新特性,查询给定词组匹配指定间隔内的文档,例如:太极藿香,将分成 “太极” 和 “藿香”。可以设置两个词之间最多可有多大间隔才能匹配。若间隔设置为2,则“太极藿香正气液”间隔为0,可以匹配。

阅读全文 »

ES查询DSL之复合查询

发表于 2019-11-01 | 分类于 ElasticSearch , DSL | | 阅读次数:

复合查询

bool 查询

组合查询,组合多个查询类型

类型 说明 计分
must 字句必须出现在文档中 是
filter 字句必须匹配,如:status=1,在filter上下文中执行,不参与计分 否
should 字句应该出现在文档中 是
must_not 字句不得出现在文档中,在filter上下文中执行 否
阅读全文 »

REST-Java High Level REST Client 文档管理 API

发表于 2019-10-12 | 分类于 ElasticSearch , RestClient | | 阅读次数:

文档操作API

添加文档数据

  • 构建索引请求
    1
    2
    3
    4
    5
    6
    IndexRequest request = new IndexRequest("posts");
    request.id("1"); //文档ID
    //数据
    String jsonString =
    "{" + "\"user\":\"kimchy\"," + "\"postDate\":\"2013-01-30\"," + "\"message\":\"trying out Elasticsearch\"" + "}";
    request.source(jsonString, XContentType.JSON);
阅读全文 »

REST-Java High Level REST Client 索引管理 API

发表于 2019-10-11 | 分类于 ElasticSearch , RestClient | | 阅读次数:

创建索引

构建索引请求

1
CreateIndexRequest request = new CreateIndexRequest("product");
  • 设置分片

    1
    request.settings(Settings.builder() .put("index.number_of_shards", 3) .put("index.number_of_replicas", 2) );
  • 设置mapping

    1
    request.mapping( "{\n" + " \"properties\": {\n" + " \"message\": {\n" + " \"type\": \"text\"\n" + " }\n" + " }\n" + "}", XContentType.JSON);
阅读全文 »

微服务学习之微服务基础

发表于 2018-04-29 | 分类于 看书笔记 , SpringCloud微服务实战 | | 阅读次数:

微服务基础

1、 微服务带来的挑战

  • 运维的新挑战
    微服务会导致部署的程序增多,合理的编排很重要
  • 接口的一致性
    微服务虽然拆分了,但还是需要通过接口进行业务上的依赖,若接口改变了,需要提供方和调用方协调改动,不然会出现接口不一致问题。
  • 分布式的复杂性
    由于拆分各个微服务都是独立运行各自的进程中,可能分布在不同的服务器、不同的地域,它们只能通过网络通信来进行合作,所以要考虑很多因素,如:网络延迟、分布式事务、异步消息、session同步等问题。

2、智能端口与哑管道

在单体应用中通过函数调用,在微服务中由于不在同一进程所以要通过网络调用,如果仅仅是改用RPC调用,会导致微服务之间产生繁琐的通信,使系统表现更为糟糕,所以需要更粗粒的的通信协议。

在微服务中通常采用以下两种调用方式:

  • 使用HTTP 的RESTful API 或轻量级消息发送协议
  • 通过在轻量级消息总线上传递消息,如:rabbitMQ
    阅读全文 »

Java基础之泛型总结

发表于 2017-11-07 | 分类于 看书笔记 , Java核心技术卷(第10版) | | 阅读次数:

一、为什么使用泛型

1.可读性好,一看泛型就知道里面装的什么类型的元素
2.泛型只在编译前存在,编译后会将类型擦除并替换成其限定类型,编译后就是一个普通类。泛型可以在编译前规范代码,防止放入一些不合格的对象导致运行期报错,提高程序健壮性。
3.使用泛型让程序更灵活,各类框架就大量使用泛型

个人理解:泛型可以大概分为两部分:定义泛型和使用泛型,大多数时候我们是在使用泛型,也就是用具体类型限制,比如:List《String》,而写一些通用工具或者框架的时候需要自己定义泛型类,泛型方法等提高程序的灵活性。

小小牛博客

二、定义简单泛型类

例如:

定义泛型类:

1
2
3
4
5
6
7
8
9
10
public class Pair<T>{
private T first;
private T second;
public Pair(){first = null;second = null}
public pair(T first, T second){
this.first = first;
this.second = second;
}
//set get 略...
}
阅读全文 »

Java8新特性之Lambda表达式总结

发表于 2017-10-31 | 分类于 看书笔记 , Java核心技术卷(第10版) | | 阅读次数:

函数式接口

Lambda不是所有方法都能使用的,得满足一定的条件,比如得满足函数式接口。
小小牛博客

对于只有一个抽象方法的接口,需要这种借口的对象时,就可以提供一个Lambda表达式,这种接口称为函数式接口,也就是只有一个抽象方法的接口(不包括继承的)

阅读全文 »

Go语言学习之基础语法

发表于 2017-10-27 | 分类于 Go语言 | | 阅读次数:

包

Go使用package来组织代码。每一个可独立运行的Go程序,必定包含一个package main,在这个main包中必定包含一个入口函数main,而这个函数既没有参数,也没有返回值。Go使用UTF-8字符串和标识符(因为UTF-8的发明者也就是Go的发明者之一),所以它天生支持多语言。
小小牛博客

【转】单点登录机制

发表于 2017-10-19 | 分类于 网络转载 | | 阅读次数:

一、单系统登录机制

1、http无状态协议

  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系

  但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求,必须清楚浏览器请求状态。既然http协议无状态,那就让服务器和浏览器共同维护一个状态吧!这就是会话机制

阅读全文 »
123
卡卢比

卡卢比

Living without an aim is like sailing without a compass

23 日志
13 分类
26 标签
RSS
GitHub E-Mail
© 2017 — 2019 卡卢比
蜀ICP备17002589号
|
聊原理滔滔不绝,写代码风生水起 —

Hosted by Coding Pages