• SpringCloud(第一天)


    1.单体应用:所有资源都在一个应用,打包成一个war包,一个Tomcat运行,运行在一个进程.

    a)  解决方案:可以做集群,但是不方便局部扩展(对某一个模块单独集群),维护,开发,升级麻烦,技术选型单一,数据库选型单一

    2.微服务:一个系统多个微小服务,每个服务专注一个业务.每个服务都有各自的进程,微服务之间通过网络通信协议进行数据交互(通常是使用HTTP的restFul风格传递)

    a)  优势:技术选型多元化,数据库选型多元化,维护方便,方便做局部拓展,每个服务都有单独的进程

    b)  Dubbo和SpringCloud

                i.     Dubbo的通信协议RPC(基于TCP通信)

               ii.     SpringCloud的通信协议HTTP对TCP进行了一次封装,性能相对于Dubbo而言较低

    3.SpringCloud

    a)  微服务入门

    b)  Maven多模块环境搭建.

      i.搭建父项目模块

    1. Pom.xml文件
      <?xml version="1.0" encoding="UTF-8"?>
      <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>cn.itsource</groupId>
          <artifactId>springboot-parent</artifactId>
          <packaging>pom</packaging>
          <version>1.0-SNAPSHOT</version>
          <modules>
      //父项目的各个子模块项目 <module>springboot-eureka</module> <module>springboot-userclient</module> <module>springboot-deptprovider</module> </modules> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR1</spring-cloud.version> <springboot.version>2.0.5.RELEASE</springboot.version> </properties> <!--版本依赖管理工具--> <dependencyManagement> <dependencies> <!--springboot版本控制--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!--springCloud版本控制--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${springboot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>

            ii.     注册中心服务端环境搭建

    1. pom.xml导包
      <dependencies>
          <!--springboot支持-->
          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
          </dependency>
          <!--Eureka服务端支持-->
          <dependency>
              <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
      // spring-cloud-starter-netflix-eureka-server包含了spring-cloud-starter-netflix-eureka-client包
          </dependency>
      </dependencies>
    2. Application.yml配置文件配置
      spring:
        application:
          name: spring-cloud-eureka
      server:
        port: 7001
      eureka:
        instance:
          hostname: localhost
        client:
          #不向Eureka注册自己
          register-with-eureka: false
          #不检查其他的EurekaServer节点
          fetch-registry: false
          service-url:
            #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址)
            defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    3. 注册中心服务启动类
      @SpringBootApplication
      @EnableEurekaServer
      public class SpringBootApplicationConfig_7001 {
          public static void main(String[] args) {
              SpringApplication.run(SpringBootApplicationConfig_7001.class,args);
          }
      }

        iii.     消费者和提供者客户端环境搭建

    1. Pom.xml
    <dependencies>
        <!--springboot支持-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Eureka服务端支持-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

       2.Application.yml配置文件配置

    spring:
      application:
        name: SPRING-CLOUD-USER
    server:
      port: 8001
    eureka:
      instance:
        hostname: localhost
      client:
        service-url:
          #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址)
          #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
          defaultZone: http://localhost:7001/eureka


           3.注册到注册中心:客户端服务启动类

    @SpringBootApplication
    @EnableEurekaClient
    public class SpringbootApplication_8001 {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringbootApplication_8001.class,args);
        }
    }

    如果有多个服务,就在父模块下面搭建多个子模块,做相同的配置进行服务注册到注册中心.

  • 相关阅读:
    [JSOI2008]最小生成树计数
    [SCOI2009]windy数
    Sql Server 存储过程
    Sql Server 表操作
    .NET WebService中使用 Session
    从头入手jenkins
    swiftlint 你所要知道的所有!!
    swiftlint swift代码规范检查神器
    使用RxSwift 实现登录页面的条件绑定
    iOS 设置不同环境下的配置 Debug Release 生产 测试 等等
  • 原文地址:https://www.cnblogs.com/8888-lhb/p/11546458.html
Copyright © 2020-2023  润新知