初见微服务之架构概述

一、应用背景

随着计算技术的进步,内存、CPU、磁盘等资源不再是稀缺的,计算机作为应用程序的载体从单服务器转变为多服务器,集中计算演化为分布式计算。原有的“巨石”应用难以适应业务的发展速度,可扩展、自适应的能力不足,程序员面对着数以万计的源代码文件抓耳挠腮(O M G!),越来越多的工程师渴望小而美、易于扩展的架构体系,微服务应运而生。自2005年首次由Peter Rodgers提出微服务概念以来,风靡一时,随着近些年的发展,已经逐步被千万企业所采用,多数为互联网企业。我于工作半年之后有幸参与到后端微服务架构迁移的产品设计和开发中,有些体会,与大家分享。

二、设计原则

  • SRP(Single Responseble Principle)即单一职责原则,每一个服务提供者仅暴露自己职责范围内的接口,操作职责范围内的DB,不继承其他服务提供者的协议。简单点说,该你干的才去干,不该干的调用其他人的服务来干。
  • RESTful,作为Web Service的替代者,其面向资源的特性注定是为微服务而生的,接口设计符合REST设计原则将使服务易于理解和接受。需要注意的是,灵活的使用,而不是生硬的照搬REST设计,如保持请求风格一致,GET/POST,少用DELETE/PUT(仁者见仁,智者见智);保证同类资源前缀的一致性等。REST和RPC的优劣如表2-1。说一下可扩展性吧,RPC多以client拥有server的interface来实现通信,当接口变动后,client必须马上升级,而REST的接口协议可以不强制升级。
     
    响应时间
    用户友好程度
    可扩展性
    REST

    ***


    *****


    *****

    RPC

    *****


    **


    ****

  • 协议,也就是实体或者Bean了,作为各个服务组件共有的内容,是组件之间调用的桥梁。服务组件之间的调用通过协议进行调用,协议尽量不去彼此继承。如果说微服务是个分布式的世界,那么协议就是这个世界的法律文书(感觉很严肃的样子)。

三、架构图

关键点:

1.服务注册中心,zookeeper集群作为分布式调度中心,各个服务注册在zookeeper之上,注册内容包括服务的请求url,请求ip地址和端口,服务组件名称,注册时间等;

2.Gateway,服务网关作为系统的入口,具有服务转发、授权验证、负载均衡等作用,使用高并发框架netty实现高速转发等;

3.访问控制服务,用户首先需要获得系统授权才可以访问业务服务,授权通过token来实现;

4.业务服务1~N,是系统内具体业务组件的划分;

5.用户服务,实现用户信息的注册、修改、共享等;

6.配置中心,整个系统的配置均位于配置中心,组件通过访问配置中心获取配置参数;

7.监控系统,检测ECS、RDS、zookeeper集群等的各项状态;

8.Kafka消息队列系统,支撑其他系统。

后续会对各个子系统和子系统用到的技术跟大家简要分享。晚安。

By Will

时间: 2024-11-07 03:01:08

初见微服务之架构概述的相关文章

从零搭建微服务之架构概述

一.应用背景 随着计算技术的进步,内存.CPU.磁盘等资源不再是稀缺的,计算机作为应用程序的载体从单服务器转变为多服务器,集中计算演化为分布式计算.原有的“巨石”应用难以适应业务的发展速度,可扩展.自适应的能力不足,程序员面对着数以万计的源代码文件抓耳挠腮(O M G!),越来越多的工程师渴望小而美.易于扩展的架构体系,微服务应运而生.自2005年首次由Peter Rodgers提出微服务概念以来,风靡一时,随着近些年的发展,已经逐步被千万企业所采用,多数为互联网企业.我于工作半年之后有幸参与到

微服务核心架构梳理

Hello,Microservices 什么是微服务 微服务Microservices之父,马丁.福勒,对微服务大概的概述如下: 就目前而言,对于微服务业界并没有一个统一的.标准的定义(While there is no precise definition of this architectural style ) . 但通在其常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调.互相配合,为用户提供最终

“微服务” 的架构终将成为产品架构上的主流

