工具 版本
k8s 1.19
rabbitmq 3.7.8

rabbitmq镜像下载-CSDN
mq镜像下载位置
链接:https://pan.baidu.com/s/1tJ1xxfA174Kjj4CYcjFJ8w?pwd=cyr4
提取码:cyr4

1. 创建挂载使用的pv以及pvc

apiVersion: v1
kind: PersistentVolume
metadata:annotations:pv.kubernetes.io/bound-by-controller: "yes"finalizers:- kubernetes.io/pv-protectionlabels:cattle.io/creator: normanname: rabbit-cluster-pvaccessModes:- ReadWriteManycapacity:storage: 1TiclaimRef:apiVersion: v1kind: PersistentVolumeClaimname: rabbit-cluster-pvcnamespace: cloud-testresourceVersion: "304986615"nfs:path: /home/nfs/rabbit-clusterserver: 192.168.1.26persistentVolumeReclaimPolicy: RetainvolumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:annotations:pv.kubernetes.io/bind-completed: "yes"finalizers:- kubernetes.io/pvc-protectionlabels:cattle.io/creator: normanname: rabbit-cluster-pvcnamespace: cloud-testresourceVersion: "304986620"
spec:accessModes:- ReadWriteManyresources:requests:storage: 1TistorageClassName: ""volumeMode: FilesystemvolumeName: rabbit-cluster-pvc
status:accessModes:- ReadWriteManycapacity:storage: 1Tiphase: Bound

2. 创建对应的集群服务和无头服务

kind: Service
apiVersion: v1
metadata:labels:app: rabbitmq-clustername: rabbitmq-headlessnamespace: cloud-test
spec:clusterIP: Noneports:- name: rmqportport: 5672targetPort: 5672selector:app: rabbitmq-cluster---
kind: Service
apiVersion: v1
metadata:labels:app: rabbitmq-clustername: rabbitmq-clusternamespace: cloud-test
spec:ports:- name: httpport: 15672protocol: TCPtargetPort: 15672- name: rmqportport: 5672targetPort: 5672selector:app: rabbitmq-clustertype: ClusterIP

3. 创建rabbitmq需要的RBAC权限

