java服务器崩溃的原因_服务器压力太大总是崩溃?是时候使用分布式服务器了...

前言

1.之前有人给我留言说想要了解一下分布式,今天呢,我们就来简单的说一下SpringCloud分布式并且实现一个简单的demo。

2.最近更新变少了,因为工作中也没有遇到什么有意思的知识点,希望大家可以提供一些想要了解的知识,私信或者评论都可以。

我理解的SpringCloud

1.首先,我们的分布式系统都需要有一个服务注册中心,来将所有提供服务的系统都注册到系统中。在我了解的两种分布式框架:Double(阿里)、SpringCloud(Spring),在这两种里面,我选择了Spring。我认为SpringCloud更加简捷方便一些。

2.其次,有了注册中心,那我们就需要有服务的提供者,也就是我们所说的微服务,只需要在项目中加入几个简单的配置,就可以将服务注册到注册中心,供其他客户端使用。

3.最后呢,我们还需要注册消费者,通过消费者来消费注册中心中的服务接口。

SpringCloud代码实现

一、SpringCloud服务注册中心

1.使用IntelliJ IDEA或者是其他的Java IDE创建一个Springboot项目,命名为eureka-server,当然这个自由选择哈。

2.等待MAVEN构建好项目之后,打开pom.xml进行配置,并添加如下依赖。

aafe40fe9ace7310377e259ac6c2c835.png

3.打开主类,也就是启动类,添加如下注解,将该项目注册为服务注册中心。

0d664685e8a7536d0afe83b5c86f534a.png

4.打开项目中的application.properties我会将其重命名为application.yml,其实两种格式并没有什么分别,只是个人喜好而已。

5.修改application.yml配置,如下。

27692e262d4483a3f4535b69160eced3.png

6.它的配置还有很多,比如

2f382bd136169ed4df1499cb3f90f98f.png

配置有很多,大家可以去官方文档查看一下,按需配置。

7.自此注册中心算是配置完善,启动项目后,访问对应端口即可看到如下页面。

f8c3f64a4c9e2b27f6d9cfdc9d610f52.png

二、SpringCloud服务提供者

1.同上创建Springboot项目,选择创建为WEB项目,名为service-test可以选择常用的持久化框架mybatis、JAP等等,选择数据库驱动。当然持久化框架可以不选,待MAVEN构建好项目之后可以手动加入自己的持久化,比如我常用的mybatis-plus或者hibernate、JDBC等等。

2b751b44a49f90b13148ae0f914eb8e6.png

2.打开pom.xml添加依赖

2375e5da29c279c6d34662e941ae31b5.png

3.打开启动类,添加注释@EnableEurekaClient注册成为服务提供者。

4.配置application.yml

1221c8d01cf48c92b9dee98efd5a005f.png

5.启动项目后,可以在服务注册中心的日志中看到如下结果:

0f06c5eed9f23c85e4a69406d1f631f6.png

也可以在浏览器打开服务注册中心查看服务是否注册成功:

c5e52443a784b48cb4bd15647ebe6a3b.png

6.如上即为可提供服务,接下来就可以编写我们的服务代码,这里我们简单的以返回字符串为例子。TestController.java

6b20e434cd45506d86fbc0205684a213.png

三、SpringCloud服务消费

1.由上面的Java代码可以看出,我们的service-test服务者提供了一个/test/testOne的服务,那我们接下来就来创建一个消费者来消费该服务。

2.依旧创建Springboot项目,命名为consumer添加同上依赖,在application.yml中添加如下配置

89dfcbc25241687989fb965a7a6c1580.png

3.在启动类中添加如下注解,注册为消费者。

ef558d3d33bf063796bb47d43f6a054b.png

4.编写ConsumerService.java接口,以此消费我们service-test中提供的服务。代码如下:

80eada173e3135673d1fbb8311b71a14.png

5.编写ConsumerController.java

a256849cc1e7ab9ea21c8cb1c34f0186.png

6.启动项目后同样可以在服务注册中心的控制台以及页面查看注册信息。

7.查看到服务注册成功之后,我们正常访问,localhost:端口/test。就可以看到页面会返回成功进入的字样,即代表我们的服务消费成功。

e96abf68b09c593567353818ae32641f.png

四、SpringCloud分布式服务器部署测试

1.正好手头有不少服务器,我们来部署测试一下,是否实现了简单的分布式。

2.首先将我们的三个项目打包为jar文件上传至服务器当中。具体操作如下

6bbe54ca4ebd0d42cd688e00fa070fa0.png

3.待命令执行完后,可以在项目的target目录中看到生成的jar文件。

4.通过scp命令将jar包上传至服务器目录

scp -r 文件本地路径 服务器用户名@服务器ip:/home/用户名

5.接下来就是启动jar包

# nohup 为后台执行,如果不使用该命令,当关闭终端或者断开链接时,jar也会停止运行,导致项目无法访问 nohup java -Dserver.port=部署端口 -jar 文件名

6.待项目全部部署完毕,我们先来看一下服务注册中心。

dfc3f6a8db9869d5e28e6e7f6c5fd64c.png

五、SpringCloud、Ribbon开启负载均衡

1.我们需要启动同一个服务两次,在不同的端口或者是服务器。

2.项目启动后可以在注册中心看到同名为service-test的服务有两个。

3.在消费者的主类中添加如下代码开启负载均衡。

3da1c562e42114eb8bbc2c33ef61beda.png

4.这样,他会根据访问的次序,自动的将用户分配到不同的服务器或者端口。

最后说几句

1.当然这只是最基础的一部分。我也还在不断的学习和深入了解当中。

2.至于这样部署的好处嘛,不仅减轻了服务器的负担,同样降低了耦合,如果我们只是下线一部分功能或者对功能进行升级,不会对整体造成影响。

3.感谢大家的关注和支持,希望大家多多提出意见。

4.我在自己的服务器当中搭建了GitLab服务器,使用后感觉也是非常不错,如果有想要尝试自己搭建或者使用我搭建好的可以私信或者评论告诉我。

5.谢谢大家

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值