---恢复内容开始---

[toc]

写在前面

我在软件行业浸泡了近十年时间,一直在做OA以及平台方面研发,带了几年团队,近两年玩过贸易、金融,现在是一名自由职业者。

近年来互联网创业浪潮一波赶过一波,技术也随着业务的提升一步步向前进,从单机模式到多机部署再到soa服务化,再到近两年微服务炙手可热;凭心而论,这些软件架构有优劣之分吗?我个人认为是没有的,之所以会有这些的架构演变,完全是因为通过互联网,大家的业务越做越大,越做越复杂,用户量也越来越多,准确的说之所以有这么多高级的软件架构,完全是因为被业务量、用户量所倒逼出来的。

如今还有单机模式的互联网应用吗?我想也应该是有的,比如广大的个人站长们,难道他们的模式就不代表先进的生产力吗?我不觉得,反而我觉得他们是互联网中最有活力的存在,软件只是工具,业务才是核心,只有越来越大的业务才有更先进的工具,你让站长们刚刚开始就上微服务,岂不是本末道置,总之一句话,请遵循业务规则,并重视业务,节约成本,要知道适合自己的才是最好的。

BB了这么多,最后分享一个问题,我们学微服务框架有用吗?当然有用,雷军说:“站在风口上,猪也会飞”,想想以前互联网中小企业因为技术而限制业务发展也是头疼,现在好了,spring全家桶帮我们解决了中小企业一直来的技术问题,现在有很多中小企业,甚至包括一线大厂也开始对其使用,为了老婆的迪奥,孩子的奥利奥,加油,学吧!

对于我自己来说,身处互联网时代却没有积极拥抱互联网,不失为遗憾。抱着学习的态度做了这个实战教程,希望自己能重拾初心,也希望能与广大网友共勉,共进步。

1.资料目录

Spring Cloud中文学习网:https://springcloud.cc/

Spring Cloud英文学习网:http://cloud.spring.io/spring-cloud-static/spring-cloud.html

2.环境介绍

工程环境:mac os + jdk 1.8.0_x + maven2 + sts 3.9.x + git

工程依赖:springboot 2.1.1 + springCloud Greenwich.RC2

3.eureka注册中心

3.1 创建工程

第一步:通过sts创建一个spring starter project

第二步:点击“next”,出现如下界面,选择Cloud Discovery下的Eureka Server:

第三步:点击“finish”,等待sts下载各个相关的jar包即可,最终形成效果如下图:

3.2 启动工程

简单的几个步骤,来启动eureka注册中心

  1. 我们改变一下server port,改一下application.properties后缀,为applicaiton.yml,加入server:port: 9000,改这个是一个习惯问题,不改也可以用。
  2. MircoServiceEurekaApplication加入“@EnableEurekaServer”,这个得解释一下,后面的教程中不再解释这些,这个注解从字面上理解是开启eureka server,实际上就是通过这个注解告诉我们要启动的应用,而Spring Cloud已经帮我们把这个eureka集成好了,我们配置配置就可以使用了,这也是为什么Spring Cloud能成为业界主流的原因。
  3. 正常启动就行了,看一下启动后的界面。

4.亲测的注意事项

  • eureka是需要依赖springboot的父工程,在微服务中一般是单独做为工程启动的,注意不要与业务工程产生混淆,如果需要公司级的依赖关系,可以在“<dependencyManagement>”加入如下代码:
			<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
  • springboot的版本与springCloud的版本是配套的且一一对应的,两者的版本要兼容。
  • eureka在spring建工程时规定的jdk版本是1.8.0或者11,如果出现tomcat无法启动,一定要检查一下jdk版本。
  • @EnableEurekaServer配置后无法启动的情况也是jdk版本问题,总之使用jdk1.8.0就对了,不要使用过高的版本,我就用过jdk10启动过,傻呼呼的启了几个小时。
  • 启动后发现eureka界面无法访问,一般是springboot与springCloud的版本不兼容,当然如果不加@EnableEurekaServer的话界面也是无法访问的。