apiVersion: v1
kind: ServiceAccount
metadata:name: rabbitmqnamespace: cloud-test
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: rabbitmqnamespace: cloud-test
rules:
- apiGroups: [""]resources: ["endpoints"]verbs: ["get"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: rabbitmqnamespace: cloud-test
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: rabbitmq
subjects:
- kind: ServiceAccountname: rabbitmqnamespace: cloud-test

4. 创建rabbitmq的configmap配置文件

apiVersion: v1
kind: ConfigMap
metadata:name: rabbitmq-cluster-confignamespace: cloud-testlabels:addonmanager.kubernetes.io/mode: Reconcile
data:enabled_plugins: |[rabbitmq_management,rabbitmq_peer_discovery_k8s,rabbitmq_delayed_message_exchange].rabbitmq.conf: |-default_user = mqadmin  ##账户default_pass = mqadmin  ##密码cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s  ##开启rabbit集群cluster_formation.k8s.host = kubernetes.default.svc.cluster.localcluster_formation.k8s.address_type = hostnamecluster_formation.node_cleanup.interval = 30cluster_formation.node_cleanup.only_log_warning = truecluster_partition_handling = autohealqueue_master_locator=min-mastersloopback_users.guest = false## cluster_formation.randomized_startup_delay_range.min = 0## cluster_formation.randomized_startup_delay_range.max = 2# 必须设置service_name,否则Pod无法正常启动,这里设置后可以不设置statefulset下env中的K8S_SERVICE_NAME变量#cluster_formation.k8s.service_name = rabbitmq-headless# default is rabbitmq-cluster's namespace# hostname_suffix  必须设置hostname_suffix,否则节点不能成为集群,注意修改rabbitmq为ns名称cluster_formation.k8s.hostname_suffix = .rabbitmq-headless.cloud-test.svc.cluster.local# 内存上限vm_memory_high_watermark.absolute = 512MB# 硬盘上限disk_free_limit.absolute = 100GB

5. 创建rabbitmq集群

apiVersion: apps/v1beta2
kind: StatefulSet
metadata:generation: 1labels:cattle.io/creator: normanapp: rabbitmq-clustername: rabbitmq-clusternamespace: cloud-test
spec:podManagementPolicy: OrderedReadyreplicas: 3revisionHistoryLimit: 10selector:matchLabels:app: rabbitmq-clusterserviceName: rabbitmq-headlesstemplate:metadata:labels:app: rabbitmq-clusterspec:containers:- env:- name: K8S_SERVICE_NAME    ##集群内部的无头服务value: rabbitmq-headless- name: MY_POD_NAME     ##容器名称valueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: MY_POD_NAMESPACE    ##命名空间valueFrom:fieldRef:apiVersion: v1fieldPath: metadata.namespace- name: K8S_HOSTNAME_SUFFIX      ##集群加入路径value: .$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local- name: RABBITMQ_ERLANG_COOKIEvalue: mycookie- name: RABBITMQ_NODENAME           ##节点名称value: rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local- name: RABBITMQ_USE_LONGNAMEvalue: "true"image: 192.168.0.14/project/kubernetes-rabbitmq-autocluster:3.7.8imagePullPolicy: AlwayslivenessProbe:exec:command:- rabbitmq-diagnostics- statusfailureThreshold: 3initialDelaySeconds: 160periodSeconds: 60successThreshold: 1timeoutSeconds: 15name: rabbitmq-clusterports:- containerPort: 15672name: 15672tcp00protocol: TCP- containerPort: 5672name: 5672tcp00protocol: TCPreadinessProbe:exec:command:- rabbitmq-diagnostics- statusfailureThreshold: 3initialDelaySeconds: 20periodSeconds: 60successThreshold: 1timeoutSeconds: 10resources: {}securityContext:capabilities: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /etc/rabbitmqname: config-volume- mountPath: /var/lib/rabbitmq/mnesianame: rabbitmq-datadnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}serviceAccount: rabbitmqserviceAccountName: rabbitmqterminationGracePeriodSeconds: 10volumes:- configMap:defaultMode: 420items:- key: rabbitmq.confpath: rabbitmq.conf     ##mq配置- key: enabled_pluginspath: enabled_plugins    ##插件name: rabbitmq-cluster-config   ##configmapname: config-volume- name: rabbitmq-datapersistentVolumeClaim:claimName: rabbit-cluster-pvc  ##pvcupdateStrategy:type: OnDelete

6. 检查rabbitmq集群

注意!!!
如果这个过程会有点长,耐心等待几分钟,如果长时间没有加入集群,请删除后重新部署 rabbitmq的有状态服务
6.1 通过查看日志确认有没有加入集群

kubectl logs rabbitmq-cluster-0 -n cloud-test
I1112 15:00:22.372930   19510 http.go:113] HTTP2 has been explicitly disabled
2022-11-12 06:15:00.345 [info] <0.33.0> Application lager started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.447 [info] <0.33.0> Application mnesia started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.593 [info] <0.33.0> Application inets started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.593 [info] <0.33.0> Application jsx started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.593 [info] <0.33.0> Application recon started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.615 [info] <0.33.0> Application os_mon started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.615 [info] <0.33.0> Application xmerl started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.615 [info] <0.33.0> Application crypto started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.616 [info] <0.33.0> Application cowlib started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.616 [info] <0.33.0> Application asn1 started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.616 [info] <0.33.0> Application public_key started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.760 [info] <0.33.0> Application ssl started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.780 [info] <0.33.0> Application ranch started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.790 [info] <0.33.0> Application cowboy started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.790 [info] <0.33.0> Application ranch_proxy_protocol started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.790 [info] <0.33.0> Application rabbit_common started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:01.791 [info] <0.198.0> Starting RabbitMQ 3.7.8 on Erlang 20.3.8.5Copyright (C) 2007-2018 Pivotal Software, Inc.Licensed under the MPL.  See http://www.rabbitmq.com/##  ####  ##      RabbitMQ 3.7.8. Copyright (C) 2007-2018 Pivotal Software, Inc.##########  Licensed under the MPL.  See http://www.rabbitmq.com/######  ############  Logs: <stdout>Starting broker...
2022-11-12 06:15:01.828 [info] <0.198.0> node           : rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.localhome dir       : /var/lib/rabbitmqconfig file(s) : /etc/rabbitmq/rabbitmq.confcookie hash    : XhdCf8zpVJeJ0EHyaxszPg==log(s)         : <stdout>database dir   : /var/lib/rabbitmq/mnesia/rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local
2022-11-12 06:15:06.551 [info] <0.206.0> Memory high watermark set to 488 MiB (512000000 bytes) of 15885 MiB (16657137664 bytes) total
2022-11-12 06:15:06.565 [info] <0.208.0> Enabling free disk space monitoring
2022-11-12 06:15:06.565 [info] <0.208.0> Disk free limit set to 100000MB
2022-11-12 06:15:06.575 [info] <0.211.0> Limiting to approx 1048476 file handles (943626 sockets)
2022-11-12 06:15:06.576 [info] <0.212.0> FHC read buffering:  OFF
2022-11-12 06:15:06.576 [info] <0.212.0> FHC write buffering: ON
2022-11-12 06:15:06.578 [info] <0.198.0> Node database directory at /var/lib/rabbitmq/mnesia/rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local is empty. Assuming we need to join an existing cluster or initialise from scratch...
2022-11-12 06:15:06.578 [info] <0.198.0> Configured peer discovery backend: rabbit_peer_discovery_k8s
2022-11-12 06:15:06.578 [info] <0.198.0> Will try to lock with peer discovery backend rabbit_peer_discovery_k8s
2022-11-12 06:15:06.578 [info] <0.198.0> Peer discovery backend does not support locking, falling back to randomized delay
2022-11-12 06:15:06.578 [info] <0.198.0> Peer discovery backend rabbit_peer_discovery_k8s does not support registration, skipping randomized startup delay.
2022-11-12 06:15:06.604 [info] <0.198.0> k8s endpoint listing returned nodes not yet ready: rabbitmq-cluster-0
2022-11-12 06:15:06.604 [info] <0.198.0> All discovered existing cluster peers:
2022-11-12 06:15:06.604 [info] <0.198.0> Discovered no peer nodes to cluster with
2022-11-12 06:15:06.607 [info] <0.33.0> Application mnesia exited with reason: stopped
2022-11-12 06:15:06.643 [info] <0.33.0> Application mnesia started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:06.812 [info] <0.198.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
2022-11-12 06:15:06.852 [info] <0.198.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
2022-11-12 06:15:06.895 [info] <0.198.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
2022-11-12 06:15:06.895 [info] <0.198.0> Peer discovery backend rabbit_peer_discovery_k8s does not support registration, skipping registration.
2022-11-12 06:15:06.911 [info] <0.198.0> Priority queues enabled, real BQ is rabbit_variable_queue
2022-11-12 06:15:06.916 [info] <0.395.0> Starting rabbit_node_monitor
2022-11-12 06:15:06.969 [info] <0.198.0> message_store upgrades: 1 to apply
2022-11-12 06:15:06.969 [info] <0.198.0> message_store upgrades: Applying rabbit_variable_queue:move_messages_to_vhost_store
2022-11-12 06:15:06.969 [info] <0.198.0> message_store upgrades: No durable queues found. Skipping message store migration
2022-11-12 06:15:06.969 [info] <0.198.0> message_store upgrades: Removing the old message store data
2022-11-12 06:15:06.994 [info] <0.198.0> message_store upgrades: All upgrades applied successfully
2022-11-12 06:15:07.039 [info] <0.198.0> Management plugin: using rates mode 'basic'
2022-11-12 06:15:07.041 [info] <0.198.0> Adding vhost '/'
2022-11-12 06:15:07.048 [info] <0.437.0> Making sure data directory '/var/lib/rabbitmq/mnesia/rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L' for vhost '/' exists
2022-11-12 06:15:07.052 [info] <0.437.0> Starting message stores for vhost '/'
2022-11-12 06:15:07.053 [info] <0.441.0> Message store "628WB79CIFDYO9LJI6DKMI09L/msg_store_transient": using rabbit_msg_store_ets_index to provide index
2022-11-12 06:15:07.059 [info] <0.437.0> Started message store of type transient for vhost '/'
2022-11-12 06:15:07.059 [info] <0.444.0> Message store "628WB79CIFDYO9LJI6DKMI09L/msg_store_persistent": using rabbit_msg_store_ets_index to provide index
2022-11-12 06:15:07.061 [warning] <0.444.0> Message store "628WB79CIFDYO9LJI6DKMI09L/msg_store_persistent": rebuilding indices from scratch
2022-11-12 06:15:07.065 [info] <0.437.0> Started message store of type persistent for vhost '/'
2022-11-12 06:15:07.067 [info] <0.198.0> Creating user 'mqadmin'
2022-11-12 06:15:07.068 [info] <0.198.0> Setting user tags for user 'mqadmin' to [administrator]
2022-11-12 06:15:07.069 [info] <0.198.0> Setting permissions for 'mqadmin' in '/' to '.*', '.*', '.*'
2022-11-12 06:15:07.072 [info] <0.482.0> started TCP Listener on [::]:5672
2022-11-12 06:15:07.082 [info] <0.198.0> Setting up a table for connection tracking on this node: 'tracked_connection_on_node_rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.092 [info] <0.198.0> Setting up a table for per-vhost connection counting on this node: 'tracked_connection_per_vhost_on_node_rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.092 [info] <0.33.0> Application rabbit started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.093 [info] <0.496.0> Peer discovery: enabling node cleanup (will only log warnings). Check interval: 60 seconds.
2022-11-12 06:15:07.093 [info] <0.33.0> Application rabbitmq_peer_discovery_common started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.093 [info] <0.33.0> Application rabbitmq_web_dispatch started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.093 [info] <0.33.0> Application rabbitmq_peer_discovery_k8s started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.093 [info] <0.33.0> Application amqp_client started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.096 [info] <0.33.0> Application rabbitmq_management_agent started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.137 [info] <0.549.0> Management plugin started. Port: 15672
2022-11-12 06:15:07.137 [info] <0.655.0> Statistics database started.
2022-11-12 06:15:07.139 [info] <0.33.0> Application rabbitmq_management started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'
2022-11-12 06:15:07.139 [info] <0.33.0> Application rabbitmq_delayed_message_exchange started on node 'rabbit@rabbitmq-cluster-0.rabbitmq-headless.cloud-test.svc.cluster.local'completed with 6 plugins.
2022-11-12 06:15:07.428 [info] <0.5.0> Server startup complete; 6 plugins started.* rabbitmq_delayed_message_exchange* rabbitmq_management* rabbitmq_management_agent* rabbitmq_peer_discovery_k8s* rabbitmq_web_dispatch* rabbitmq_peer_discovery_common
2022-11-12 06:16:20.847 [info] <0.395.0> node 'rabbit@rabbitmq-cluster-1.rabbitmq-headless.cloud-test.svc.cluster.local' up
2022-11-12 06:16:21.393 [info] <0.395.0> rabbit on node 'rabbit@rabbitmq-cluster-1.rabbitmq-headless.cloud-test.svc.cluster.local' up
2022-11-12 06:17:41.304 [info] <0.395.0> node 'rabbit@rabbitmq-cluster-2.rabbitmq-headless.cloud-test.svc.cluster.local' up
2022-11-12 06:17:41.851 [info] <0.395.0> rabbit on node 'rabbit@rabbitmq-cluster-2.rabbitmq-headless.cloud-test.svc.cluster.local' up

