- 博客(19)
- 收藏
- 关注
原创 Logstatsh数据同步
LogstashLogstash是elastic技术栈中的一个技术。它是一个数据采集引擎,可以从数据库采集数据到es中。我们可以通过设置自增id主键或者时间来控制数据的自动同步,这个id或者时间就是用于给logstash进行识别的id:假设现在有1000条数据,Logstatsh识别后会进行一次同步,同步完会记录这个id为1000,以后数据库新增数据,那么id会一直累加,Logstatsh会有定时任务,发现有id大于1000了,则增量加入到es中 时间:同理,一开始同步1000条数据,每条数据都有
2020-06-30 17:39:24 404
原创 搭建Elasticsearch集群
前置操作当克隆以后,es中的data目录,一定要清空,这里面包含了原先的索引库数据。配置集群修改elasticsearch.yml这个配置文件如下:# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了cluster.name: imooc-es-cluster# 每一个节点的名称,必须不一样node.name: es-node1# http端口(使用默认即可)http.port: 9200# 主节点,作用主要是用于来管理整个集群,负责创建或删除索引,管理
2020-06-30 17:24:21 148
原创 全局表-子表
全局表如果数据量不大,就没必要进行分库,可以同步到所有的库<table name="province" dataNode="dn101,dn102" type="global"/>子表
2020-06-29 18:19:55 188
原创 取模分片
修改规则 <table name="user" dataNode="dn101,dn102" rule="mod-long" />修改rule.xml修改分片依赖的columns<tableRule name="mod-long"> <rule> <columns>user_id</columns> .
2020-06-29 16:12:02 243
原创 枚举分片
分片规则auto-sharding-long <table name="user" dataNode="dn101,dn102" rule="auto-sharding-long" />
2020-06-29 15:55:57 158
原创 软件安装
Mysql8.0官网下载mysql80-community-release-el7-3.noarch.rpm yum install mysql80-community-release-el7-3.noarch.rpm service mysqld start 查看密码:grep 'temporary password' /var/log/mysqld.log 修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123'; 创建用户:.
2020-06-29 15:22:27 106
原创 Mysql主从
主从配置主配置log-bin,指定文件的名字主配置server-id默认为1从配置server-id与主不能重复vim /etc/my.cnf主log-bin=imooc_mysqlserver-id=1从server-id=2
2020-06-29 15:22:23 56
原创 缓存穿透
一.缓存穿透:redis中没有数据,数据库中也没有数据,此时被非法用户进行攻击,大量的数据打在db上将传入的参数先对数据库进行查询,如果没有将空值作为一条数据存放在redis,可以设置一个过期时间 List<CategoryVO>subCatList = new ArrayList<>(); String catsStr = redisOperator.get("subCat:" + rootCatId); if(Stri...
2020-06-28 02:58:41 89
原创 主从复制(读写分离)
一·.架构(先全量复制后增量复制)磁盘化复制二.通常模式三.搭建(一个master,两个slave:只能读不能写)1.进入从节点的redis.conf文件配置,添加master的IP2.添加密码3.配置读操作,默认为yesim...
2020-06-28 02:55:04 142
原创 ConcurrentModificationException错误
一.问题:如果不加break会报ConcurrentModificationException异常1.第一种方法加break List<ShopcartBO> shopcartList = JsonUtils.jsonToList(shopcartJson, ShopcartBO.class); // 判断购物车中是否存在已有商品,如果有的话则删除 for (ShopcartBO sc: shopcartList) {
2020-06-28 02:49:17 149
原创 linux操作
“.” 代表当前文件夹下 cp /home/software/mysql-connector-java-5.1.41.jar . mkdir -p参数是能直接创建一个不存在的目录下的子目录
2020-06-28 02:48:19 77
原创 拦截器
1.项目创建interceptor包,添加 UserTokenInterceptor 类:编写一些拦截页面,和放行的规则public class UserTokenInterceptor implements HandlerInterceptor { @Autowired private RedisOperator redisOperator; public static final String REDIS_USER_TOKEN = "redis_user_token"...
2020-06-28 02:41:36 172
原创 DSL搜索
目录请求参数的查询(QueryString)DSL基本语法1.分页2.term精确搜索与match分词搜索4.terms 多个词语匹配检索5.match_phrase短语匹配6.match(operator)/ids7- multi_match/boost(权重)8.布尔查询:可以组合多重查询9.过滤器10.高亮highlight11.refix-fuzzy-wildcard12.深度分页13.scroll 滚动搜索14.批量查询mge...
2020-06-28 02:38:45 814
原创 数据结构
创建索引post:http://192.168.35.132:9200/my_doc/_doc/1body中的数据{ "id":1001, "name":"imooc-1", "desc":"imooc is very good, 慕课网非常牛", "crate_time":"2019-12-24"}result:{ "_index": "my_doc", "_type": "_doc", "_id": "1", ...
2020-06-28 01:52:18 282
原创 Rabbit可靠性消息投递
目录一.从架构角度分析消息可靠性投递二.一.从架构角度分析消息可靠性投递将数据插入到业务表中,同时将日志存入到MSGDB中(包含一个状态,初始值为0),二者保证原子性。并发量大的时候, 业务层将消息投递给MQ Broker Broker异步返回应答ack,Produce Component(监听组件)进行监听ack() Produce t监听到ack后,更新MSG DB表中数据,将0改为1 分布式定时任务系统定时查看MSG表中的数据是否为都为,将状态不是1的数据重新投递 如果MSG
2020-06-28 01:38:25 142
原创 分布式锁实现方案优缺点分析
分布式锁实现方案优缺点分析项目修改 :项目中用的是数据库分布式锁,但会造成大量数据堆积在数据库update这里,将压力分给业务层。 <update id="decreaseItemSpecStock"> update items_spec set stock = stock - #{pendingCounts} where id = #{specId}
2020-06-28 01:32:51 385
原创 基于数据库实现分布式锁
实现原理多个进程、多个线程访问共同组件数据库. 通过selec.....for update访问同一条数据 for update锁定数据,其他线程只能等待实现步骤此时只有一个操作可以对数据进行修改,而其他人不能够对该数据进行修改操作,但可以查看SELECT * FROM distribute_ lock WHERE business code='demo' FOR UPDATE;COMMIT;优缺点优点:简单方便、易于理解、易于操作缺点:并发量大时,对数据库压力较大...
2020-06-27 20:43:21 136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人