- 博客(32)
- 收藏
- 关注
原创 深入理解Kafka核心设计与实践原理_03
消费者并非逻辑上的概念,它是实际的应用实例,它可以是一个线程,也可以是一个进程。Kafka 同时支持两种消息投递模式,而这正是得益于消费者与消费组模型的契合:· 如果所有的消费者都隶属于同一个消费组,那么所有的消息都会被均衡地投递给每一个消费者,即每条消息只会被一个消费者处理,这就相当于点对点模式的应用。如果消费者采用的是正则表达式的方式(subscribe(Pattern))订阅,在之后的过程中,如果有人又创建了新的主题,并且主题的名字与正则表达式相匹配,那么这个消费者就可以消费到新添加的主题中的消息。
2024-08-13 23:09:53 972
原创 23种设计模式
23种设计模式(原文来自微信公众号“跟着Mic学架构”,自己整理方便学习)1.单例模式(Singleton Pattern)2.工厂模式3.抽象工厂模式(Abstract Factory Pattern)4.模板方法模式(Template Method Pattern)5.建造者模式(Builder Pattern)**建造者模式与工厂模式的不同:**6.代理模式(Proxy Pattern)普通代理和强制代理:7.原型模式(Prototype Pattern)8.中介者模式问:为什么同事类要使用构造函数注
2021-11-17 15:10:41 640
原创 Singleton、局部变量与成员变量的区别
Singleton、局部变量与成员变量的区别Singleton什么是Singleton?要点几种常见形式代码实现2、局部变量与成员变量的区别Singleton什么是Singleton?Singleton:在Java中即指单例设计模式,它是软件开发中最常用的设计模式之一。单:唯一例:实例单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。例如:代表JVM运行环境的Runtime类要点一是某个类只能有一个实例;构造器私有化二是它必须自行创建这
2021-10-31 16:39:29 135
原创 5、Java中的锁
5、Java中的锁5.1 Lock接口5.2 队列同步器介绍Java并发包中与锁相关的API和组件,以及这些API和组件的使用方式和实现 细节。内容主要围绕两个方面:使用,实现5.1 Lock接口锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时 访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增 了Lock接口(以及相关实
2021-10-30 16:02:52 133
原创 03_Consul服务注册与发现、Ribbon负载均衡服务调用
03_Consul服务注册与发现、Ribbon负载均衡服务调用4、Consul服务注册与发现4.1 Consul简介4.1.1 是什么4.1.2 能干嘛4.1.3 去哪下4.1.4 怎么玩4.2 安装并运行Consul4.2.1 官网安装说明4.2.2 下载完成后只有一个consul.exe文件,4.2.3 使用开发模式启动4.3 服务提供者4.4 服务消费者4.5 三个注册中心异同点4.5.1 CAP4.5.2 经典CAP图5、Ribbon负载均衡服务调用![在这里插入图片描述](https://img
2021-10-22 18:35:01 696
原创 尚硅谷周阳_SpringCloud第二季脑图
尚硅谷周阳_SpringCloud第二季脑图01_组件说明、架构构建02_Eureka服务注册与发现、Zookeeper服务注册与发现这是尚硅谷周阳_SpringCloud第二季脑图内容的博客形式,便于没有MindManager 的同学可以查看,力争做到细致[持续更新中…]01_组件说明、架构构建01_组件说明、架构构建https://blog.csdn.net/qq_46461364/article/details/12085294302_Eureka服务注册与发现、Zookeeper服务注册与
2021-10-20 16:29:00 917
原创 4、Java 并发编程基础
4、Java 并发编程基础4.1 线程简介什么是线程为什么要使用多线程线程优先级线程的状态Daemon线程4.2 启动和终止线程构造线程启动线程理解中断过期的suspend()、resume()和stop()安全地终止线程4.3 线程间通信volatile和synchronized关键字等待/通知机制等待/通知的经典范式管道输入/输出流Thread.join()的使用ThreadLocal的使用4.4 线程应用实例等待超时模式连接池线程池技术及其示例线程作为操作系统调度的最小单元,多个线程能够同时执行,这
2021-10-20 14:53:32 113
原创 02_Eureka服务注册与发现、Zookeeper服务注册与发现
02_Eureka服务注册与发现3、Eureka服务注册与发现3.1 Eureka基础知识3.1.1 什么是服务治理3.1.2 什么是服务注册3.1.3 Eureka两组件3.2 单机Eureka构建步骤3.2.1 IDEA生成eurekaServer 端服务注册中心3、Eureka服务注册与发现整体脑图结构3.1 Eureka基础知识3.1.1 什么是服务治理什么是服务治理Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理在传统的r
2021-10-20 13:41:52 684
原创 01_组件说明、架构构建
01_组件说明、架构构建1、关于Cloud各种组件的停更/升级/替换2、微服务架构编码构建2.1 约定 > 配置 > 编码2.2 IDEA新建project工作空间2.2.1 微服务cloud整体聚合父工程Project2.2.2 父工程POM2.2.3 Maven工程落地细节复习2.3 Rest微服务工程构建2.3.1 构建步骤2.3.2 目前工程样图这是SpringCloud和SpringCloud alibaba脑图内容的MarkDown 格式,便于自己查阅笔记内容主要是脑图的结构,
2021-10-19 21:33:19 550
原创 3、Java 内存模型
3、Java 内存模型 3.1 Java 内存模型的基础3.2 重排序3.3 顺序一致性3.4 volatile 的内存定义3.5 锁的内存语义3.1 Java 内存模型的基础并发编程模型在命令式编程 中,线程之间的通信机制有两种:共享内存和消息传递共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态 进行隐式通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过发送消 息来显式进行通信同步是指程序中用于控制不同线程间操作发生相对顺序的机制。在共享内存并发模
2021-10-14 21:50:46 383 1
原创 2、Java并发机制的底层实现原理
2、Java并发机制的底层实现原理2.1 volatile的应用2.2 synchronized 的实现和原理Java 代码在编译后会变成Java 字节码,字节码被类加载器加载到JVM 里,JVM 执行字节 码,最终需要转化为汇编指令在CPU 上执行,Java中所使用的并发机制依赖于JVM 的实现和CPU 的指令。2.1 volatile的应用2.2 synchronized 的实现和原理...
2021-10-10 16:17:48 132
原创 1、并发编程的挑战
1、并发编程的挑战1.1 上下文切换问: 如何减少上下文的切换?1.2 死锁问:避免死锁的常见方法1.3 资源限制的挑战1.4 内容小结并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最 大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会 面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制 问题,本章会介绍几种并发编程的挑战以及解决方案。1.1 上下文切换CPU通过给每个线程分配CPU时间片来实现单核处理器也支
2021-10-10 10:42:39 109
原创 数据结构与算法_03队列
数据结构与算法_03队列队列0、章节重点整理1、认识队列1.1、 队列的工作运算1.2、队列的数组实现1.3、队列的链表实现2、队列的应用2.1、环形队列2.2、双向队列队列0、章节重点整理队列和堆栈都是有序表,抽象型数据类型,所有的加入删除都在不同的两端,符合FIFO特性何为多重队列?定义及目的双向队列就是一种二重队列。只是队列的首端可在队列的左右两端。多重队列的原则是只要遵循数据的插入在rear 端,删除在front 端的原则,并将多重堆栈的T(i) 改成rear(i)、B(i) 改成fro
2021-09-23 16:16:28 118
原创 数据结构与算法_02堆栈
数据结构与算法_02堆栈堆栈0、章节重点整理1、堆栈的数组实现2、堆栈的链表实现3、堆栈的应用汉诺塔问题堆栈0、章节重点整理1、堆栈的数组实现 public class StackByArray { /** * 用数组模拟堆栈并实现方法 */ private int[] stack; private int top; public StackByArray(int stackSize) { stack = new
2021-09-11 16:58:17 325 2
原创 数据结构与算法_01链表
数据结构与算法_01链表链表1、单向链表单向链表的尾插法单向链表的结点删除单向链表的结点插入链表的反转单向链表的串联2、环形链表环形链表的结点插入环形链表的节点删除3、双向链表双向链表的节点插入链表1、单向链表单向链表的尾插法//尾插法,只在尾部last插入数据 public void insert(int data, String name, int np){ Node node = new Node(data, np, name); if(this.isE
2021-09-08 21:50:17 124
原创 SpringBoot 集成其他框架示例
SpringBoot 集成其他框架示例接口工程 01-springboot-dubbo-ssm-interface实体类model 包中Student服务service包中的服务接口StudentService服务提供者 02-springboot-dubbo-ssm-providermapper 层service层下的Impl实现类StudentServiceImplApplication主启动类resources资源pom文件服务消费者 03-springboot-dubbo-ssm-consumerc
2021-08-30 20:18:20 447
原创 SpringMVC 学习笔记
SpringMVC 学习笔记第一章 SpringMVC 概述1.1 SpringMVC 基本说明1.2 SpringMVC中的核心Servlet -- DispatcherServlet1.3 springmvc请求的处理过程1.4 复习1.5 web开发中配置文件的说明1.6 SpringMVC内部的执行流程第二章 SpringMVC 注解式开发2.1 @RequestMapping注解的使用。2.2 接收请求中的参数2.2.1 逐个接收2.2.2 CharacterEncodingFilter使用:2
2021-08-26 16:48:00 712
原创 Nginx 学习笔记
Nginx第1章 Nginx 简介1.1 Nginx 概述1.2 Nginx 作为 web 服务器1.3 正向代理1.4 反向代理1.5 负载均衡1.6 动静分离第2章 Nginx 安装进入 nginx 官网,下载第 3 章 nginx 常用的命令和配置文件3.1 nginx 常用的命令:3.2 nginx.conf 配置文件第4章 反向代理实例第5章 负载均衡5.1负载均衡概述5.2负载均衡实现方式5.2.1硬件负载均衡5.2.2软件负载均衡5.2.3Nginx负载均衡5.3Nginx常用负载均衡策略5
2021-08-11 15:25:42 121 1
原创 Spring 学习笔记
Spring 学习笔记第一章 Spring 概述1.1. 什么是spring1.2 spring的地址1.3 Spring优点第二章 IoC 控制反转2.1 IoC 概念2.2 Spring的配置文件2.3 spring容器创建对象的特点2.4 DI:给属性赋值。2.4.1 基于xml的DI2.4.2 基于注解的DI2.5 IoC 总结第三章 AOP 面向切面编程3.1 增加功能,导致的问题3.2 AOP 概念3.1 什么是AOP3.2 AOP作用3.3 AOP中术语3.4 什么时候你想用AOP3.5
2021-08-10 00:31:26 970
原创 TCP IP基础知识01
TCP/IP入门01知识准备01 TCP IP摘要02通信服务与协议知识准备1、网络是什么:·信息及劳动力等各种形式的资产互相可交换的状态;·在计算机网络中,为保证数据在计算机之间顺利地交换,需要制定相应的规则。2、计算机网络:·根据规模分为LAN(lang)局域网,WAN(wang)广域网,英特网(多个LAN WAN连接起来的全球规模的网络)。3、通信协议是什么:·机器之间通信时,其交流是在一些协议的基础上建立的。而TCP/IP是当代以英特网为主的网络中最常用的协议群。4、TCP/I
2021-08-05 13:47:00 1086
原创 Redis(01)
Redis(01)Redis的基本命令Redis 默认为 16 个库 (在 redis.conf 文件可配置,该文件很重要,后续很多操作都是这个配置文件) redis 默认自动使用 0 号库沟通命令 沟通命令输入 ping,redis 给我们返回 PONG,表示 redis 服务运行正常查看当前数据库中 key 的数目:dbsize语法:dbsize作用:返回当前数据库的 key 的数量。返回值:数字,key 的数量redis 默认 默认用 使用 16 个 Redis 默认使用 16
2021-08-05 13:46:51 131
原创 SpringBoot 底层注解
SpringBoot 底层注解1、组件添加1.1 @Configuration1.2@Bean、@Component、@Controller、@Service、@Repository1.3@ComponentScan、@Import1.4@Conditional2原生配置文件引入2.1@ImportResource3、配置绑定3.1@Component +@EnableConfigurationProperties+ @ConfigurationProperties4、自动配置原理入门4.1@SpringB
2021-08-04 23:13:33 422
原创 MyBatis学习笔记
MyBatis学习笔记MyBatis 框架第一章 框架的概述1.三层架构2. 三层架构请求的处理流程3. 为什么要使用三层?4. 三层架构模式和框架5 .框架6. 框架解决的问题7. jdbc访问数据库的优缺点8 MyBatis框架第二章 MyBatis入门2.1 第一个例子2.2 概念2.3 MyBatis的一些重要对象2.4 使用工具类和模版第三章 MyBatis的Dao代理3.1 dao代理3.1.1 mybatis提供代理:3.1.2 使用mybatis代理要求3.1.3 mybatis代理实
2021-07-27 15:04:01 911
原创 Maven自动化构建工具(01)
Maven自动化构建工具1、Maven简介2、Maven 的 核心1、Maven简介1.1传统项目开发存在的问题一个项目做成一个工程,造成工程比较庞大,需要使用多模块来划分项目;项目中需要的数量众多的 jar包,需要手动下载并引入,并且多个项目需要的 jar 包存在重复的问题;项目中需要的 jar 包有版本兼容的问题,需要手动解决;项目中需要的 jar 包又依赖其它的 jar 包,需要手动解决。1.2 Maven 概述Maven 是 Apache 软件基金会组织维护的一款自动化构建工具
2021-07-10 18:27:31 175
原创 TCPIP基础入门01
**基础知识储备**1、网络是什么:·信息及劳动力等各种形式的资产互相可交换的状态;·在计算机网络中,为保证数据在计算机之间顺利地交换,需要制定相应的规则。2、计算机网络:·根据规模分为LAN(lang)局域网,WAN(wang)广域网,英特网(多个LAN WAN连接起来的全球规模的网络)。3、通信协议是什么:·机器之间通信时,其交流是在一些协议的基础上建立的。而TCP/IP是当代以英特网为主的网络中最常用的协议群。4、TCP/IP的诞生:·数据转换为信号–>传送–>信
2021-07-10 17:49:25 433
原创 Redis(01)
Redis(01)Redis的基本命令Redis 默认为 16 个库 (在 redis.conf 文件可配置,该文件很重要,后续很多操作都是这个配置文件) redis 默认自动使用 0 号库沟通命令 沟通命令输入 ping,redis 给我们返回 PONG,表示 redis 服务运行正常查看当前数据库中 key 的数目:dbsize语法:dbsize作用:返回当前数据库的 key 的数量。返回值:数字,key 的数量redis 默认 默认用 使用 16 个 Redis 默认使用 16
2021-07-10 17:34:33 63
原创 内部排序法的代码实现
内部排序法的代码实现冒泡排序冒泡排序增强堆积排序法插入排序法快速排序法基数排序法选择排序法希尔排序法冒泡排序 * 冒泡排序需要比较 n(n-1)/2次,时间复杂度O(n^2) * 稳定排序 * 只需额外一个空间,空间复杂度最佳 * 适用于数据量小或有部分数据已经排过序的情况 * * 不管数据是否已经完成排序都要执行 n(n-1)/2次public class BubbleSort { public static void main(S
2021-07-10 17:33:25 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人