Rancher+Docker+SpringBoot实现微服务部署、扩容、环境监控

本文介绍了如何利用Rancher和Docker在Linux环境中搭建微服务,包括前置需求、Rancher安装、环境配置、应用和服务添加、扩容操作以及状态监控。通过Rancher管理,可以方便地对容器进行资源监控和日志查看,并实现微服务的灵活扩展。


前言

Rancher 是一套容器管理平台,可以在生产环境中快捷的部署和管理容器,方便的对容器进行cpu内存环境监控、日志监控、扩容缩容,自动重启。


一、前置需求

1.linux虚拟机或系统

版本我这里用的 centos7

2.创建好docker环境

参考这篇文章
https://blog.youkuaiyun.com/weixin_43721000/article/details/124237932

3.写一个简单的微服务并创建为docker镜像

在这里插入图片描述

可以自行创建或者参考这篇文章
https://blog.youkuaiyun.com/weixin_43721000/article/details/124064973
ps:创建好镜像就好了,不要启动容器


二、安装Rancher

1.拉取rancher镜像

docker pull rancher/server

2.启动rancher容器

docker run -di --name=rancher -p 8080:8080 rancher/server

3.访问rancher

访问8080端口,我这里是 192.168.0.231:808

Java 中,部分集合类具备自动扩容机制,以适应元素数量的动态变化,下面以 `ArrayList` 和 `HashMap` 为例介绍其自动扩容的原理、机制和使用场景。 ### `ArrayList` - **原理**:`ArrayList` 底层基于数组实现,当添加元素时,如果当前数组容量不足以容纳新元素,就需要创建一个更大的数组,并将原数组中的元素复制到新数组中。 - **机制**:创建 `ArrayList` 时可指定初始容量,若未指定,默认初始容量为 10。当添加元素时,会检查当前容量是否足够,若不足则进行扩容扩容时,新容量通常为旧容量的 1.5 倍。示例代码如下: ```java import java.util.ArrayList; public class ArrayListResizeExample { public static void main(String[] args) { // 创建一个容量为 2 的 ArrayList ArrayList<Integer> list = new ArrayList<>(2); // 添加一些元素,触发扩容 list.add(1); list.add(2); // 扩容会发生,因为当前容量已经满了 list.add(3); System.out.println("ArrayList: " + list); } } ``` - **使用场景**:适用于需要动态添加元素,且元素访问频繁的场景,如存储用户信息列表、商品列表等。 ### `HashMap` - **原理**:`HashMap` 底层使用数组存储元素,每个数组元素是一个链表或红黑树(当链表长度超过 8 且数组长度大于 64 时,链表会转换为红黑树)。当元素数量超过负载因子(通常为 0.75)与当前容量的乘积时,会进行扩容。 - **机制**:扩容时,会将桶的数量增加,创建一个新的更大的数组,并将原数组中的元素重新哈希到新数组中。示例代码如下: ```java import java.util.HashMap; public class HashMapResizeExample { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); for (int i = 0; i < 100; i++) { map.put("Key" + i, i); } System.out.println("插入 100 个键值对后的 HashMap 大小: " + map.size()); } } ``` - **使用场景**:适用于需要存储键值对,且需要快速查找元素的场景,如缓存系统、数据统计等。 ### 扩容的目的 扩容的主要目的是减少哈希冲突和提升查询效率。当元素数量增加时,更多的元素会被映射到同一个桶中,增加了哈希冲突的概率。扩容会将桶的数量增加,从而减小冲突的可能性。扩容后,桶的数量增加,元素分布更均匀,查询时找到目标元素的概率更高 [^3]。 ### `ThreadLocal` `ThreadLocal` 的 `resize` 方法主要是进行扩容,同时会将垃圾值标记方便 GC 回收,扩容后数组大小是原来数组的两倍 [^4]。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都干的派森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值