中间件

nginx集群
1正向代理(目标机不能直接访问)
2反向代理(目标机可以直接访问)
3.限流(漏斗,令牌捅)
4缓存
5负载均衡
6上传文件大小限制
7动静分离
8过滤
mq集群
集中mq对比:https://www.jianshu.com/p/0e1342ca4ef4
rockectMq 延迟队列(支持固定的等级) 支持事务,(重试超次数放入)死信队列,重试,消费确认
kafka 延迟队列(支持固定的等级),(重试超次数放入)死信队列,重试,消费确认,消息有序性,集群分区
rabbitmq 延迟队列(通过死信队列实现), 交换器,
(消息被拒绝(basic.reject / basic.nack),并且requeue = false消息TTL过期队列达到最大长度)死信,重试 ,消费确认
脑裂问题(节点之间不能连接,导致各自为政)
三种mq存储方式:
https://blog.csdn.net/H_L_S/article/details/106294998

redis集群https://www.cnblogs.com/williamjie/p/11132211.html
https://blog.csdn.net/yejingtao703/article/details/78484151
集群配置https://blog.csdn.net/jiangbb8686/article/details/98509040
redisson文档:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95
redis框架比较:
https://blog.csdn.net/jetty_welcome/article/details/104338173
https://blog.csdn.net/qq_42105629/article/details/102589319
spring-boot-starter-data-redis底层依赖 lettcue 一般lettcue和redisson结合使用。
https://www.cnblogs.com/benjieqiang/p/11475651.html
https://www.cnblogs.com/ifme/p/12301172.html
redis过期 删除数据由三种策略:1,立即删除,浪费cpu 2、过期不删除,下次访问时在删除 占用内存3定期清理过期数据,最优

mysql集群
监控工具

kafka 是以zookeeper为基础部署的,https://www.jianshu.com/c/0c9d83802b0c
应用场景https://blog.csdn.net/yuanlong122716/article/details/105160545/
borker 集群中kafka服务

      topic  主题,生成和消费都是针对主题进行的 
      分区  针对主题的,一个主题可以有多个分区,每个分区数据不同,生成者可以指定对应分区,如果不指定对应分区,系统就根据算法把消息放到某个分区上,分区主要解决消息分布的均衡性,每个分区有leader分区,和follow分区,leader分区供消费者消费,follow分区负责备份,follow分区和leader分区处于不同borker上,如果leader分区所在borker宕机,follow进行选举,选举出一个leader分区,对外提供服务。单个分区消息是有序的。分区和分区副本都可以进行参数设定,但是要小于borker数量。
      消费组group 同一个组中用户消费不同消息,不同组消费消息相同。
      生成确认机制:acks=0 表示生成者发送之后,就认为成功,acks=1 生产者发送消息,收到leader确认才算成功acks=all 收到leader和follow确认才算成功。
      消息删除:消息 被消费之后并没有删除,一般删除有两种策略,一种是设定消息过期时间,超过过期时间则删除。二种设置系统容量,超过最大容量的N%就删除早前的数据。还可以对topic设置过期时间。
      kafka可以进行 批量消息消费,事务控制
      消息过期策略

rabbtimq 四种模式:
fanout类型的Exchange路由规则非常简单,它会把所有发送到fanout Exchange的消息都会被转发到与该 Exchange 绑定(Binding)的所有Queue上。广播模式
direct类型的Exchange路由规则也很简单,它会把消息路由到那些binding key与routing key完全匹配的Queue中
topic类似direct 并支持模糊匹配
headers类型的Exchange不依赖于routing key与binding key的匹配规则来路由消息,而是根据发送的消息内容中的headers属性进行匹配。
支持消费确认,生成接收 自动确认确认之后删除消息,显示确认
拒绝消息,之后就不在接收。预取消息,设定预取消息为N,mq向消费者发送N个消息,在没有收到全部确认之前,不会再发送消息
死信队列
消息过期,方法一设置队列过期时间,方法二设置消息体过期时间,方法一旦消息过期,就会从队列中抹去,而在第二种方法中,即使消息过期,也不会马上从队列中抹去,因为每条消息是否过期是在即将投递到消费者之前判定的。

kafka是把消息发送到指定topic ,消费者消费topic内容
rabbitmq是把消息通过路由key发送到exchange,exchange根据路由key和队列绑定,消费者消费队列。

elasticsearch:
http://blog.itpub.net/29715045/viewspace-2653369/
https://www.jianshu.com/p/1fbfde2aefa5
https://www.cnblogs.com/pypua/articles/9459941.html
https://blog.csdn.net/weixin_38399962/category_9368247.html
索引(indices)-------------------Databases 数据库
类型(type)----------------------Table 数据表
文档(Document)---------------Row 行
字段(Field)---------------------Columns 列
solr
core ----database表
field 字段

详细说明:

概念 说明
索引库(indices) indices是index的复数,代表许多的索引,
类型(type) 类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会移除这个概念
文档(document) 存入索引库原始的数据。比如每一条商品信息,就是一个文档
字段(field) 文档中的属性
映射配置(mappings) 字段的数据类型、属性、是否索引、是否存储等特性

elasticsearch 直接解压直接执行bin下 ,默认端口是9300
如果需要中文,则需要下载中文分词插件 elasticsearch-analysis-ik
在此文件夹下创建analysis-ik,把下载analysis-ik中文分词tar包,解压到此文件夹下就行,注意,analysis-ik必须和es的版本一致,否则会报错,然后重启es就行了

做es,首先需要建立,索引,创建mapping,mapping中对应字段设置index:true,表示可以被搜索否则不参与搜索,
对于中文可以设置中文分词
{
“mappings”: {

  "properties": {
    "name": {
      "type": "text",
      "index":true ,
       "analyzer": "ik_smart",
      "search_analyzer": "ik_smart"
    },
     "age": {
      "type": "text",
      "index":false 
    }
  
}

}
}

搜索时可以是用RestHighLevelClient 官方推荐客户端
GetIndexRequest //查询index请求
CreateIndexRequest//创建index请求
IndexRequest//使用index请求,插入单个doument使用
BulkRequest//批量插入请求
SearchRequest//搜索请求
详情参考https://www.cnblogs.com/pypua/articles/9459941.html

public void serachForIndex(String indexName,String serachStr) {
SearchRequest sr=new SearchRequest(indexName);
SearchSourceBuilder sb= new SearchSourceBuilder();//构建搜索条件
sb.query(QueryBuilders.boolQuery() //boolquery类似一个数组,可以把多个搜索条件放进去,must表示and
.should(QueryBuilders.matchQuery(“name”,“天至武汉”)//此处有多种查询方式,参考api
.analyzer(“ik_smart”)//对查询条件进行分词
)
);

	sr.source(sb);
	
	try {
		restHighLevelClient.search(sr, RequestOptions.DEFAULT);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值