Eureka如何脱离SpringBoot部署?(1),2024年最新2024大厂Linux运维面试真题集锦

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

结果如下:

安装完成。

1.1.2 Tomcat

(1)版本选择

Tomcat版本选择可以参考官方给出的表格:

我们jdk选择的是1.8,因此Tomcat就选择9或者10版本。这里选择的是Tomcat9。

(2)上传安装包

Tomcat安装包已经上传到:https://cloud.189.cn/t/6FjiqiiYfuIr (访问码:urj4)
将安装包上传到目标部署服务器/root/目录下,并执行命令:

cd /root/
tar -zxvf apache-tomcat-9.0.82.tar.gz
mv apache-tomcat-9.0.82 tomcat
mv tomcat /usr/local/tomcat
rm -rf apache-tomcat-9.0.82.tar.gz

(3)配置环境变量

vi /etc/profile

# 追加如下内容:
export PATH=/usr/local/tomcat/bin:$PATH

# 使环境变量对当前会话生效
source /etc/profile

(4)验证
在任意目录下执行命令:

startup.sh

在确保防火墙是关闭的条件下,使用浏览器访问http://ip:8080,效果如下:

Tomcat安装完成!

1.2 下载源码与编译

可以使用已经编译好的:https://mvnrepository.com/artifact/com.netflix.eureka/eureka-server

这里如果使用的是Tomcat9,那么Euraka的版本不能是2.x,会有不兼容的问题。

(1)下载源码

源码下载地址:https://cloud.189.cn/t/qqu26jQRbMvi (访问码:tan2)
(或者直接下载已经编译好的:https://cloud.189.cn/t/bamIRnrINzyq (访问码:mn9w))

(2)编译
在本地机器编译:

cd eureka/
gradlew clean build

编译完成后,在下面的目录中找到编译成果:

目录说明
./eureka-server/build/libs/eureka-server-XXX.warTomcat中运行的war包
./eureka-server/build/libs/eureka-server-XXX-SNAPSHOT-javadoc.jarJavadoc
./eureka-client/build/libs/eureka-client-XXX.jar客户端jar包
./eureka-client/build/libs/eureka-client-XXX-SNAPSHOT-javadoc.jarJavadoc
1.3 上传并启动

将war包重命名为eureka.war,并上传到Tomcat的webapps目录下:

访问http://ip:8080/eureka/,查看结果:

至此,Eureka单机版安装成功!

二、注册服务至单实例Eureka Server

2.1 pom文件
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
</dependencies>

2.2 配置文件
server.port=8082
spring.application.name=eureka02

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8080/eureka/eureka

配置文件说明:

  • server.port:客户端服务启动端口,与Eureka Server的端口无关
  • spring.application.name:服务名,在微服务系统中就是微服务名,也是注册到Eureka Server后的名字,在微服务调用的时候,就是用这个名字进行调用的
  • eureka.client.register-with-eureka:是否向注册中心注册自己
  • eureka.client.fetch-registry:是否要获取已经注册了的服务
  • eureka.client.service-url.defaultZone:Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
2.3 启动类
@EnableEurekaClient
@SpringBootApplication
public class EurekaTest02 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaTest02.class, args);
    }
}

2.4 查看注册结果

三、高可用集群部署

部署目标:

IP\信息操作系统架构规格
192.168.189.41Centos7.9x862c4g
192.168.189.42Centos7.9x862c4g
192.168.189.43Centos7.9x862c4g
3.1 统一配置

按照单实例的部署步骤,将192.168.189.42与192.168.189.43同样部署好Eureka。

3.2 配置本地域名

对三台机器都执行:

vi /etc/hosts

# 添加如下内容,三台主机的配置相同:
192.168.189.41 www.eureka41.com
192.168.189.42 www.eureka42.com
192.168.189.43 www.eureka43.com

3.3 修改主机名
vi /etc/hostname

# 修改为各自主机的域名:
www.eureka41.com

备注:这里配置主机名,可以类比在嵌入式部署时候的eureka.instance.hostname

修改完毕后重启主机:

reboot

3.3 配置集群
3.3.1 eureka-client.properties

修改/usr/local/tomcat/webapps/eureka/WEB-INF/classes/eureka-client.properties文件,将“eureka.serviceUrl.default=http://localhost:8080/eureka/v2/”替换为:

eureka.serviceUrl.default=http://www.eureka41.com:8080/eureka/v2/,http://www.eureka42.com:8080/eureka/v2/,http://www.eureka43.com:8080/eureka/v2/

eureka.serviceUrl.default=http://192.168.189.41:8080/eureka/v2/,http://192.168.189.42:8080/eureka/v2/,http://192.168.189.43:8080/eureka/v2/

eureka-client.properties部分参数说明

  • eureka.port:Eureka Server的端口,与客户端无关,可以类比在嵌入式部署时候的server.port
  • eureka.name:如果要搭建集群,那么三个节点的name值必须一致,Eureka会根据这个值判断是否是同一个服务,如果是的话,才会有replica的概念,可以类比在嵌入式部署时候的spring.application.name
  • eureka.serviceUrl.default:配置这个参数,就相当于Server充当了客户端,将自己的信息也注册到了Server中。可以类比在嵌入式部署时候的eureka.client.service-url.defaultZone
  • eureka.eurekaServer.context:指定 Eureka 服务器的上下文路径(Context Path)
3.3.2 eureka-server.properties

关闭eureka server的自我保存模式,修改/usr/local/tomcat/webapps/eureka/WEB-INF/classes/eureka-server.properties文件,追加如下内容:

eureka.enableSelfPreservation=false

3.4 重启集群

在三台机器上都执行如下命令:

shutdown.sh
start.sh

3.5 查看集群搭建成果

四、配置系统服务

独立部署的Eureka是基于Tomcat的,因此只需要把Tomcat注册到系统服务即可。

4.1 编写系统服务
vi /usr/lib/systemd/system/tomcat.service

# 内容如下:

[Unit]
Description=tomcat

[Service]
Environment="JAVA\_HOME=/usr/local/jdk"
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/stutdown.sh
Restart=always

[Install]
WantedBy=multi-user.target

4.2 配置开机自启
systemctl daemon-reload
systemctl enable tomcat

五、负载均衡

部署目标:

IP\信息操作系统架构规格
192.168.189.50Centos7.9x862c4g

其实使用Nginx做负载均衡和使用Keepalived的浮动VIP都是可以的,具体看业务需求。

5.1 安装Nginx

参考:
尚硅谷笔记

5.2 配置Nginx
vi /usr/local/nginx/conf/nginx.conf

# 修改成如下内容:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    upstream httpds {
        server 192.168.189.41:8080;
        server 192.168.189.42:8080;
        server 192.168.189.43:8080;
    }

    server {
        listen       8081;
        server_name  eureka_server;

        location /eureka {
            proxy_pass http://httpds/eureka;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Port $server_port;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-Scheme $scheme;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

5.3 查看效果

六、注册服务至集群Eureka Server

6.1 pom文件

与单实例版一致:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
</dependencies>

6.2 配置文件
server.port=8081
spring.application.name=eureka01

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8081/eureka/v2

6.3 启动类
@EnableEurekaClient
@SpringBootApplication
public class EurekaTest01 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaTest01.class, args);
    }
}

6.4 查看注册结果

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-mRreT6ai-1713323798396)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值