摘要: 源码读了很多次,总有些地方记得不清楚,每次用到的时候总是要从根目录找下去,这篇文章主要使用层级结构记录spring中主要类以及使用的具体位置,方便查找与理解 一、Spring 源码流程的整体过程 obtainFreshBeanFactory-> beanDefinitionReader, docum 阅读全文
posted @ 2020-12-17 18:03 码来 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 一、修改配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33 二、改后的内容 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no #BOOTPROTO=dhcp BOOTPROTO=static DEFROUTE= 阅读全文
posted @ 2020-12-17 17:57 码来 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 因为克隆以后每个系统使用的Mac地址是一样的,导致都不能上网 一、解决落网不通的问题: 1 重新生成Mac地址 2、在网络配置中添加生成的MAC地址,并修改UUID参数使其唯一 vim /etc/sysconfig/network-scripts/ifcfg-ens35 HWADDR=00:50:5 阅读全文
posted @ 2020-12-17 17:55 码来 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: 原理:执行SQL的时候会拿到数据源,AbstractRoutingDataSource类系统预留了接口,可以根据需求来拿到对应的数据源。 一、配置多数据源 @Configuration public class DataSourceProxyConfig { @Bean("originOrder") 阅读全文
posted @ 2020-12-17 17:52 码来 阅读(4118) 评论(0) 推荐(0) 编辑
摘要: 分布式事务简介直接引用别人的文章吧,这样的文章太多了: https://www.codenong.com/cs105728924/ 官网:http://seata.io/zh-cn/ 官网下载源码和安装文件 修改配置文件file.conf 服务端部署 客户端应用集成 seata源码启动-版本1.2. 阅读全文
posted @ 2020-12-17 17:50 码来 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 一、镜像拉取 docker pull rabbitmq:3.8.9-management-alpine 二、启动镜像 docker run -d --name rabbitmq --privileged=true --restart always -p 5672:5672 -p 15672:1567 阅读全文
posted @ 2020-12-17 17:45 码来 阅读(211) 评论(0) 推荐(0) 编辑
摘要: Config配置文件中,生产者和消费者都自己声明下需要的exchange和queue,否则如果服务器没有创建对应的信息,则自己启动会报错。 一、生产者属性文件配置 spring: rabbitmq: host: 192.168.112.131 port: 5672 username: admin p 阅读全文
posted @ 2020-12-17 17:43 码来 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 一、生产者 创建ConnectionFactory工厂(地址、用户名、密码、vhost) 创建Connection 创建信道(Channel) 创建 exchange(指定 名称、类型-DIRECT("direct"), FANOUT("fanout"), TOPIC("topic"), HEADE 阅读全文
posted @ 2020-12-17 17:38 码来 阅读(1600) 评论(0) 推荐(0) 编辑
摘要: 一、思路 服务方启动则将自己注册到zk上,临时节点,节点数据为IP和端口信息 客户端添加监听器,监听节点变化,每次变化更新本地服务列表 服务端有问题,则自动摘除节点,依靠临时节点实现 二、注册方实现 1)添加节点监听器 public class ServiceRegister { private s 阅读全文
posted @ 2020-12-17 16:54 码来 阅读(818) 评论(0) 推荐(0) 编辑
摘要: 一、主要需要解决的问题 1、加锁 创建临时带有顺序的节点,如果是第一个则,获取锁成功 2、解锁 删除自己创建的临时节点 3、死锁问题 临时节点,如果客户端down机了,则节点监听自动删除 4、锁等待与唤醒 每个等待的线程等待上一个节点删除,一旦删除,则自己被唤醒去获取锁 使用模板设计模式进行处理 二 阅读全文
posted @ 2020-12-17 16:52 码来 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 一、基本介绍 1 、PERSISTENT (0, false, false), 持久节点:节点创建后,会一直存在,不会因客户端会话失效而删除; 2、PERSISTENT_SEQUENTIAL (2, false, true), 持久顺序节点:基本特性与持久节点一致,创建节点的过程中,zookeepe 阅读全文
posted @ 2020-12-17 16:50 码来 阅读(1448) 评论(0) 推荐(0) 编辑
摘要: 一、 安装单节点 原则:数据目录,配置文件,日志目录需要挂载到宿主机上 创建目录存放挂在配置文件、日志、数据的目录 /root/zookeeper/zk1/conf /root/zookeeper/zk1/data /root/zookeeper/zk1/log 2. 添加配置文件 clientPo 阅读全文
posted @ 2020-12-17 16:01 码来 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 一、官网地址 https://github.com/redisson/redisson/wiki 二、整合配置 redisson 有些版本配置可能出现bug,开始用的3.13.6版本,哨兵配置一直报错 redisson 有些版本配置可能出现bug,开始用的3.13.6版本,哨兵配置一直报错 <dep 阅读全文
posted @ 2020-12-17 15:59 码来 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 主要测试下容器的主从如何搭建,主要使用一台虚拟机,部署三个容器,构成主从结构 一、部署的结构: 主:172.17.0.2 6379->6379 从1:映射端口 6380 -> 6379 从2:映射端口 6381 -> 6379 二、拉取Redis容器镜像 docker pull redis 三、下载 阅读全文
posted @ 2020-12-17 14:54 码来 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 一、分布式锁使用场景 单机系统的时候,当处理临界资源的时候需要使用synchronized来锁住资源,以免并发导致临界资源异常。 在分布式系统中,使用单机的锁已经不能控制临界资源了,这个时候就需要跨系统来控制临界资源,那控制的标识位放到哪里呢?可以是缓存redis,也可以是ZK。 直白的将,单机需要 阅读全文
posted @ 2020-12-17 14:47 码来 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 一、为什么使用Lua脚本 为了一次通信执行多个Redis命令,我们可以用pipline ,但是多个命令间没有逻辑联系 。 Lua脚本可以一次通信执行多个Redis命令,而且内部可以写自己的逻辑,整个脚本执行是原子性的。 二、命令行调用Lua脚本 EVAL script numkeys key [ke 阅读全文
posted @ 2020-12-17 14:44 码来 阅读(1683) 评论(0) 推荐(0) 编辑