- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 三、Kafka集群
高并发、高可用、动态扩展。主备数据架构、双活节点、灾备数据中心。如果是服务的地理范围过大也可以使不同的集群节点服务不同的区域,降低网络延迟。
2024-11-03 17:37:31 1152
原创 二、kafka生产与消费全流程
在上面的demo中,由于消息的key和value都是String类型的,就可以使用kafka.client提供的String序列化器,如果想要发送其他自定义类型的对象,可以手动编写一个序列化器和反序列化器,实现Serializer接口,将对象和byte数组互相转换即可。提交最后一次消费消息的偏移量,下一次消费就从上次提交的偏移量开始,如果一个新的消费者群组消费一个主题的消息,可以根据不同的配置来指定起始的偏移量。群组之间的消费是互不干扰的,比如群组A的消费者和群组B的消费者可以同时消费同一个分区的消息。
2024-09-26 18:00:52 1209
原创 一、Kafka入门
双十一秒杀、春节12306场景有流量洪峰,但是后端服务器短时间内无法处理大量请求,使用消息中间件可以缓存涌入进来的大量请求,后端服务慢慢消费这些请求,尽最大努力处理请求。在群组消费者群组场景下,每个分区的消息只能由一个消费者消费,但是一个消费者可以消费多个分区的消息。由于消费消息相对于生产消息很慢,可以增加分区去提高消费的并发度,从而平衡生产和消费的速度。进入kafka的bin目录,编写两个启动脚本,一个启动zookeeper,一个启动kafka。:比较依赖网络,网络的吞吐量对kafka集群的影响很大。
2024-09-24 16:51:03 932
原创 分布式框架 - ZooKeeper
是一个分布式程序的协调服务,是Hadoop和Hbase的重要组件。提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
2024-09-20 10:18:40 1127
原创 九、Redis 的实际使用与Redis的设计
在线上系统中,一定不会单纯的只部署一个Redis集群,而是使用Redis结合其他的多级缓存应用进行架构。使用多级缓存架构的优点就是可以使不同类型的数据分布在不同的应用中,比如redis的热点key可以存储到nginx本地缓存、服务集群的本地缓存,进而分散单应用的服务压力。
2024-09-13 18:59:26 980
原创 JavaSE 集合
调用空构造器时初始化 Object[] elementData 数组,长度为10;初始化 size 属性,值为0;当elementData 数组中的10个位置都有元素后,添加第11个元素时数组扩容;扩容长度为原数组的1.5倍;扩容逻辑是创建一个长度为 15 的数组,将旧数组的数据拷贝到新数组中。
2024-08-20 21:02:43 718
原创 JavaSE 反射
在java字节码文件(.class文件)中,存放了一个Class类的实例,通过这个实例,可以拿到字节码文件里面的信息:包括构造器、字段、方法等。
2024-08-20 09:29:33 260
原创 JavaSE 线程
如果未来的另一个线程调用了相同对象的notify()、notifyAll()方法,等待池中的线程就会被唤醒,可以重新进入锁池争抢该对象的锁;①、wait()和notify()方法,必须放在同步代码块/同步方法中才能生效(因为在同步的基础上进行线程的通信才是有效的)②、sleep()和wait()方法的区别是:sleep()不会放弃对锁的占有权,wait()会放弃对锁的占有权;-- 伴随线程:皇上 --> 驾崩 --> 妃子陪葬;-- 底层逻辑:相当于调度这个线程的时候,给他的时间是整块的,不是分片的;
2024-08-20 09:20:17 540
原创 七、Redis的高并发 & 高可用(集群)
由于Redis集群的性能消耗不低,难以维护,使用限制太多。所以一般情况下在生产环境单台Redis或者主从 + 哨兵可以应对数据缓存,就不会搭建Redis集群。原理都讲清楚了,接下来我们搭建一个Redis集群玩一玩吧。
2024-07-27 21:02:40 1201
原创 三、Redis高级特性和应用
RTT:往返时间,数据花在网络上的时间;将所有的指令组装成pipeline,减少RTT;节约网络开销做批量处理;都执行或者都不执行Redis的事务是弱事务不推荐使用Redis做事务只有语法错误的时候才会做回滚,非法操作不会做回滚本质是一个脚本语言,类似存储过程。
2024-07-22 17:50:06 1035
原创 Java SE 反射
在java字节码文件(.class文件)中,存放了一个Class类的实例,通过这个实例,可以拿到字节码文件里面的信息:包括构造器、字段、方法等;
2024-04-09 10:29:58 404
原创 Java SE 线程
System.out.println("生产者生产了" + this.getBrand() + "-----" + this.getName());System.out.println("生产者生产了" + this.getBrand() + "-----" + this.getName());-- 如果未来的另一个线程调用了相同对象的notify()、notifyAll()方法,等待池中的线程就会被唤醒,可以重新进入锁池争抢该对象的锁;注意是沿着wait方法之后;
2024-04-09 10:02:19 907
原创 NoSuchMethodError: ‘byte[] org.apache.poi.util.IOUtils.toByteArray(java.io.InputStream, int, int)‘
poi导出excel表提示方法不存在?new XSSFWorkBook报错?
2023-11-24 10:12:30 1668 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人