【RocketMQ学习1-1】RocketMQ核心基础概念 一、为什么要使用消息中间件(RocketMQ)1.1 应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者 因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验 。使用消息中间件,系统的耦合性就会降低。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队 列中,用户的下单操作正常完成。当物流系统恢复后,继续处理存放在消息队列中的订单消息即可,终端系统感知不到物流
【Spring学习-2-1】底层架构核心概念-BeanDefinition 一、BeanDefinition含义(理解描述)BeanDefinition表示Spring容器中Bean的定义,在BeanDefinition类中存在很多属性用来描述一个Bean的定义。注释:Spring容器中Bean的定义,就是通过xml配置、扫描注解把需要纳入到Spring容器中的类,通过BeanDefinition来定义。二、BeanDefinition类中属性:beanClass,表示Bean类型scope,表示Bean作用域,单例或原型等lazyInit:表示Bean是否是懒加载i
SpringCloud2000.0.1 使用利用rabbitmq和WebHooks实现Config Client客户端与Config Server服务端的配置自动刷新(包括遇坑) SpringCloud2000.0.1 使用利用rabbitmq和WebHooks实现Config Client客户端与Config Server服务端的配置自动刷新(包括遇坑)零、版本SpringCloud2000.0.1一、依赖服务端依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spri
SpringCloud2000-Config客户端获取不到服务端的配置文件,Bootstrap上下文默认不再启动 SpringCloud2000-Config客户端获取不到服务端的配置文件,Bootstrap上下文默认不再启动希望大家看到最后呀!版本 Spring Boot:2.4.3版本 Spring Cloud:2020.0.1查了解决方案无效,c+v的文章很坑一、先说解决方案:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sta
EnableFeignClients微服务拆解后,引入其他微服务FeignClient客户端@Autowired注入不了的问题 EnableFeignClients微服务拆解后,客户端@Autowired注入不了的问题在微服务拆解后,Feign的接口类jar是在product项目中这边是引用了依赖,然后无法注入最后发现是因为,引入依赖后,启动类加注解默认扫描的是当前项目包所以要指定扫描包,然后就不报错啦版权声明:作者:十下链接:https://blog.edkso.cn/?p=986来源:十下博客文章版权归作者所有,未经允许请勿转载。...
spring-cloud-config配置仓库分支/客户端找不到eureka以及服务端,遇到的坑(看这一文就够了) spring-cloud-config配置仓库分支,遇到的坑(看这一文就够了)说明一下,整个统一配置中心的流程,请查阅百度即可我这里就不做搬运的工作了,节省时间,这个文章就可以https://www.jianshu.com/p/de8f8c3e2266?from=groupmessage&isappinstalled=0我查了很多文章,给我的结果都用不成,都是复制的别人的文章,于是我在官网查了,一下就成功了。label可以配置仓库的分支这是配置:spring: cloud:
Docker 入门级-架构介绍与实战 Docker 入门级-架构介绍与实战解决如下问题:docker的架构介绍和基本使用如何制作镜像?如何分享镜像?如何持久化容器的数据?如何编排一个多容器的应用?Mac下docker的安装从www.docker.com下载适合系统的dmg文件拖拽安装即可。docker架构介绍守护进程负责来与镜像,仓库和容器进行交流:docker的一些常用方法:1. 运行daocloud.io/nginx,由80端口映射在本地8080端口上:docker run -p 8080:80 -d d
一个线程调用两次start()会发生什么?线程池是如何实现线程复用的? 一个线程调用两次start()会发生什么?线程池是如何实现线程复用的?一、我们顺便先认识一下run()方法和start()方法的区别首先demo眼见为实:/** * 描述: 对比start和run两种启动线程的方式 */public class StartAndRunMethod { public static void main(String[] args) { Runnable runnable = () -> { Syste
有多少种实现多线程的方式?(看完一定有全新的收获) 有多少种实现多线程的方式?一、 从不同的角度看,会有不同的答案。网络上查到的,答案不一,他们的回答不能算错。下面我们正式进入 我对有多少种实现多线程的方式的理解吧首先我们看一下oracle的java 有多少种实现多线程的方式:我们从官方文档中可以看出,创建Java线程的方式有两种,分别是继承Thread类和实现Runnable接口创建线程一、继承Thread类和实现Runnable接口创建线程1.1 代码demo我把demo的代码贴出来,一看就能懂啦!/** * 描述: 用Th
我对static/final关键字的理解(一个类不同的对象,static修饰的变量,在一个对象中被改变了,对其他对象有无影响?) 我对static/final关键字的理解一、static关键字1.1 static关键字可以修饰的static关键字可以修饰成员变量、成员方法、初始化块、内部类,被static修饰的成员是类的成员,它属于类、不属于单个对象。以下是static修饰这4种成员时表现出的特征:1.1.1 类变量:被static修饰的成员变量叫类变量(静态变量)。类变量属于类,它随类的信息存储在方法区,并不随对象存储在堆中,类变量可以通过类名来访问,也可以通过对象名来访问,但建议通过类名访问它。1.1.2 类方法:被st
JVM的类加载器和双亲委派模型(详解,包理解) JVM双亲委派模型本文有十下亲自书写,资料源自网络,内容由自己的总结和理解产生,禁止搬运!一、先谈类加载器什么是类加载器Java虚拟机设计团队有意把类加载阶段中的“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需的类。实现这个动作的代码被称为“类加载器”(Class Loader)。类加载器有一下几种:(我们将在双亲委派模型中讲解这些类加载器的关系)二、JVM的类加载器和双亲委派模型通俗一点说,类加载器的关系(架构)
list集合 add(int index, E element) 方法的妙用 list集合 add(int index, E element) 方法的妙用方法解释和妙用技巧add(int index, E element)将指定的元素插入此列表中的指定位置(可选操作)。 将当前在该位置的元素(如果有)和任何后续元素右移(将其索引添加一个)。参数:index-要插入指定元素的索引element–要插入的元素当你插入的元素的位置已经有元素的话,会将此位置已经存在的和后面的全部往后移动如果你需要将数据每次插入到最前面,那么就可以add(0,element);算法题举例
一文读懂三次握手与四次挥手(认真看包会) 一文读懂三次握手与四次挥手三次握手四次挥手序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。确认ACK:占1位,仅当A
一张图解决并发并行(包理解) 一张图解决并发并行并行并发理解(非官方概念):「并行」强调的是可以一起执行「并发」强调的是可以一起出发注:在图中的最小粒度为进程(此图不做到最详细,做到最容易理解)版权声明:作者:十下链接:https://blog.edkso.cn/?p=760来源:十下博客文章版权归作者所有,未经允许请勿转载。...
集群查看所有进程/命令同步脚本 集群查看所有进程/命令同步脚本在/home/shixia/bin目录下创建脚本xcall vim xcall在脚本中编写如下内容 #! /bin/bash for i in hadoop102 hadoop103 hadoop104 do echo --------- $i ---------- ssh $i "$*" done修改脚本执行权限chmod 777 xcall4)启动脚本xcall jps版权声明:作者:十下链接:http://blog
Java-linux jar命令详解 一、说明1:java -classpath 需要在jar包后面指定全类名;java -jar 需要查看一下解压的jar包META-INF/ MANIFEST.MF文件中,Main-Class是否有全类名。如果有可以用java -jar,如果没有就需要用到java -classpath二、说明2:&代表在后台运行。(否则在控制台输出)条件:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。例如:java -jar xxxxxx.jar &三、说明3:让窗口关闭时,程序
Zookeeper集群启动停止脚本 Zookeeper集群启动停止脚本在hadoop102的/usr/bin目录下创建脚本vim zk.sh在脚本中编写如下内容: #!/bin/bash case $1 in "start"){ for i in hadoop102 hadoop103 hadoop104 do echo "------------- $i -------------" ssh $i "/opt/module/zookeeper/bin/zkServe
Zookeeper分布式安装部署以及启动 Zookeeper分布式安装部署以及启动zookeeper-3.5.7(安装包自行下载)我的搭建仅供我自己本地测试(仅供参考)此次集群没有配置环境变量(会写启动群起脚本)一、集群规划在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。二、安装解压Zookeeper安装包到/opt/module/目录下tar -zxvf zookeeper-3.5.7.tar.gz -C /opt/module/修改/opt/module/apache-zo