5.eureka注册中心集群高可用

注册中心的重要性,不言而喻,既然是中心,那么说明要负担很多任务,如何把注册中心配置成高可用的呢?现在我们就来学习一下,一个工程启动多个eureka注册中心。

springboot在启动可以指定参数,指定你要使用的配置文件类型,一般来说我们分为开发、测试、生产三个环境,但是如果我们要在一个工程里面启动三个一样类型的环境怎么做呢?

首先我不建议在微服务项目中大家继续使用如下规则:

application.yml

application-test.yml

application-dev.yml

application-pro.yml

最后在在application.yml中指定你要使用的环境。

我们先看一下我一般定义的命名规则:

{app-name}-{node-x}-dev.yml

{app-name}-{node-x}-test.yml

{app-name}-{node-x}-pro.yml


其中app-name代表你的应用名称,一般建议与spring.application.name一致。

node代表是否集群服务。

x可以自己定义,可以是数字,也可以是ip。

最后是开发、测试、生产环境的区分。

接着上面的例子,我们把例子中的application.yml名称改为eureka-node-1-test.yml,然后复制两个分别命名为eureka-node-2-test.yml,最后是eureka-node-3-test.yml。如图示:

然后我们修改eureka-server-node-1-test.yml的内容如下:

server:
port: 9001 spring:
application:
name: eureka-server #给你的微服务应用起一名字 eureka:
client:
serviceUrl:
defaultZone: http://localhost:9002/eureka/,http://localhost:9003/eureka/

接着按同样的方式依次将node-2和node-3中的port修改为9002,9003,将defaultZone的把除自己之外的两个地址修改。然后打开debug config,在Arguments里面加入如下参数:

最后我们复制两个,然后依次启动这三个服务,这样我们的eureka server的集群部署就完成了。最终效果如图所示:

至此我们的eureka集群就完成了。

6.结语

首先,这是我第一次写教程类文章,为了区别与其他教程,我准备不讲任何概念,我觉得能玩到spring cloud这步的“猿类”们,基本上对软件架构、各种理念都有了解,而且基本上都有自己的理解。对此不理解的朋友们,请自行百度一下相关的概念。

我更希望更多刚接触spring cloud的朋友们,能通过你的手指去感知它,而不是仅仅存在听别人说,听别人讲,或者自己臆想的东西。在编程领域能动手的绝不动口,我以前的一个导师就说过,同样的程序写二十遍,基本上能学的东西都融会贯通了。

好了,第一篇文章废话有点多,后面不会有了。

