SpringCloud之注册中心Demo(服务注册治理SpringCloud Eureka) from 饭团霸霸叫杨少君

  1. 什么是服务治理
    在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

  2. 服务注册与发现
    在服务注册与发现中,有一个注册中心,当服务器启动的时候,会把当前自己服务器的信息 比如 服务地址通讯地址等以别名方式注册到注册中心上。
    另一方(消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,让后在实现本地rpc调用远程。


    rpc核心.png

    服务注册与发现原理.png

    负载均衡.png

    注册中心原理.png
  3. 注册中心环境搭建
    3.1 注册中心环境搭建
    3.1.1 Maven依赖信息 pom.xml
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    </parent>

    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Finchley.M7</version>
    <type>pom</type>
    <scope>import</scope>
    </dependency>
    </dependencies>
    </dependencyManagement>
    <dependencies>

    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    </dependencies>

    <repositories>
    <repository>
    <id>spring-milestones</id>
    <name>Spring Milestones</name>
    <url>https://repo.spring.io/libs-milestone</url>
    <snapshots>
    <enabled>false</enabled>
    </snapshots>
    </repository>
    </repositories>
    3.1.2 application.yml
    ###服务端口号
    server:
    port: 8100
    ###eureka 基本信息配置
    eureka:
    instance:
    ###注册到eurekaip地址
    hostname: 127.0.0.1
    client:
    serviceUrl:
    defaultZone: http://{eureka.instance.hostname}:{server.port}/eureka/
    ###因为自己是为注册中心,不需要自己注册自己
    register-with-eureka: false
    ###因为自己是为注册中心,不需要检索服务
    fetch-registry: false
    3.1.3 启动Eureka服务
    @EnableEurekaServer
    @SpringBootApplication
    public class AppEureka {
    public static void main(String[] args) {
    SpringApplication.run(AppEureka.class, args);
    }
    }
    3.2 注册服务提供者
    项目案例:实现会员服务(提供者)springcloud-2.0-member调用订单服务(消费者)springcloud-2.0-order
    3.2.1 服务提供者 会员服务
    application.yml

    服务启动端口号

server:
port: 8000

服务名称(服务注册到eureka名称)

spring:
application:
name: yangshaojun-member-app

服务注册到eureka地址

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

因为该应用为注册中心,不会注册自己

register-with-eureka: true

是否需要从eureka上获取注册信息

fetch-registry: true

@RestController
public class MemberController {
@RequestMapping("/getMember")
public String getMember() {
return "this is getMember";
}
}

@SpringBootApplication
@EnableEurekaClient
public class AppMember {
public static void main(String[] args) {
SpringApplication.run(AppMember.class, args);
}
}
3.2.2 服务消费者订单服务

服务启动端口号

server:
port: 8001

服务名称(服务注册到eureka名称)

spring:
application:
name: yangshaojun-order-app

服务注册到eureka地址

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

因为该应用为注册中心,不会注册自己

register-with-eureka: true

是否需要从eureka上获取注册信息

fetch-registry: true

@RestController
public class OrderController {
@Autowired
private RestTemplate restTemplate;

@RequestMapping("/getorder")
public String getOrder() {
    // order 使用rpc 远程调用技术 调用 会员服务
    String memberUrl = "http://yangshaojun-member-app/getMember";
    String result = restTemplate.getForObject(memberUrl, String.class);
    System.out.println("会员服务调用订单服务,result:" + result);
    return result;
}

}

@SpringBootApplication
@EnableEurekaClient
public class AppOrder {

public static void main(String[] args) {
    SpringApplication.run(AppOrder.class, args);
}

@Bean
@LoadBalanced
RestTemplate restTemplate() {
    return new RestTemplate();
}

}

服务注册信息.png
  1. 注册中心集群搭建
    4.1 Eureka注册中心2个应用,在配置中互相注册自己。
    4.2 服务提供者和消费者分别将自己注册到2个注册中心。
WeChat Image_20190801004110.png

WeChat Image_20190801004303.png

WeChat Image_20190801004255.png

WeChat Image_20190801004308.png

WeChat Image_20190801004628.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容