自学内容网 自学内容网

微服务以及注册中心

一、什么是微服务

微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务也指一种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起:如果你需要掌握一个服务太多的上下文场景使用条件,那么它就是一个有上下文边界的服务,这个定义来自DDD领域驱动设计。

二、为什么要做服务拆分

1.模块解耦
2.提高开发效率(在搭建项目阶段,微服务的效率很低,搭建完以后开发的效率变高)
3.降低代码维护难度
4.提高系统稳定性
5.提高系统扩展性

三、集群

集群,同一个程序同时部署在多台电脑上
单机,同一个程序只部署在一台电脑上
分布式:多组集群共同组成的一套系统

服务器机房
异地多活:把集群里的多台机器,分散到多个不同的机房里,防止某个机房突然故障

集群部署的时候,哪一台机器对用户提供服务?
负载均衡,让集群里的每台机器的工作量大致相同

负载均衡策略:
1.随机法
2.轮询法
3.哈希法,根据ip取hash值,然后对集群机器数量求余数,根据余数定位目标机器

四、微服务的优缺点

微服务的优点:
1.每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
2.微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
3.微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
4.微服务能使用不同的语言开发。
5.微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins,bamboo 。一个团队的新成员能够更快投入生产。
6.微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。
7.微服务允许你利用融合最新技术。
8.微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。
9.微服务能够即时被要求扩展。
10.微服务能部署中低端配置的服务器上。
11.易于和第三方集成。
12.每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。

微服务的缺点:
1.微服务架构可能带来过多的操作。
2.需要DevOps技巧(http://en.wikipedia.org/wiki/DevOps).
3.可能双倍的努力。
4.分布式系统可能复杂难以管理。
5.因为分布部署跟踪问题难。
6.当服务数量增加,管理复杂性增加。

五、rpc

RPC(Remote Procedure Call) 远程过程调用, 简单的理解就是像调用本地方法一样,调用
其他服务器中提供的方法。

调用过程:
1、客户端client发起服务调用请求。
2、client stub 可以理解成一个代理,会将调用方法、参数按照一定格式进行封装,通过服务提供
的地址,发起网络请求。
3、消息通过网络传输到服务端。
4、server stub接受来自socket的消息
5、server stub将消息进行解包、告诉服务端调用的哪个服务,参数是什么
6、结果返回给server stub。
7、sever stub把结果进行打包交给socket
8、socket通过网络传输消息
9、client slub 从socket拿到消息。
10、client stub解包消息将结果返回给client。
一个RPC框架就是把步骤2到9都封装起来。
 

常用的rpc框架:
1.dubbo,阿里巴巴开源的rpc框架,已停止维护
2.dubbox, 当当网基于dubbo做的二次开发
3.thrift,facebook开源的rpc服务框架,主要使用的公司:美团
4.motan,新浪微博开发的rpc框架
5.spring cloud feigin,由spring开发的rpc框架

六、注册中心

一个微服务项目的基础:
1.业务服务集群若干
2.注册中心集群
3.客户端负载均衡策略
4.RPC
4.接口数据格式定义

注册中心简介:

1.各微服务在启动的时,将自己的网络地址等信息注册到服务发现组件中,服务发展组件会存储这些信息
2.服务消费者可从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口
3.各个微服务与服务发现组件使用一定的机制(例如心跳)通信。服务发现组件如长时间无法与某微服务实例通信,就会注销该实例。
4.微服务网络地址发生变更(例如实例增减或者IP端口发生变化等)时,会重新注册到服务发现组件。使用这种方式,服务消费者就无须人工修改提供者的网络地址了。

注册中心应该具备的功能:

1.服务注册表:是服务发现组件的核心,它用来记录各个微服务的信息,例如微服务的名称、IP、端口等。服务注册表提供查询API和管理API,查询API用于查询可用的微服务实例,管理API用于服务的注册和注销。
2.服务住蹙额和服务发现:服务注册是指微服务在启动的时,将自己的信息注册到服务发现组件上的过程。服务发现是指查询可用微服务列表及其网络地址的机制。
3.服务检查:服务发现组件使用一定机制定时检测已注册的服务,如发现某实例长时间无法访问,就会在服务注册表中移除该实例。


原文地址:https://blog.csdn.net/2201_75345199/article/details/142300799

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!