千家信息网

怎么搭建spring cloud应用

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容介绍了"怎么搭建spring cloud应用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一
千家信息网最后更新 2025年12月01日怎么搭建spring cloud应用

本篇内容介绍了"怎么搭建spring cloud应用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、 spring cloud 微服务架构

二、 一步一步 搭建spring cloud应用

service client

Service:提供服务的应用,端口是 808x的形式 Client:调用服务的应用 端口是809x的形式 整个程序以根据client端根据用户id调用服务端程序返回用户信息做示例。

  • 1、 两个单体spring boot应用调用 本节讲的比较简单,分别新建两个普通的spring boot 应用,不使用任何spring cloud相关的东西,service 端提供一个restful接口服务,client端通过RestTemplate来进行调用 首先只需要创建两个单独的Spring boot应用,服务端的端口为8081,客户端的端口是8071,然后在客户端用RestTemplate 调用即可,服务端的代码不贴了,就是用spring initializr 创建的一个普通的spring boot web项目,主要是说一下客户端的调用。

配置RestTemplate

@Configurationpublic class ConfigurationBean {    private SimpleClientHttpRequestFactory getHttpRequestFactory(){        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();        factory.setConnectTimeout(10000);        factory.setReadTimeout(10000);        return factory;

调用方式

@RestController@RequestMapping("/client/user")public class UserApi {    @Autowired    private RestTemplate restTemplate;    @RequestMapping("/{id}")    public String getUser(@PathVariable("id") String id){        String forObject = restTemplate.getForObject("http://localhost:8081/user/1", String.class);        return forObject;    }}

分别启动service和client,通过调用访问http://localhost:8080/client/user/1,返回服务端数据,当然restTemplate还有很多其他的方法可用,自己在实际使用的时候可以去探究。

  • 2、 以上就完成了两个微服务间通信,客户端调用服务端的接口,功能完毕,但是这指定不是我们想要的姿势,我们在客户端,使用restTemplate写死了服务端的地址。在实际的生产环境中,我们的服务端不可能只有一台,我们的服务端也不可能只有一台机器。我们将面临以下问题:

  • 横向扩展服务

  • 服务端和客户端机器上下线

为了解决不想写死服务端的地址,并且能动态的切换对服务端机器的调用的问题,引入注册中心的概念,说起来注册中心,我们通常会想起来zookeeper,但是spring cloud中并没有采用zookeeper,而是采用了Eureka,zookeeper和Eureka对于保证CAP定理中的方式不同,zookeeper比较注重CP(一致性,分区耐受性),而对于Eureka来说重点保证AP(一致性和分区耐受性)。 注册中心有了,那客户端的请求是如何分发到相应某一台服务器上呢,也许我们用过nginx,nginx通过配置服务器的权重, ip hash或者随机以及轮训这些策略进行分配服务器,对于spring cloud 来说,干这个活的是Ribbon。接下来就通过改造第一步的项目来让它支持以上这些需求。 首先需要搭建一个EurekaServer,也就是注册中心,和zookeeper是一个需要安装的软件不同,Eureka是一个内置在spring boot start中的一个应用程序,我们只需要引入spring-boot-start-eureka,然后启动项目即可。在这之前说一下EurekaServer和我们应用程序的关系。

EurekaServer 作为注册中心,接收服务端的注册一级客户端对服务端服务列表的请求, Eureka Client内嵌到应用程序中,用于注册服务或者获取服务。
搭建EurekaServer

pom.xml

   4.0.0   com.wtf.cloud   eureka-server   0.0.1-SNAPSHOT   jar   eureka-server   Demo project for Spring Boot         org.springframework.boot      spring-boot-starter-parent      2.0.0.RELEASE                   UTF-8      UTF-8      1.8      Finchley.M8                     org.springframework.cloud         spring-cloud-starter-eureka-server         1.4.3.RELEASE                                       org.springframework.cloud            spring-cloud-starter-parent            ${spring-cloud.version}            pom            import                                                org.springframework.boot            spring-boot-maven-plugin                                    spring-milestones         Spring Milestones         https://repo.spring.io/milestone                     false                  

main文件

@SpringBootApplication@EnableEurekaServerpublic class EurekaServerApplication {   public static void main(String[] args) {      SpringApplication.run(EurekaServerApplication.class, args);   }}

配置文件 application.yml

server:  port: 8888spring:  application:    name: eureka-servereureka:  client:    register-with-eureka: false    fetch-registry: false    serviceUrl:      defaultZone: http://localhost:8888/eureka/

应用的端口为8888
应用名称:eureka-server 然后是配置eureka的相关东西 在默认设置下,改服务注册中心也会将自己组委客户端来尝试注册它自己,所以我们需要禁止它的客户端行为
eureka.client.register-with-eureka=false
由于该应用属于注册中心,所以设置为false,代表不像注册中心注册自己
eureka.client.fetch-registry=false
由于注册中心的职责是维护服务实例,它并不需要去检索服务,所以也设置为false。 更多配置可以参照EurekaInstanceConfigBean 和EurekaClientConfigBean
启动服务访问http://localhost:8888/ 可以看到如下界面:

"怎么搭建spring cloud应用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

服务 应用 客户 端的 客户端 程序 端口 配置 两个 实际 应用程序 更多 服务器 机器 项目 不同 普通 一致 接下来 一致性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳通程软件开发 软件开发二线人员的招聘条件 aiwi连接服务器失败 数据库自增列 索引 贯彻网络安全审查办法 互联网有哪些是科技股 服务器布局 江山企业产品追溯软件开发 联通 软件开发者大会 江西恩网络技术有限公司地址 ctf网络安全大赛理论题库 网络安全防控教育手抄报 计算机与网络技术自考真题 新时达服务器怎么设置时间 镇江系统软件开发 数据库中的表的组成内容包括 wcf数据库实例 服务器上的电子数据被冻结 宝山区正规软件开发销售方法 现金巴士软件开发咋样 网络技术服务排名靠前 软件开发如何能准确抓住需求 大型数据库有哪些 西安erp软件开发要多少钱 金牛网络技术科技有限公司 一台服务器可以带多少个云原神 单位网络安全工作总结2021 服务器老化出故障导致业务停滞 什么手游服务器还没人玩 软件开发依据什么标准
0