SpringCloud实战之初级入门(一)— eureka注册中心的更多相关文章

  1. SpringCloud微服务小白入门之Eureka注册中心和服务中心搭建示例

    一.注册中心配置文件 代码复制区域: spring: application: name: spring-cloud-server server: port: 7000 eureka: instanc ...

  2. SpringCloud实战之初级入门(二)— 服务注册与服务调用

    目录 1.环境介绍 2.服务提供 2.1 创建工程 2.2 修改配置文件 2.3 修改启动文件 2.5 亲测注意事项 3.服务调用 3.1 创建工程 3.2 修改配置文件 3.3 修改启动文件 3.4 ...

  3. SpringCloud实战之初级入门(三)— spring cloud config搭建git配置中心

    目录 1.环境介绍 2.配置中心 2.1 创建工程 2.2 修改配置文件 2.3 在github中加入配置文件 2.3 修改启动文件 3. 访问配置中心 1.环境介绍 上一篇文章中,我们介绍了如何利用 ...

  4. SpringCloud系列(一):Eureka 注册中心

    在演示spring cloud之前得要知道我们为什么需要微服务框架. 先讲讲我的经历,以前我们做项目时所有功能都写在一起,只是做了分层(模型,数据,业务),所有业务逻辑都写在业务层,刚开始还好,等时间 ...

  5. Spring Cloud实战之初级入门(四)— 利用Hystrix实现服务熔断与服务监控

    目录 1.环境介绍 2.服务监控 2.1 加入依赖 2.2 修改配置文件 2.3 修改启动文件 2.4 监控服务 2.5 小结 3. 利用hystrix实现消费服务熔断 3.1 加入服务熔断 3.2 ...

  6. SpringCloud的入门学习之深入理解Eureka注册中心

    1.Eureka 注册中心三种角色. 答:a.Eureka Server,注册中心,通过 Register.Get.Renew 等接口提供服务的注册和发现. b.Application Service ...

  7. SpringCloud之eureka注册中心入门

    eureka注册中心 一.基本概念 SpringCloud封装 了Netflix公司的eureka作为自己微服务的注册中心.这个注册中心和dubbo中的zookeeper很相似,简单来说,只要你可以将 ...

  8. Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新

    目录 1.环境介绍 2.配置中心服务化 2.1 改造mirco-service-spring-config 2.2 改造mirco-service-provider.mirco-service-con ...

  9. spring cloud 专题一 (spring cloud 入门搭建 之 Eureka注册中心搭建)

    一.前言 本文为spring cloud 微服务框架专题的第一篇,主要讲解如何快速搭建spring cloud微服务及Eureka 注册中心 以及常用开发方式等. 本文理论不多,主要是傻瓜式的环境搭建 ...

随机推荐

  1. 【CF453D】 Little Pony and Elements of Harmony(FWT)

    题面 传送门 设\(a\)的递推公式为 \[a_i=\sum_ja_jb[count(i\oplus j)]\] 其中\(\oplus\)为异或,\(count(i)\)表示\(i\)的二进制中\(1 ...

  2. CH5102 Mobile Service

    CH5102 Mobile Service 描述 一个公司有三个移动服务员,最初分别在位置1,2,3处.如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去.某一时刻只有一 ...

  3. TX2之多线程读取视频及深度学习推理

    背景 一般在TX2上部署深度学习模型时,都是读取摄像头视频或传入视频文件进行推理,从视频中抽取帧进行目标检测等任务.对于大点的模型,推理的速度是赶不上摄像头或视频的帧率的,如果我们使用单线程进行处理, ...

  4. Kettle配合Windows执行计划实现定时实行作业

    一般作业做好后需要做成定时任务,Kettle可以借助Windows的执行计划来完成.那么可以通过写批处理的方式让执行计划来调用. 其中Kitchen和Pan都可以做定时执行,一个是针对作业,一个是针对 ...

  5. PHP 数字金额转换成中文大写金额的函数 数字转中文

    /** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($ ...

  6. Android的崩溃类型总结

    看了篇腾讯的沙龙分享,觉得很不错,在这里分享给大家 crash的大致划分:

  7. (C语言逻辑运算符!)&&两种定义字符串的方法&&局部变量、全局变量&&内部函数、外部函数。(新手基础知识备忘录)

    (一)      四个逻辑运算符:!(逻辑非) ||(或) &&(与) ^ (异或) 位运算:&(与) |(位或) (二)        如何定义字符串: 1,字符串常量   ...

  8. oracle闪回(flashback)的部分实用操作(彻底删除的除外)

    一.数据delete并且commit提交之后的闪回 (一):根据时间来恢复:1.查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点)select  ...

  9. TR-069_Amendment-4:附录G.穿越NAT网关的连接请求方式

    注意:这种机制只适用于RFC 3489[21]中定义的经典STUN,RFC 5389引入后,这个机制已经过时.这个机制不是设计用于RFC 5389中定义的STUN.IPv6部署要么不使用NAT,要么以 ...

  10. LCA(最近公共祖先)

    学习链接:https://baike.baidu.com/item/%E4%BC%B8%E5%B1%95%E6%A0%91/7003945?fr=aladdin 求LCA的方法有很多,在这里就只介绍一 ...