SpringClound-服务注册与发现

微服务

首先看一下我们传统的服务架构
这里写图片描述
比较适合小项目,优点是:

  • 开发简单直接,集中式管理, 基本不会重复开发
  • 功能都在本地,没有分布式的管理开销和调用开销。它的缺点也非常明显,特别对于互联网公司来说(不一一列举了)
  • 开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断
  • 代码维护难:代码功能耦合在一起,新人不知道何从下手
  • 部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长
  • 稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉
  • 扩展性不够:无法满足高并发情况下的业务需求

而我们的微服务架构

  • 一组小的服务 服务粒度要小,而每个服务是针对一个单一职责的业务能力的封装,专注做好一件事情。
  • 独立部署运行和扩展
    每个服务能够独立被部署并运行在一个进程内。这种运行和部署方式能够赋予系统灵活的代码组织方式和发布节奏,使得快速交付和应对变化成为可能。
  • 独立开发和演化
    技术选型灵活,不受遗留系统技术约束。合适的业务问题选择合适的技术可以独立演化。服务与服务之间采取与语言无关的API进行集成。相对单体架构,微服务架构是更面向业务创新的一种架构模式。
  • 独立团队和自治
    团队对服务的整个生命周期负责,工作在独立的上下文中,自己决策自己治理,而不需要统一的指挥中心。团队和团队之间通过松散的社区部落进行衔接。

这里写图片描述

微服务的概念我们就简单介绍到这,接下来说一下我们SpringCLound的系列博客主要包括的内容和目的
作为比较火热的技术我会把自己的学习与遇到的问题记录于此,同时我也会不断的拓展与继续学习源码看这里
目前主要包括的内容比较入门主要有

  • 服务的注册与发现(Eureka)
  • 服务消费(feign,ribbon)
  • 服务容错(Hystrix)
  • 分布式配置(config)
  • 路由与过滤(zuul)

我们整体的项目结构
这里写图片描述

SpringClound服务注册与发现

搭建Eureka服务注册中心

Eureka项目结构
这里写图片描述
我们需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。
1.启动一个服务注册中心
只需要一个注解@EnableEurekaServer 就会将自己声明为服务注册中心

/**
 * 开启服务注册中心eureka版
 * 2018年6月15日09:21:09
 * yangzhao
 */
@EnableEurekaServer
@SpringBootApplication
public class RegistryApplication {

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

2.添加配置信息
eureka是一个高可用的组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送心跳(因此可以在内存中完成),在默认情况下erureka server也是一个eureka client ,必须要指定一个 server。eureka server的配置文件appication.yml

#服务名
spring:
  application:
    name: spring-cloud-eureka
#暴露的端口号
server:
  port: 8761
eureka:
  instance:
    hostname: localhost
  client:
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    fetch-registry: false
    register-with-eureka: false
#本身也会被当做Client,所以false来表明自己是一个eureka server.

接下来我们运行main 方法即可启动项目
访问http://localhost/8761
这里写图片描述
基于Eureka的服务注册中心搭建完毕

注册服务提供者到Eureka

Provider项目结构
这里写图片描述
服务提供者的创建很简单,我们只需要加上@EnableEurekaClient 注解即可

/**
 * 基于REST服务提供
 * 2018年6月15日09:26:54
 * yangzhap
 */
@EnableEurekaClient
@SpringBootApplication
@RestController
public class ProviderApplication {

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

    @RequestMapping(value = "/add" ,method = RequestMethod.GET)
    public Integer add(@RequestParam Integer a, @RequestParam Integer b) {
        Integer r = a + b;
        return r;
    }
}

配置文件

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8762
spring:
  application:
    name: service-provider

这里我们将配置注册中心的url(指向我们前面注册中心的ip以及端口号),并配置自己的端口号以及应用名称
启动项目即可看到应用名为service-provider 的提供者已经注册再Eureka了
这里写图片描述

本人SpringClound系列文章参考
http://blog.didispace.com/categories/Spring-Cloud/page/8/
https://blog.csdn.net/forezp/article/details/70148833
再次感谢二位作者

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值