在敏捷开发中, 我们确实找到了一个框架,能使领域专家,架构师可共同的协作,设计出一可适应变化的 ROA 架构. 但,我想应该从另一个角度来思考-- 团队中即使领域专家,架构师可共同协作,但毕竟领域专家,架构师都还是人,不是神.所以,到底能从当前的版本中,预测到多少未来需求的变化? 这实在是个无法答复的问题.所以,在实务上,架构到底能承受多少的变化,同样也变成个无法答复的问题. "假如,不走预测变化这条路做架构设计.那架构设计的思维又是什么?" 很简单-- "既然不能有效预测变

(二)互联网分布式企业 微服务云架构

第一篇文章简单给大家介绍了Spring Cloud架构,我这边结合了当前大部分企业的通用需求,包括技术的选型比较严格.苛刻,不仅要用业界最流行的技术,还要和国际接轨,在未来的5~10年内不能out.作为公司的架构师,也要有一种放眼世界的眼光,不仅要给公司做好的技术选型,而且还要快速响应企业的业务需求,能够为企业快速定制化业务.以下是我为公司规划的大型互联网分布式企业微服务云架构: 欢迎大家和我一同来搭建大型互联网分布式企业微服务云架构,我会把搭建架构的详细步骤记录下来,作为以后大家学习参考的资料

Spring Cloud微服务云架构代码结构

源码结构 JAVA开发.maven模块化构建.服务独立打包.分布式部署.持续集成.版本控制 从现在开始,我这边会将近期研发的springcloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友,希望可以帮助更多的好学者.大家来一起探讨spring cloud架构的搭建过程及如何运用于企业项目.资料源码来源

大型互联网分布式企业微服务云架构

第一篇文章简单给大家介绍了Spring Cloud架构,我这边结合了当前大部分企业的通用需求,包括技术的选型比较严格.苛刻,不仅要用业界最流行的技术,还要和国际接轨,在未来的5~10年内不能out.作为公司的架构师,也要有一种放眼世界的眼光,不仅要给公司做好的技术选型,而且还要快速响应企业的业务需求,能够为企业快速定制化业务.以下是我为公司规划的大型互联网分布式企业微服务云架构:欢迎大家和我一同来搭建大型互联网分布式企业微服务云架构,我会把搭建架构的详细步骤记录下来,作为以后大家学习参考的资料,

Eureka微服务云架构源码分析

在看具体源码前,我们先回顾一下之前我们所实现的内容,从而找一个合适的切入口去分析.首先,服务注册中心.服务提供者.服务消费者这三个主要元素来说,后两者(也就是Eureka客户端)在整个运行机制中是大部分通信行为的主动发起者,而注册中心主要是处理请求的接收者.所以,我们可以从Eureka的客户端作为入口看看它是如何完成这些主动通信行为的. 我们在将一个普通的Spring Boot应用注册到Eureka Server中,或是从Eureka Server中获取服务列表时,主要就做了两件事: 在应用主类

关于Spring Cloud大型互联网分布式企业微服务云架构

第一篇文章简单给大家介绍了Spring Cloud架构,我这边结合了当前大部分企业的通用需求,包括技术的选型比较严格.苛刻,不仅要用业界最流行的技术,还要和国际接轨,在未来的5~10年内不能out.作为公司的架构师,也要有一种放眼世界的眼光,不仅要给公司做好的技术选型,而且还要快速响应企业的业务需求,能够为企业快速定制化业务.以下是我为公司规划的大型互联网分布式企业微服务云架构:欢迎大家和我一同来搭建大型互联网分布式企业微服务云架构,我会把搭建架构的详细步骤记录下来,作为以后大家学习参考的资料,

SpringCloud微服务云架构构建B2B2C电子商务平台之-企业分布式微服务云架构构建(四)

今天正式给大家介绍了Spring Cloud - 企业分布式微服务云架构构建,我这边结合了当前大部分企业的通用需求,包括技术的选型比较严格.苛刻,不仅要用业界最流行的技术,还要和国际接轨,在未来的5~10年内不能out.作为公司的架构师,也要有一种放眼世界的眼光,不仅要给公司做好的技术选型,而且还要快速响应企业的业务需求,能够为企业快速定制化业务. 以下是我为公司规划的大型互联网分布式企业微服务云架构: 从现在开始,我这边会将近期研发的spring cloud微服务云架构的搭建过程和精髓记录下来