博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Cloud搭建微服务架构----前言
阅读量:7171 次
发布时间:2019-06-29

本文共 1270 字,大约阅读时间需要 4 分钟。

hot3.png

前言

每个微服务都是六边形应用,都有自己的业务逻辑和适配器。服务之间通过API互相通信,提供接口供客户端使用。每个实例可能是一个云VM或者是Docker容器。

之前的web应用拆分成一系列简单的服务应用。拆分之后可以对不同用户,不同设备,不同场景进行自行部署。

微服务之间通过REST API或者MQ异步方式通信,供外网使用的API,通过Gateway来传递信息。

微服务的拆分,不像传统多个服务共享一个数据库,微服务架构每个服务都有自己的数据库,每种服务都可以有自己适合的数据库类型。

微服务好处

  1. 分解了单体应用提供多个服务的复杂性问题,拆分之后每个服务都有一个用RPC或是MQ或是API定义的边界。由于传统单体应用没有清晰的边界,存在开发,理解,维护,部署的复杂问题;
  2. 每个服务都可以有单独的团队维护开发,开发者客户选择自己擅长和合适的技术;
  3. 每个服务都可以独立部署,开发者不需要协调因其他服务调用,部署对本服务的影响。加快部署速度,更好的执行AB测试。持续部署变为可能。
  4. 每个服务都可以独立扩展。

微服务不足

  1. 需要考虑和关心更多服务之间调用的问题。
  2. 需要考虑多个服务的编排和依赖关系,包括开发和部署。
  3. 多个服务的配置,部署,扩展,监控。

微服务的特征

  1. 每个服务仅仅对单个业务负责,这个业务也是这个服务的完整容量;
  2. 每个微服务都可以独立部署,不需依赖其他服务的相关资源,如数据库,内存缓存等;
  3. 轻量级的通信协议,如REST,AMQP等;
  4. 服务具有可代替性,每个服务原则上都可以被不同的开发语言,开发框架进行技术实现,替换后不影响原有微服务对外提供的功能;
  5. 每个服务拥有自己独立的数据存储;
  6. 每个微服务由小的团队维护,服务以业务单元进行拆分;
  7. 服务之间可通过组成聚合服务对外提供较粗粒度的服务功能;

微服务名词

  • Gateway:为客户端提供API管理功能,负责负载均衡,缓存,访问控制,API计费监控等任务,可通过Eureka或者NGINX实现;
  • 服务注册于发现模块;
  • 断路器;

微服务选型

  • Dubbo,DubboX(不再维护);
  • Spring Cloud(集成框架);
  • Motan(微博平台);
  • Thrift,gRPC(算不上框架);

本次主要使用Spring Cloud;

基础框架选择 Spring Cloud和Dubbo:

  • Dubbo: 国内影响力较大,实现了服务治理的基础,但是完成一个完备的微服务架构,还需要在各环节去扩展和完善以保证集群健康,文档较稳定。
  • Spring Cloud: 国外影响大,社区活跃度领先,将成熟框架融为一体,继承了Spring Boot的简单配置,快速开发,部署轻松特点,更新较快,文档有差异。

日志监控

由Docker通过Syslog日志驱动将日志写入Logstash,参照ELK解决方案。

Devops

使用Docker作为微服务交付标准组件。

集成Docker

通过Consul集成Docker。

转载于:https://my.oschina.net/u/1000241/blog/882929

你可能感兴趣的文章
Mysql数据库备份和还原
查看>>
静态路由原理及实验
查看>>
unity自带的水
查看>>
mysql 备份数据库脚本
查看>>
Linux文件系统上的特殊权限
查看>>
mysql四:数据操作
查看>>
Activity ca.ct.activity.OBaccaratActivity has leak
查看>>
Linux下 vi 操作Found a swap file by the name
查看>>
技术加油站:5月19日,技术大佬等你来撩
查看>>
Confluence 6 Microsoft SQL Server 设置准备
查看>>
android: BaseAdapter和ListView简单运用(08)
查看>>
服务器搭建:3.2、openresty图片压缩之 lua调用GraphicsMagick
查看>>
扫描识别控件Dynamic Web TWAIN v12.3.1发布,更新服务证书丨附下载
查看>>
windows环境中不重启电脑杀死占用某个端口的进程
查看>>
Kubernetes上的负载均衡详解
查看>>
iOS——重写Cell分割线
查看>>
Mongodb 之 安全权限控制
查看>>
httpclient发送网络请求
查看>>
可自动切换登录不同系统测试实例
查看>>
【JAVA的 IO流之FileInputStream和FileOutputStream】
查看>>