Spring Cloud微服务实战(一)

1、单体架构是什么?

一个归档宝包含了所有功能的应用程序,我们通常称之为单体应用。

架构单体应用的机构风格,我们称之为单体架构,这是一种比较传统的架构风格。

2、单体架构存在的缺点

复杂性逐渐变高

技术债务逐渐上升

部署速度逐渐变慢

阻碍技术创新

无法按需伸缩

3、架构的演进

单体架构

soa(面向服务的架构)

微服务

4、什么是微服务

Martin Fowler:简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。

来自:http://www.martinfowler.com/articles/microservices.html

5、微服务具备的特性

每个微服务都可以运行在自己的进程中

一系列独立运行的微服务共同构建起了整个系统

每个服务为独立的业务开发

每个服务之间通过轻量级的通信机制进行通信,例如rest api 或者rpc的方式进行调用

6、微服务优点

易于开发和维护

启动较快

局部修改容易部署

技术栈不受限制

按需伸缩

devops可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集

7、微服务带来的挑战

运维要求较高

分布式的复杂性

接口调整成本高

重复劳动

8、微服务设计原则

单一职责原则

服务自治原则

轻量级通信原则

接口明确原则

9、微服务开发框架浅谈

Spring Cloud:http://projects.spring.io/spring-cloud

Dubbo:http://dubbo.io

Dropwizard:http://www.dropwizard.io

Consl、etcd &etc.

10、服务注册与发现

服务消费者(web)

application.yml

server:

port: 8080

服务提供者(jpa/web/h2)

application.yml

server:

port: 8080

spring:

jpa:

generate-ddl: false

show-sql: true

hibernate:

ddl-auto: none

datasource:

platform: h2

schema: classpath:create.sql

data: classpath:data.sql

logging:

level:

root : INFO

org.hibernate : INFO

org.hibernate.type.descriptor.sql.BasicBinder : TRACE

org.hibernate.type.descriptor.sql.BasicExtractor : TRACE

com.provider : DEBUG

使用euraka实现服务注册与发现

@Value("${user.userServicePath}")

对应的配置方式为application.yml:

user:

userServicePath :

你可能感兴趣的:(Spring Cloud微服务实战(一))