SpringCloud 微服务 (二) Eureka (Server)

微服务是一种架构风格,设计思想

特点    ① 由一系列微小的服务组成

           ② 运行独立,互不干扰

           ③ 独立部署

           ④ 每个微小的服务都有自己的业务实现

           ⑤ 各自独立分散服务管理-->分布式管理

 

单体架构: 测试的时候在一起,容易测试,部署的时候就一个war包,这种架构开发效率受到影响,当应用越来越大的时候,维护起来比较麻烦,改动应用小bug需要重新整体部署,部署一次也可能需要很长的时间,模块性能扩展有限

 

服务注册发现: 注册方提供信息, 服务方通过注册方的信息, 发现注册服务;

服务网关: 除了服务的信息交互,还需要与外界进行交互,所以需要暴露自己的服务,但也不能什么都暴露,就涉及到服务网关,网关可以过滤后端信息,前端配合需要路由控制引导微服务选择,因为所有的请求都会经过网关,所以还可以限流,容错,监控,日志,安全,防爬虫等等操作

后端服务,前端服务: 互相配合,完成服务的最简化业务实现. 比如后端服务提供A,B接口,前端服务可以根据业务场景拆分,聚合后端服务,将A,B合并返回或者拆分A中的一部分返回.

 

方案A: Spring全家桶 ...(本次,就决定是他了)

方案B: Dubbo服务,Zookeeper注册中心 ...

 

SpringCloud提供了微服务开发所需的配置,是一个开发工具集,有很多个子项目,开源框架

利用SpringBoot开发,方便, 基于Netflix开源组件封装,强大的微服务组件

总而言之SpringCloud简化了分布式开发,重要在理解分布式、架构特点以及组件

 

SpringCloud Eureka基于Netflix Eureka的封装,

主要两个组件: 注册中心(Eureka Server)、服务注册(Eureka Client)

 

Eureka Server 注册中心

注册中心记录服务信息,状态, 比如服务名字,运行的情况

 

创建E:/MyCloud文件夹,后续实践的应用都放在此处

利用IDEA的Spring Initializr构建一个SpringBoot项目,第一步

435d867253547a20545a95463e668c27fa8.jpg

第二步,选择Cloud Discovery-Eureka Server,并且SpringBoot版本2.0.2

11a8ca331ab4ea619cb7ad5db5095eecb85.jpg

第三步,选择我的创建路径目录E:/MyCloud

14834a92ffec9d00e19bcfa8a26c144716d.jpg

第四步,创建好了,把不需要的文件删除掉,没用

013cc1c6d13799aa84b26d70dab94b8c07f.jpg

右下角会提示说Add as Maven Project or Disable notification,

选择Add as Maven Project,加载一会就好了, 最后的目录展示 

aa9d0ffebbbc44b3b14cbccd4daf4157088.jpg

如果觉得com.server.eureka不爽,不想叠在一起,可以按下图设置一下,

把Hide Empty Middle Packages的勾去掉

60886c19170d489e9b902e550413611f9f3.jpg

再启动类上加一个注解@EnableEurekaServer,标识他是EurekaServer注册中心

b500d1cd85b34afac4296b354aff2623dde.jpg

启动项目的时候会报一些错,先不管,访问一下localhost:8080,成功 如下

33f47173f4503c65d5f33d636e7e448d65d.jpg

Instances currently registered with Eureka是注册服务列表

目前只有Server,还没有建立Client,所以是空的

 

回来看控制器报错的原因,关于@EnableEurekaServer注解

Cannot execute request on any known server

因为他虽然被标识为Server,但他自己同时也是Client,会心跳检测Server,没有找到报错

在application.yml文件中配置,顺便加个name,运行

spring:
  application:
    name: my first eureka

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

每次不知道怎么配置的时候,可以Ctrl+左键,进入查看方法信息,或多或少可以知道点套路

f862f034fe715a30dc4a0fb6d4b95619f40.jpg

这时候,服务中心 发现了自己,name为刚刚设置的my first eureka,默认Zone也替换掉了

 

经过上面的测试,回到服务中心,我们就想他做一件事就够了,不用又做服务中心,又做注册服务的,

所以在刚刚的yml文件中加一个配置register-with-eureka: false ,对于此eureka取消注册

spring:
  application:
    name: my first eureka

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
    register-with-eureka: false

重启访问,就会发现没有注册服务了,OK完成

3ff151a7c15eb495e9c8fd30bf1dd3afe74.jpg

 

 

提示端口8080很常用,建议改一个,eureka的默认是8761

应用启动时,控制台有很多提示信息

yml 配置属性

// 将IP注册到Eureka Server上,如果不配置就是机器的主机名
eureka.instance.prefer-ip-address=true

// 设置自我保护
eureka.server.enable-self-preservation=false

// 自我保护系数(默认0.85)
eureka.server.renewal-percent-threshold=0.55

// 表示是否将自己注册到Eureka Server,默认为true
eureka.client.register-with-eureka=false

// 表示是否从Eureka Server获取注册信息,默认为true
eureka.client.fetch-registry=false

// 自动检查失效服务的间隔时间(单位毫秒)
eureka.server.eviction-interval-timer-in-ms=6000

// 设置eureka server同步失败的等待时间 默认 5分 , 在这期间,它不向客户端提供服务注册信息
eureka.server.wait-time-in-ms-when-sync-empty=5

// 设置eureka server同步失败的重试次数 默认为 5 次
eureka.server.number-of-replication-retries=5

--------------------------------------------------------

转载于:https://my.oschina.net/u/3829444/blog/1830480

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值