6.2 通过进入容器确认有没有加入集群

kubectl exec -it rabbitmq-cluster-0 bash -n cloud-test

7. 最终对外暴露出rabbitmq的两个端口,访问rabbit的dashboard页面

8. 开启rabbitmq的镜像集群模式

k8s搭建 rabbitmq集群相关推荐

  1. Docker:搭建RabbitMQ集群

    RabbitMQ原理介绍(一) RabbitMQ安装使用(二) RabbitMQ添加新用户并支持远程访问(三) RabbitMQ管理命令rabbitmqctl详解(四) RabbitMQ两种集群模式配 ...

  2. K8S 部署rabbitmq集群

    K8S 部署rabbitmq集群 版本介绍 名称 版本 k8s 1.18 rabbitmq 3.8 命名空间:rabbitmq 我这里已经建立 configmap 配置文件 [root@k8s-mas ...

  3. 搭建RabbitMQ集群

    下面以三台虚拟机为例,搭建RabbitMQ集群 首先在第一台上面安装完成RabbitMQ,然后克隆三台. 接下来修改主机名称,分别修改为node1,node2,node3 vim /etc/hostn ...

  4. 关于搭建rabbitmq集群报错Error: unable to perform an operation on node ‘rabbit@localhost‘. Please see diagnos

    项目场景: 搭建rabbitmq集群时mq1为主,mq2,mq3为从 mq2和mq3加入集群时输入命令:rabbitmqctl join_cluster rabbit@mq1报错 问题描述: 具体报错 ...

  5. docker 部署rabbitmq,k8s部署rabbitmq集群,跟踪和监控rabbitmq

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 rabbit原理和架构可以参考https://blog.csdn.net/luanpeng825485697/article/details/8208 ...

  6. k8s部署rabbitmq集群(使用statefulset部署)

    本例使用Storage Class(存储类)来作为集群数据的持久化后端,使用nfs作为后端存储. 1.创建namespace: # ns.yaml --- apiVersion: v1 kind: N ...

  7. 【Linux云计算架构:第四阶段-Linux虚拟化-私有云-docker】第12章—— 搭建 Kubernetes 的 web 管理界面和基于 k8s 搭建+redis 集群案例

    13.1 部署 Kubernetes Dashboard web 界面 13.1.1 创建 dashboard-deployment.yaml deployment 配置文件 13.1.2 创建 da ...

  8. Docker搭建RabbitMQ集群

    目录 1. 集群形成的要求 2. 集群中的节点 3. CLI如何验证节点 4. RabbitMQ集群搭建 5. Nginx实现负载均衡 6. 测试 集群形成的要求 ① 主机名解析 RabbitMQ节点 ...

  9. [Mac/Minikube] 使用K8s搭建ZooKeeper集群

    前言 相关的教程很多, 但是也很乱. 自己整理一篇. 使用过程中还遇到一些问题, 顺手记录一些. 创建PV 一般的PV都是创建在集群, 使用NFS共享管理的. 但是本次实验只有一台机器. 所以简单一点 ...

最新文章

  1. WPF中对三维模型的控制
  2. Windows Mobile使用Shared Memory(共享内存)进行IPC(进程间通信)的开发
  3. 计算机二级c语言作弊的东西,计算机二级C全部考试题库[作弊必备]编程题.txt
  4. 优秀程序员必须知道的32个算法,提高你的开发效率
  5. linux系统调用函数(C语言):open,close函数和文件描述符
  6. 初学Linux第三周
  7. D3 BarChart
  8. PHP 结合redis实现高并发下抢购、秒杀
  9. 信息安全工程师考试大纲(含pdf)
  10. 精益软件开发(Lean Software Development)
  11. 口才训练方法——速读法、背诵法
  12. 深度 | 为什么通用AMM模型不适用于期权交易定价?
  13. PO与VO之间的相互转换
  14. 微信小程序:修改单选radio大小样式
  15. 打卡伦敦博物馆,在时空之旅中探索你未知的城市
  16. Problem G: 薪酬计算
  17. linux协议栈 IPv4之发送过程中的分段处理ip_fragment()
  18. 零基础编程——块语言编程游戏攻略之动画篇
  19. 女士细线毛衣起多少针_手工编织毛衣各处针数和方法
  20. 倒计时2天 校园行|AI TIME “未来杯” 走进浙江大学

热门文章

  1. Android程序员接下来的路该如何走?
  2. OSChina 周四乱弹 —— 每天都迟到是种什么样的体验
  3. Python数据清洗:strava运动跑步和骑行路径路线经纬度散点序列数据
  4. Springboot集成mabatis-plus报com.xly.entity.ClientNot Found TableInfoCache.
  5. 数据结构与算法————无向图
  6. [Linux 基础] -- 驱动调试神器 printk 你掌握了吗?
  7. 搜狗搜索事业部总经理:从识图搜索谈未来大势
  8. ELK---索引(Elasticsearch 7.17)
  9. 15/18位身份证号码验证的正则表达式总结(详细版)
  10. 一、RapidIO背景介绍