如何用java搭建一个微服务框架详细教程
微服务 - 微服务的作用 - 微服务框架微:体积小 随处运行 开发简单 - 相对于传统的SpringMVC - SSM服务: 一定区别于系统,服务一个或者一组相对较小且独立的功能单元 - 业务能力构建+自动化部署+多种编程语言+不同的数据存储技术+最低的集中式管理为什么有微服务? - 应用的拆分程序员A B C需求: 开发一套订单管理系统程序员A: 采用单系统架构 业务代码mvc拆分,前端vue渲
微服务 - 微服务的作用 - 微服务框架
微:体积小 随处运行 开发简单 - 相对于传统的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停掉了,其他服务会自动去访问缓存,不影响其他服务的使用
更多推荐
所有评论(0)