1. 创建一个Eureka-server服务,用于注册服务
选取需要的依赖,注意选择spring boot为1.5.XX的,2.0还不稳定,估计玩的转的人不多:
2. 修改配置文件application.yml或者application.yaml
至于为什么使用application.yaml或appliation.yml而不是用application.properties呢,主要有连个原因:一是application.properties的后缀名太长了,不方便记忆;二是application.properties配置中文值的时候,读取出来的属性值会出现乱码问题。但是 application.yml 不会出现乱码问题。原因是,Spring Boot 是以 iso-8859 的编码方式读取 application.properties 配置文件。
注意这里还有个坑:
如果定义一个键值对 user.name=xxx ,这里会读取不到对应写的属性值。为什么呢?SpringBoot 的默认 StandardEnvironment 首先将会加载 “systemEnvironment" 作为首个PropertySource.而 source 即为System.getProperties().当 getProperty时,按照读取顺序,返回 “systemEnvironment" 的值,也就是你电脑的名字,在这儿:
另外说一句,idea自带的yaml插件未必有效,如果无效,请自己下载并导入到idea,图中第二个就是我自己安装的:
切回正题,因为是微服务开发,并且都在同一台主机上,所以我们一开始就要做好端口规划。这里我使用8700-8710 作为注册服务中心。
修改配置文件为:
为什么明明时服务器,却要配置个client呢?
因为eureka是一个高可用的组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送心跳(因此可以在内存中完成),在默认情况下erureka server也是一个eureka client ,必须要指定一个server
3.在启动类上添加注解
Spring团队对erueka做了很多内置的配置和优化,使我们很方便的使用一个注解就可以实现服务端注册。
4.运行服务
Eureka是有图形界面的,我们打开浏览器,访问http://localhost:8700/,如图则代表成功:
5. 创建一个服务的提供商,将其注册在eureka服务上:
注意选右边一个:
6.更改配置文件application.yml
注意:服务提供商端口我们暂定为从8080端口开始
7. 添加注解
8.运行工程,刷新eureka的主页,可以看见服务已经注册上去了
关于红字部分,我也不太懂,属于正常情况,产生原因我在网上复制了一段:
Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况(在单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致),Eureka Server会将当前的实例注册信息保护起来,同时提示这个警告。保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。
如果你觉得主机名注册太难看,可以用IP地址注册的话,在application.yaml文件中添加配置:
9.添加测试代码,方便起见,直接写在启动类上了,注意添加restful注解:
10. 重启user-server,刷新eureka注册页面,点击注册上的服务,可以看到: