<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[huming720的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/huming720</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; huming720]]></copyright><item><title><![CDATA[ElasticSearch安装]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/117572347</link><guid>https://blog.youkuaiyun.com/huming720/article/details/117572347</guid><author>huming720</author><pubDate>Sat, 05 Jun 2021 19:52:51 +0800</pubDate><description><![CDATA[一、ElasticSearch安装
1.下载地址

https://www.elastic.co/cn/downloads/elasticsearch

2.解压到/data/program/es 目录下
tar -zxvf elasticsearch-7.13.1-linux-x86_64.tar.gz

3.进入解压后的目录
1).新建data目录
mkdir data

2).修改config/elasticsearch.yml：
vim config/elasticsearch.yml

clust]]></description><category></category></item><item><title><![CDATA[七大软件设计原则]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/114778075</link><guid>https://blog.youkuaiyun.com/huming720/article/details/114778075</guid><author>huming720</author><pubDate>Mon, 15 Mar 2021 11:31:53 +0800</pubDate><description><![CDATA[七大软件设计原则


开闭原则
对扩展开放，对修改关闭，面向抽象编程。强调的是用抽象构建框架，用实现拓展细节。可以提高软件系统的可复用性及可维护性，建立稳定灵活的系统。


依赖倒置原则
抽象应该不依赖细节，细节依赖抽象。面向抽象编程，不会面向实现编程。通过依赖倒置，可以减少类与类之间的耦合性，提高系统的稳定性，提高代码的可读性和可维护性，并能够降低修改程序所造成的风险。


public class DipTest {

    public static void main(String[] args)]]></description><category></category></item><item><title><![CDATA[Nacos单机、集群安装]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/110915496</link><guid>https://blog.youkuaiyun.com/huming720/article/details/110915496</guid><author>huming720</author><pubDate>Wed, 09 Dec 2020 09:09:30 +0800</pubDate><description><![CDATA[1.单机启动
下载解压后，直接执行下面命令单机启动，默认用户名密码为nacos/nacos
sh bin/startup.sh -m standalone

2.集群启动
节点：192.168.184.45:8848、192.168.184.46:8848、192.168.184.47:8848

修改集群配置文件

cd /data/program/nacos/conf
mv cluster.conf.example cluster.conf
vi cluster.conf


2. 编辑conf/app]]></description><category></category></item><item><title><![CDATA[Zookeeper服务安装]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/110915403</link><guid>https://blog.youkuaiyun.com/huming720/article/details/110915403</guid><author>huming720</author><pubDate>Wed, 09 Dec 2020 09:06:29 +0800</pubDate><description><![CDATA[1.单机启动

.下载解压后，处理配置文件

mv zoo_sample.cfg zoo.cfg	


bin目录下启动zk

sh zkServer.sh start


查看节点状态

sh zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /data/program/apache-zookeeper-3.6.2-bin/bin/../conf/zoo.cfg
Client port found: 2181. Clien]]></description><category></category></item><item><title><![CDATA[MySQL架构与执行流程（一）]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/110386762</link><guid>https://blog.youkuaiyun.com/huming720/article/details/110386762</guid><author>huming720</author><pubDate>Mon, 30 Nov 2020 19:17:10 +0800</pubDate><description><![CDATA[1.查询SQL是怎么执行的


客户端跟服务端建立连接，先进行身份认证（如账户、IP、密码是否正确），身份认证通过后，会从权限表中查出用户拥有的权限。
如果查询缓存配置状态开启，则先检查查询缓存，如果命中了缓存，并且验证用户权限满足，则直接返回缓存结果，否则进行下一阶段。
MySQL内部自带了一个缓存模块，默认关闭，不推荐使用，且在8.0彻底移除，主要是因为MySQL自带的缓存的应用场景有限。
分析器进行 “词法分析” 和 “语法分析” ，生成 “语法树” ，对语法规则校验通过后，再进行权限验证，权限满足后]]></description><category></category></item><item><title><![CDATA[Redis实战篇（四）]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/110186072</link><guid>https://blog.youkuaiyun.com/huming720/article/details/110186072</guid><author>huming720</author><pubDate>Fri, 27 Nov 2020 11:03:33 +0800</pubDate><description><![CDATA[1 Redis客户端
官网推荐的Java客户端有3个：Jedis，Lettuce和Redisson




配置
作用




Jedis
A blazingly small and sane redis java client（体积非常小，但功能很完善）


lettuce
Advanced Redis client for thread-safe sync, async, and reactive usage. Supports Cluster, Sentinel, Pipelining, and co]]></description><category></category></item><item><title><![CDATA[Redis分布式集群篇（三）]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/110110267</link><guid>https://blog.youkuaiyun.com/huming720/article/details/110110267</guid><author>huming720</author><pubDate>Thu, 26 Nov 2020 11:31:32 +0800</pubDate><description><![CDATA[1 为什么redis需要支持分布式？
1.1 为什么redis需要支持分布式？
1.1.1 性能
redis本身的QPS已经很高了，但是如果在一些并发量非常高的情况下，性能还是会受到影响。这个时候我们希望更多的redis来分摊压力，实现负载均衡。
1.1.2 高可用
第二个是可用性和安全的问题。如果只有一个redis服务，一旦服务宕机，那么所有的客户端都无法访问，会对业务造成很大的影响。另一个，如果硬件发生故障，而单机的数据无法恢复的话，带来的影响也是灾难性的。
1.1.3 可拓展
第三个是处于存储的考虑，]]></description><category></category></item><item><title><![CDATA[Redis高级功能（二）]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/109998950</link><guid>https://blog.youkuaiyun.com/huming720/article/details/109998950</guid><author>huming720</author><pubDate>Tue, 24 Nov 2020 20:04:54 +0800</pubDate><description><![CDATA[1.发布订阅模式
1.1列表的局限
前面我们说通过队列的rpush和blpop可以实现消息队列（队尾进队列出），没有任何元素可以弹出的时候，连接会被阻塞。
但是基于list实现的消息队列，不支持一对多的消息分发，相当于只有一个消费者。如果要实现一对多的消息分发，怎么办？
1.2发布订阅模式
除了通过list实现消息队列外，redis还提供了发布订阅的功能。


订阅频道
消息的生产者和消费者是不同的客户端，连接到同一个redis的服务。通过什么对象把生产者和消费者关联起来呢？在RabbitMQ里面叫做Que]]></description><category></category></item><item><title><![CDATA[Redis基础（一）]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/109889151</link><guid>https://blog.youkuaiyun.com/huming720/article/details/109889151</guid><author>huming720</author><pubDate>Mon, 23 Nov 2020 09:57:44 +0800</pubDate><description><![CDATA[1.Redis入门
为什么叫redis?
它的全称是Remote Dictionary Service，直接翻译过来是远程字段服务。
关系型数据库与非关系型数据库

关系型数据库的特点


它以表格的形式，基于行存储数据，是一个二维的模式。
它存储的是结构化的数据，数据存储有固定的模式（schema）,数据需要适应表结构。
表与表之间存在关联。
大部分关系型数据库都支持SQL（结构化查询语言）的操作，支持复杂的关联查询。
通过支持事务（ACID）来提供严格或者实时的数据一致性。


关系型数据库的一些限制
]]></description><category></category></item><item><title><![CDATA[redis安装]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/109688362</link><guid>https://blog.youkuaiyun.com/huming720/article/details/109688362</guid><author>huming720</author><pubDate>Sat, 14 Nov 2020 11:30:56 +0800</pubDate><description><![CDATA[一、redis单实例安装

下载安装

cd /data/program/redis
wget https://download.redis.io/releases/redis-6.0.9.tar.gz

tar -zxvf redis-6.0.9.tar.gz



安装gcc依赖
Redis是C语言编写的，编译需要GCC。
Redis6.x.x版本支持了多线程，需要gcc的版本大于4.9，但是CentOS7的默认版本是4.8.5。
查看gcc的版本：

gcc -v

#提示 -bash: gcc: c]]></description><category></category></item><item><title><![CDATA[kafka安装部署]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/109686644</link><guid>https://blog.youkuaiyun.com/huming720/article/details/109686644</guid><author>huming720</author><pubDate>Sat, 14 Nov 2020 09:40:04 +0800</pubDate><description><![CDATA[单机安装部署

下载安装

cd /data/program
wget https://mirror.bit.edu.cn/apache/kafka/2.6.0/kafka_2.13-2.6.0.tgz
tar -xzvf kafka_2.13-2.6.0.tgz
cd kafka_2.13-2.5.0

2.启动zookeeper
kafka需要依赖ZK，安装包中已经自带了一个ZK，也可以改成指定已运行的ZK。
如果改成指定的ZK需要修改修改 kafka 安装目录下的 config/server.prop]]></description><category></category></item><item><title><![CDATA[HAProxy+keepalived高可用集群]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/109591632</link><guid>https://blog.youkuaiyun.com/huming720/article/details/109591632</guid><author>huming720</author><pubDate>Tue, 10 Nov 2020 09:54:19 +0800</pubDate><description><![CDATA[简介
haproxy是一个开源的，高性能的，负载均衡组件，借助haproxy可以快速，可靠的构建一个负载均衡集群。
优点如下：

可靠性和稳定性非常好，可以和硬件级的负载均衡F5相媲美。
最高可同时维护40000-50000个并发连接。
支持多种负载均衡算法，会话保持
支持连接拒绝，全透明代理并且有一个功能强大的服务器状态监控。

用haproxy构建的时候，比如后方代理两个http，如果haproxy宕机，后方的http正常运行也是瘫痪状态，这就造成了单点故障。
这个时候就需要keepalived了，ke]]></description><category></category></item><item><title><![CDATA[工作流flowable]]></title><link>https://blog.youkuaiyun.com/huming720/article/details/109519701</link><guid>https://blog.youkuaiyun.com/huming720/article/details/109519701</guid><author>huming720</author><pubDate>Thu, 05 Nov 2020 20:42:07 +0800</pubDate><description><![CDATA[常见工作流框架
SELECT entity.* from ACT_RU_IDENTITYLINK entity
LEFT JOIN ACT_RU_TASK task on entity.TASK_ID_=task.ID_
where task.PROC_INST_ID_ = 'd23f0750-1f2c-11eb-963b-04d4c4aaba78'

Flowable条件表达式、排他网关、并行网关

1.条件表达式

使用流程变量，设置连线需要的流程变量名称及条件info==‘重要’，{info==‘重要]]></description><category></category></item></channel></rss>