SpringCloud简介

 

微服务

对一整套运行的微服务集群进行管理

 

微服务框架

springcloud

一种轻量级的框架技术,服务管理中心组件只能是eureka;基于http的协议的,是服务治理组件

dubbo

阿里开源的一种高性能的优秀微服务框架,基于rpc协议的,所以性能比http协议高一些

dubbo支持微服务现成组件没有springcloud丰富

springcloud组件

eureka

springcloud中核心组件,治理服务用的(管理者)

Ribbon

服务提供者中,作为调用端可以使用的集中组件技术

由以上2个组件就能形成最基本的微服务框架的结构

Zuul网关

每个微服务是不能被外界直接访问的,需要通过整个集群的唯一入口访问集群的每一个服务,控制访问路由,或过滤

config配置

每个服务公用配置文件 log4j.xml,application.properties等等都可用有config组件维护,公用

hystrix

服务熔断组件;解决服务调用中由于某个服务的故障导致整个微服务集群的瘫痪

feign

和ribbon是一样的,唯一的区别是使用方式.利用注解声明式的使用(开发起来方便),封装调用公用服务的客户端

 

eureka介绍

服务注册中心

管理当前微服务集群中的所谓服务

通过注册和发现的方式来管理

所有被拆分的微服务都会提供一个服务名称注册在注册中心,方便后期维护和使用

服务的提供者

拆分后的每一个独立运行的系统

根据配置指定到某一个/ 某几个注册中心,实现服务的注册

服务调用者

服务调用者可以是外界

可以是zuul网关

可以是ribbon的一个进程系统

通过在服务注册中心获取后端服务实例,决定访问哪些服务

 

eureka注册中心

pom.xml

  1. parent继承

  2. dependencyManagement

将springcloud的大量依赖声明的资源导入当前工程

  1. dependency 中的 artifactId

spring-cloud-starter-eureka-server 与客户端有所区别

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion><groupId>com.wiscom</groupId>
  <artifactId>eureka-server01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
    
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
  </parent>
  <name>eureka-server01</name>
  <url>http://maven.apache.org</url><properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties><dependencies>
      <!-- 配置为eureka的服务器端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
      
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
      
  </dependencies>
    
    <!-- 导入springcloud的依赖声明 -->
  <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
</dependencyManagement>
</project>

 

src/main/resourses

application.properties

eureka.instance.hostname

配置eureka服务端的访问域名

eureka.instance.PreferipAddress

优先使用ip作为通信的访问地址

eureka.client.registerWithEureka

service是否也要作为客户端进行注册

eureka.client.fetchRegistry

server作为客户端在自己的抓取服务

eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka

eureka注册中心的访问地址接口,别的地址请求注册的地址

eureka.server.enable-self-preservation

是否开启自我保护机制

    server.port=8888
    #Eureka
    eureka.instance.hostname=localhost
    eureka.instance.PreferipAddress=true
    eureka.client.registerWithEureka=false
    eureka.client.fetchRegistry=false
    eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka
    eureka.server.enable-self-preservation=false

 

 

src/main/java

StarterEurekaServer.java
package com.wiscom;
​
@SpringBootApplication
//启动eureka注册中心的进程
@EnableEurekaServer
public class StarterEurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(StarterEurekaServer.class, args);
    }
}

 

eureka的客户端

pom.xml

  1. parent继承

  2. dependencyManagement

将springcloud的大量依赖声明的资源导入当前工程

  1. dependency 中的 artifactId

spring-cloud-starter-eureka 与服务端有所区别

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion><groupId>com.wiscom</groupId>
  <artifactId>eureka-server01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
  </parent>
  <name>eureka-server01</name>
  <url>http://maven.apache.org</url><properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties><dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
    
  <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
</dependencyManagement>
    
</project>

 


 

src/main/resourses

application.properties
server.port=9001
# service name
spring.application.name=service-hi
#Eureka client
eureka.instance.PreferipAddress=true
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=false
eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka

 

src/main/java

com.wiscom
StarterEurekaClient01
package com.wiscom;
​
@SpringBootApplication
//启动eureka注册中心的进程
@EnableEurekaClient
public class StarterEurekaClient01 {
    public static void main(String[] args) {
        SpringApplication.run(StarterEurekaClient01.class, args);
    }
}
 

 

posted @ 2020-08-19 20:22  minnersun  阅读(245)  评论(0编辑  收藏  举报