微服务 - 微服务的作用 - 微服务框架
微:体积小 随处运行 开发简单 - 相对于传统的SpringMVC - SSM
服务: 一定区别于系统,服务一个或者一组相对较小且独立的功能单元 - 业务能力构建+自动化部署+多种编程语言+不同的数据存储技术+最低的集中式管理

为什么有微服务? - 应用的拆分
程序员A B C    需求: 开发一套订单管理系统
程序员A: 采用单系统架构 业务代码mvc拆分,前端vue渲染 - 后端SSM + 前端Vue - 架构适用于订单小

程序员B: 采用多应用,将产品 订单 物流 工单 客服等做应用级拆分,rest api或tcp直接交互,每个应用都是一个MVC系统,独立开发 

程序员C: 采用微服务。将产品 订单 物流 工单客服等做应用级拆分,再使用微服务框架将拆分成一个个的服务 -》 订单列表查询服务 产品列表查询服务 产品详情查询服务 - 使用一个个服务组成应用系统然后整合为订单管理系统
使用微服务的服务治理+熔断+负载均衡等

实现微服务框架:
Springboot + SpringCloud + Eureka
Eureka是Netflix开发服务发现组件,本身就是一个基于rest的服务

Application Service 服务提供者
Application Client 服务消费者
Make Remote Call = 调用 restful api
us-east-1c us-east-1d us-east-1e 是zone机房
us-east-1 是region = Eureka集群

Eureka Client 是一个Java客户端 用于简化与Eureka server的交互
Eureka server 是提供服务发现的能力 - 默认周期 30 秒以续约自己的信息
                                                            - 默认周期 90 秒销毁该服务节点

敲黑板!!!搞起来

微服务是基于springboot搭建的,接下来是详细教程

首先创建一个springboot项目叫 eureka

勾选上 eureka discovery client 和 eureka server  然后点击finish

创建完项目后,找到入口类,加上@EnableEurekaServer 注解 意思是说明这个项目是用来注册服务的

然后找到配置文件application.properties  

配置信息 

server.port=8000 //端口号

eureka.instance.hostname=127.0.0.1  //主机地址
eureka.client.register-with-eureka=false //表示是否注册自身到eureka服务器(因为当前这个应用就是eureka服务器,无需注册自身)
eureka.client.fetch-registry=false //表示是否从eureka服务器获取注册信息

//注册中心路径,如果有多个eureka server,在这里需要配置其他eureka server的地址,用","进行区分,
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/   

配置完以后,启动服务,成功即出现以下页面,然后服务注册中心就搭建完毕了。

 

接下来,我们需要创建服务,注册到服务中心里面

我们需要创建服务提供者和服务消费者

先来创建一个服务提供者Ribbon,勾选上 eureka discovery client 和 eureka server 和ribbon  然后点击finish

Ribbon是Netflix开源项目,主要功能是提供客户端的软件负载均衡算法

入口类加上注解 @EnableDiscoveryClient  //注册服务客户端

并配置负载均衡

配置文件

spring.application.name=ribbon-provider  //服务名称-服务可以通过ip+端口号找到,也可以通过这个名称直接找到这个服务

接下来在这个项目中随便加一点东西,好用来测试

好,我们先创建一个service 叫Helloservice 类

在创建一个conroller 类 HelloConroller 

启动ribbon项目,并测试能否成功访问控制器

在刷新一下开始就运行的服务注册中心,查看当前服务是否已经注册进去了

上面服务注册中心里面显示了服务,就说明成功的把服务注册进去了

服务提供者我们弄完了,接下来我们需要创建服务消费者

同样创建一个springboot项目,叫做Ribbon-consumer 和提供者差不多

同样需要勾选上 eureka discovery client 和 eureka server 和ribbon  然后点击finish

入口类也和前面差不多

配置文件也差不多,复制过来改下参数就行了

同样创建一个service,可以通过ResTemplate 访问服务提供者中的服务

在创建一个controller 为HelloController

启动消费者服务,刷新eureka服务中心,里面出现两个服务说明成功了

在访问

说明消费者访问了服务提供者的方法

消费者还有一种feign 的写法

Feigin  它是一个声明式的web服务器客户端
Feigin  是通过注解的方式进行消费模式 默认打开负载均衡

这里就不演示了

总结

Eureka 8000-发现->ribbon-provider  服务提供者   8001
                                ribbon -consumer 服务消费者 8002                 

eureka 服务注册中心自带缓存,如果开始eureka中的服务注册过了,然后eureka停掉了,其他服务会自动去访问缓存,不影响其他服务的使用

 

 

 

Logo

前往低代码交流专区

更多推荐