springcloud(2.7.10)创建微服务(Eureka Server/Client应用)-连载1

1、连载内容说明

本专栏重点介绍springcloud项目应用,微服务搭建,微服务之间的模块通信方式,springcloud分布式搭建,springcloud中统一配置中心使用方式,springcloud中使用RabbitMQ消息中间件,springcloud中zuul网关的使用,springcloud中搭建高可用,springcloud中实现限流、鉴权、校验、跨域操作等,springcloud中服务降级、服务熔断等技术...

持续更新中……

2、理解什么是微服务

2.1、理解单体架构应用

79d46d98c2d7455080f818ba2d8ffaad.png

比如单体应用采用mvc模型,使用SSM框架整合等技术,将项目的所有模块和前端放在一个项目中。这种架构模块之前的依赖比较简单,直接调用即可。运行的时候项目会被打包成war包,测试容易,不熟容易。但是这种架构有一些不足之处。

不足之处1:部署不灵活,项目构建时间长,任何代码的变动,都需要重新部署,且所有内容都放在项目中,不利于优化。

不足之处2:稳定性不高—一个小问题,会让整个项目挂掉。

不足之处3:扩展性不够—无法满足高并发下的需求,如商品展示的流量大,订单流量的小,可以根据服务器不同。

不足之处4:不利于代码的复用性,如果多个系统中都使用了到订单系统,我们需要在每个项目中都创建订单系统。

2.2、理解什么是微服务架构

619e462386134d2aa8ffe457dab41711.png

微服务的本质就是将原先单体服务拆分成多个独立的模块,部署在不同的服务器中,这些每个独立的小模块称之为微服务。如上图将订单服务、商品产品、短信服务部署在不同的服务器中。为了解决服务分开之后个模块之间的交互,所以Springcloud中需要创建Eureka Server工程,专门用来记录各个微服务之间的信息如ip,服务名称,端口等信息。

最终用户通过访问网关(这个网关可以使用,也可以选择不使用),访问各个微服务,各个微服务之间也可以技术EurekaServer+RestTemplate或者Feign实现模块之间的通信。

各模块之间如何实现通信,可以参照我其他的博客文章。

微服务的好处:

1、易于开发和降低开发难度

   由于将项目拆分成了一个个独立的小模块,开发者只需要关注自己团队开发模块的逻辑即可。

2、技术栈不受限制

   不同的单体模块之间,可以根据实际情况不同,选择不同的语言开发

3、扩展容易

   在原有的微服务基础上扩展一个新的服务,极其容易,对其他模块的影响小

4、模块的复用性强

   一个模块开发之后,可以给不同的项目使用,复用性强。

5、部署容易和修改容易

   修改之后只需要重新部署修改的微服务即可。

3、案例说明

本案例中需要创建三个工程:

    eurekaServer:主要作为服务注册中心,被注解@EnableEurekaServer修饰

   orderClient:订单服务模块(微服务),主要写订单操作相关业务

    goodsClient: 商品服务模块(微服务),主要写订单操作相关业务 

4、创建Eureka Server注册中心-eurekaServer

4.1、通过idea创建Eureka Server工程

环境信息:JDK1.8+springboot2.7.10+Eureka Server

【创建工程并选择JDK1.8版本】

0c9957f3614b427893a7523f09c630c4.png

 【选择springboot版本及Eureka Server依赖】

81a053684033488e9e0358e9aadf33f5.png

 4.2、创建工程之后,项目结构如下

e4a5e5606eab451c991f0b6052d3156d.png

 4.3、在application.properties中创建服务端配置信息

# 设置Eureka Server WEB控制台端口,自定义
server.port=8761
# 设置服务注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
#是否将自己注册到Eureka-Server中,默认的为true
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
# 设置当前应用的名称
spring.application.name=eurekaServer

4.4、在启动类上添加Eureka Server注解

@EnableEurekaServer表示当前的项目是Eureka Server服务注册中心

服务注册中心本质也是springboot工程

7555f6c667cc4cddbee80b59783baf05.png

 4.5、启动当前的工程

6648b4a5155b4e7dabdbde16ee2b92f9.png

 4.6、启动之后访问Eureka Server提供的数据统计页面

请求地址:http://loalhost:8761/   访问到如下地址表示Eureka Server搭建成功

该页面的常见参数配置如下:
    total-avail-memory:总可用内存

    num-of-cpus:cpu数量

    current-memory-usage:当前内存使用量

     server-uptime:服务器正常运行时间

    registerd-replicas:注册副本

    available-replicas:可用副本

139eb0967f8242a1b0946d162a1de7bf.png

5、创建Eureka Client服务-orderClient工程

Eureka Client本质就是一个个项目的微服务模块,如订单服务模块。

案例中创建的项目名称为:orderClient,表示订单服务模块。

5.1、使用IDEA创建工程

【选择JDK版本及创建项目名称】

3ddbed3b8df9497f8c89dc9c77d1cb48.png

 【选择springweb依赖,即springmvc应用】

84038e718c2e4b2ea69200357d120426.png

 【选择Eureka Client依赖】

 0d1b1399c05743dca1a158daa48f4304.png

 5.2、在项目的启动类中加入注解

 @EnableDiscoveryClient:表示该工程是一个Eureka Client微服务

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

5.3、在application配置文件中加入配置信息

#配置服务名称
spring.application.name=orderClient
#设置注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
#设置当前工程的端口号
server.port=8080

5.4、启动OrderClient工程

a4d943074bc6455f987a0454685a22b0.png

5.5、启动之后通过在Eureka Server观察微服务信息

通过地址http://localhost:8761/访问注册中心,能够看到此时ORDERCLIENT微服务已经被注册进服务器中。

1d4c1cab06b5487e89196b2d047f1442.png

 6、创建Eureka Client服务--goodsClient工程

6.1、使用IDEA创建工程

【选择JDK版本及创建项目名称】

 f7b5a3cb16174e1db1b121a32d8c07ae.png

 【选择springweb依赖,即springmvc应用】

与上面的orderClient相同,选择springweb依赖和EurekaClient依赖

6.2、在项目的启动类中加入注解

@EnableDiscoveryClient:表示该工程是一个Eureka Client微服务

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

6.3、在application配置文件中加入配置信息

注意点:orderClient工程已经使用了8080端口,此处使用8081端口

#配置服务名称
spring.application.name=goodsClient
#设置注册中心地址
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
#设置当前工程的端口号
server.port=8081

6.4、启动goodsClient工程

3b2ddee1db294801a7e2735db07435cb.png

6.5、启动之后通过在Eureka Server观察微服务信息

通过地址http://localhost:8761/访问注册中心,能够看到此时ORDERCLIENT和GOODSCLIENT微服务已经被注册进服务器中。

c1f7d4d5f51b4609bdfb748f01d9a791.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雾林小妖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值