2019-07-15

Springcloud分布式的简介与学习(一):


1,先来看看官网对spring cloud的定义:

Spring Cloud offers a simple and accessible programming model to the most common distributed system patterns, helping developers build resilient, reliable, and coordinated applications.

2,再来看看整个spring cloud的architecture 


可以看出spring cloud的意义在于推出了一个基于spring的全链路方案,包括gateway,tracing,microservices,configCenter,service registry等等,中小型公司在基于spring cloud和springBoot的基础上进行搭建系统的话,只要稍作定制化便能很快的搭建起一个能支撑一定量qps和数据的系统 

3,基于Spring Cloud搭建分布式配置中心

(1)首先简单浏览一下我们要搭建的config center的architecture: 


1.git repository作为配置的存储地 2.Config Server设置两台作为高可用 3.eureka server设置两台注册中心作为高可用 4.config client作为客户端获取配置

(2)下面看看关键代码:

1.配置eureka注册中心:

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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo_eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo_eureka</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

2,application.yml:

server:

  port: 8888

spring: application:

name: eurka-server security: user: name: admin password: 123456eureka: client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@127.0.0.1:${server.port}/eureka/

3,DemoEurekaApplication启动器

package com.example.demo_eureka;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

import org.springframework.security.config.annotation.web.builders.HttpSecurity;

import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;

import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@SpringBootApplication

@EnableEurekaServer

public class DemoEurekaApplication {

    public static void main(String[] args) {

        SpringApplication.run(DemoEurekaApplication.class, args);

    }

    @EnableWebSecurity

    public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {

        @Override

        protected void configure(HttpSecurity http) throws Exception {

            http.csrf().disable();

            super.configure(http);

        }

    }

}

4,访问截图:


搭建完毕
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容