​ Spring Cloud 是一系列框架的有序集合.它利用 Spring Boot 的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务注册.服务发现.配置中心.消息总线.负载均衡.断路器.数据监控等,这些都可以用 Spring Boot 的开发风格做到一键启动和部署. 通俗地讲,Spring Cloud 就是用于构建微服务开发和治理的框架集合(并不是具体的一个框架),主要贡献来自 Netflix OSS. Spring Cloud 模块介绍 Spring Cloud 模块的相关介绍如下…
​ Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能. Spring Cloud Eureka 是一个基于 REST 的服务,并且提供了基于 Java 的客户端组件,能够非常方便地将服务注册到 Spring Cloud Eureka 中进行统一管理. 服务治理是微服务架构中必不可少的一部分,阿里开源的 Dubbo 框架就是针对服务治理的.服务治理必须要…
​ 在 Spring Tools 4 for Eclipse 中依次选择 File->New->Maven Project,然后在出现的界面中按图所示增加相关信息. ​ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE&…
​ 我们先从 Nginx 说起,了解为什么需要微服务.最初的服务化解决方案是给相同服务提供一个统一的域名,然后服务调用者向这个域发送 HTTP 请求,由 Nginx 负责请求的分发和跳转. 这种架构存在很多问题:Nginx 作为中间层,在配置文件中耦合了服务调用的逻辑,这削弱了微服务的完整性,也使得 Nginx 在一定程度上变成了一个重量级的 ESB.图中标识出了 Nginx 的转发信息流走向. ​ 服务的信息分散在各个系统,无法统一管理和维护.每一次的服务调用都是一次尝试,服务消费方并不知道有…
​ 首先创建一个 Maven 项目,取名为 eureka-server,在 pom.xml 中配置 Eureka 的依赖信息,代码如下所示. <!-- Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.R…
​ Spring Boot 的便利性体现在,它简化了很多烦琐的配置,这对于开发人员来说是一个福音,通过引入各种 Spring Boot Starter 包可以快速搭建出一个项目的脚手架推荐分布式架构源码. 目前提供的 Spring Boot Starter 包有: spring-boot-starter-web:快速构建基于 Spring MVC 的 Web 项目,使用 Tomcat 做默认嵌入式容器. spring-boot-starter-data-redis:操作 Redis. sprin…
​Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式进行配置,从而使开发人员不再需要定义样板化的配置. Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 在使用 Spring Boot 之前,我们需要搭建一个项目框架并配置各种第三方库的依赖,还需要在 XML 中配置很多内容. Spring Boot 完全打破了我们…
​ 开发环境的准备主要涉及三个方面:JDK.Maven.Spring Tools 4 for Eclipse. 1.JDK JDK 的版本用 1.8 即可,环境变量大家自行去配置.配置好环境变量,在命令行中输入"java -version"能够显示出版本信息即可,如图所示. ​ 2.Maven Maven 是用于项目构建的,教程所用的版本是 3.6.安装完之后也需要配置环境变量,配置好后同样需要在命令行中输入"mvn -version"进行检测,如图所示. ​ 3.…
​ "微服务"一词来源于 Martin Fowler 的<Microservices>一文.微服务是一种架构风格,即将单体应用划分为小型的服务单元,微服务之间使用 HTTP 的 API 进行资源访问与操作. 在笔者看来,微服务架构的演变更像是一个公司的发展过程,从最开始的小公司,到后来的大集团.大集团可拆分出多个子公司,每个子公司的都有自己独立的业务.员工,各自发展,互不影响,合起来则是威力无穷. 臃肿的系统.重复的代码.超长的启动时间带给开发人员的只有无限的埋怨,丝毫没有…
大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际中会集成多个,这样保存的数据的时候,选择一个最方便的也就是JPA,查询的时候,或者统计的时候,选择一个效率最高的,也就是直接使用SQL语句方式,当然这并一定要这样的,现在优化方式又很多.那么这节说说怎么在Spring Boot中使用MyBatis吧.主要分几个步骤进行讲解: (1)新建maven p…