Consumer Group 是Kafka提供的可扩展且具有容错性的消费者机制。在组内多个消费者实例(Consumer Instance ),它们共享一个公共的ID即 Group ID 。组内的所有消费者协调在一起消费订阅主题(Subscribed Topics)的所有分区(Partition)。当然一个分区只能有同一个消费者组的一个Consumer 实例消费。 Consumer Group 有三个特性:
Consumer Group 下可以有一个或多个Consumer 实例。 这里的实例可以是一个单独的进程,也可以是同一进程下的线程;
Group ID 是一个字符串, 在Kafka集群中唯一标识,Consumer Group;
Consumer Group 下所有实例订阅主体的单个分区,只能分配给组内某个Consumer实例消费。同一个分区消息可能被多个Group 消费。
订阅主题数量发生变更。 Consumer Group 可以使用正则表达式订阅主题,比如 consumer.subscribe(Pattern.complile(“t.*c”))就表明该Group订阅所有t开头,字母c结尾的主题。在Consumer Group 运行时,新创建一个满足这样条件的主题,那么会触发订阅该主题所有Group 开始Rebalance。
你想想 CPU 、内存这些都是非常宝贵的资源, Java 虚拟机如果在重排序之后没啥效果,肯定也不会做这种费力不讨好的事情。
Java 虚拟机之所以要进行重排序就是为了提高程序的性能。你写的程序,简简单单一行代码,到底层可能需要使用不同的硬件,比如一个指令需要同时使用 CPU 和打印机设备,但是此时 CPU 的任务完成了,打印机的任务还没完成,这个时候怎么办呢? 不让 CPU 执行接下来的指令吗? CPU 的时间那么宝贵,你不让它工作,确定不是在浪费它的生命?
1.Precompile spring-oxm with ./gradlew :spring-oxm:compileTestJava 2.Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle) 3.When prompted exclude the spring-aspects module (or after the import via File-> Project Structure -> Modules) 4.Code away
# 快速拉取一个mysql的image ➜ ~ docker pull mysql/mysql-server Using default tag: latest latest: Pulling from mysql/mysql-server 501550cfd5c0: Pull complete e0509d775110: Pull complete d5a01765d011: Pull complete 970507e942eb: Pull complete Digest: sha256:0bb21c0f1aa9296e7deafacec5703b80e4d923dfdfcaa2efbe0c8377a8592128 Status: Downloaded newer image for mysql/mysql-server:latest docker.io/mysql/mysql-server:latest # 启动mysql容器 ➜ ~ docker run --name=mysql1 -d mysql/mysql-server:latest 780c312f6fa1d3b001cb7c97fddb7df39fea61f27732b5fb9b59d5a29b12cfde # 查看CONTAINER ➜ ~ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 780c312f6fa1 mysql/mysql-server:latest "/entrypoint.sh mysq…" 59 seconds ago Up 58 seconds (healthy) 3306/tcp, 33060-33061/tcp mysql1 # 查看默认的密码 ➜ ~ docker logs mysql1 2>&1 | grep GENERATED [Entrypoint] GENERATED ROOT PASSWORD: enohmYS*ecvISAqYh@GafRoDP3v # 直接登录进去 ➜ ~ docker exec -it mysql1 mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 17 Server version: 8.0.23
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # 修改一下容易记忆的密码,方便下次来使用 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Query OK, 0 rows affected (0.01 sec)