一、什么是微服务架构

  架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行SOA到微服务架构的演进过程

  作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想)

二、SOA架构与微服务架构区别

  SOA架构主要针对企业级、采用ESB服务(ESB企业服务总线),非常重,需要序列化和反序列化,采用XML格式传输。

  微服务架构主要互联网公司,轻量级、小巧,独立运行,基于Http+Rest+JSON格式传输。

  ESB也可以说是传统中间件技术与XML、Web服务等技术相互结合的产物。

三、SpringCloud

  SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、负载均衡、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于Springboot的,所以需要开发中对Springboot有一定的了解。

四、服务的注册与发现(Eureka )

  我们需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。

  

五、什么是Eureka

  官方的介绍在这里Eureka wiki。Eureka是Netflix开源的一个RESTful服务,主要用于服务的注册发现。Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。
  Eureka的吸引力来源于以下几点:

   开源:大家可以对实现一探究竟,甚至修改源码。

   可靠:经过Netflix多年的生产环境考验,使用应该比较靠谱省心

   功能齐全:不但提供了完整的注册发现服务,还有Ribbon等可以配合使用的服务。

   基于Java:对于Java程序员来说,使用起来,心里比较有底。

   spring cloud可以使用Spring Cloud, 与Eureka进行了很好的集成,使用起来非常方便。

六、实现服务注册

  6.1 创建EureKaserver 项目

  (1)导入依赖

      

<!--eureka依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency> <dependencyManagement>
<dependencies>
<!--springCloud依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

  (2)application.yml配置文件

##应用名称
spring:
application:
name: microservicecloud-dept
##声明当前eurekaservice的端口号
server:
port: 8888 ##配置eureka
eureka:
client:
##代表是否将自己注册到注册中心去 ##表明自己是注册中心
fetch-registry: false
##配置地址
service-url:
defaultZone: http://localhost:8888/eureka

  (3)StartSpringCloudEureka启动类

package com.zn;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication
@EnableEurekaServer //eureka服务注册中心
public class StartSpringCloudEureka {
public static void main(String[] args) {
SpringApplication.run(StartSpringCloudEureka.class,args);
}
}

  (4)效果 访问 localhost:8888

    

  

最新文章

  1. Atitit 图片 验证码生成attilax总结
  2. 帮助你实现漂亮界面的14套免费的 HTML/CSS 源码
  3. 将函数传给webworker
  4. Unable to load native-hadoop library for your platform... using builtin-Java classes where applicable
  5. android 项目学习随笔二十一(IM、语音识别、机器人、统计、扫描二维码、条形码)
  6. Linux5.8下安装PhpMyadmin无法关联php-mcrypt问题
  7. abstract修饰符,具体类与抽象类的区别
  8. Week13(12月5日):不怕错误,慢慢来 :)
  9. 关于oracle数据库(6)约束
  10. idea 注册机生成密钥代码
  11. ios开发数据库版本迁移手动更新迭代和自动更新迭代艺术(二)
  12. Android路由框架-ARouter详解
  13. 全文索引搜索whoosh
  14. mysql命令行怎么清屏
  15. Ubuntu下架设FTP服务器
  16. 20145122《敏捷开发与XP实践 》实验三实验报告
  17. gulp 打包报错:Error: `libsass` bindings not found. Try reinstalling `node-sass`
  18. 因为yii2中jquery位置默认在最下方,可将自定义js位置放在下方
  19. iOS 信号量解决-网络异步请求的数据同步返回问题
  20. Memcache+Cookie替代Session解决方案(MVC版)

热门文章

  1. Python用正则表达式匹配汉字
  2. Prometheus 安装
  3. centos 7 MysSQL 5.7.23 源码安装
  4. 使用Feign访问接口
  5. 不给糖果就捣乱,用Python绘制有趣的万圣节南瓜怪【华为云分享】
  6. [动图演示]Redis 持久化 RDB/AOF 详解与实践
  7. poi-tl二次开发
  8. VBA/Excel-实例系列-04-求两个数组的交集
  9. AtCoder-3867
  10. LeetCode--300. 最长递增子序列