其他分享
首页 > 其他分享> > 1.微服务介绍

1.微服务介绍

作者:互联网

1.什么是微服务

使用一套小服务来开发各个应用的方式,每个服务启动单独的进程,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署。
微服务是一种设计思想。

2.微服务的特点

单一职责:独立的业务单独放在一个项目里,比如订单服务作为一个项目。
轻量级的通信:http,rpc通信。
隔离性:每个服务相互隔离,不干扰
有自己的数据
技术多样性

3.微服务诞生的背景

互联网行业的快速发展,需求变化快,用户数量变化快。
敏捷开发深入人心,用最小的代码,做最快的迭代,频繁修改、测试、上线。
容器技术的成熟,是为服务的技术基础。

4.互联网架构演进之路

1.微服务介绍

4.1单体架构

1.微服务介绍

单体架构:
1.所有功能集成在一个项目中
2.项目整个打包,可以部署到服务器运行
3.应用于数据库可以分开部署,提高性能

优点:
1.小项目的首选,开发成本低,架构简单。

缺点:
1.项目复杂后,很难扩展和维护
2.扩展成本高,有瓶颈
3.技术栈受限制

4.2垂直架构

1.微服务介绍

垂直架构:
1.对于单体架构的拆分,大项目拆成单个项目结构
2.存在数据冗余
3.项目之间要处理数据同步,通过数据库同步

优点:
1.小项目的首选,架构简单。
2.避免单体架构的无限扩大
3.技术不受限制

缺点:
1.很多功能放在一个工程中,有一定的瓶颈
2.系统性能扩展要通过集群节点扩展,成本较高

4.3SOA架构(面向服务的架构)

1.微服务介绍

SOA架构:
1.将重复性的功能进行抽取,抽取成对应的服务。
2.通过ESB服务总线去访问。

优点:
1.提高系统可重用性
2.ESB减少系统接口耦合问题

缺点:
1.系统与服务界限模糊,不利于开发
2.ESB服务接口协议不固定,不利于系统维护
3.抽取力度较大,有一些耦合性

4.4微服务架构

1.微服务介绍

微服务架构:
1.将服务层一个一个抽取微服务
2.遵循单一原则
3.微服务之间采用一些轻量协议传输数据

优点:
1.服务拆分粒度非常细,利于开发
2.提高系统可维护性
3.比ESB更轻量
4.适用于互联网更新换代快的情况

缺点:
1.服务过多,服务治理成本高
2.开发技术要求更高

5.微服务架构图

假设做个商城网站:
1.用户可以登录和注册,发短信验证
2.管理员可以查看商品,对商品增删改查

传统访问方式如下:

1.微服务介绍

微服务架构访问方式

1.微服务介绍

添加Apigateway,对客户端暴露一套API,方便调用

1.微服务介绍

6.微服务架构的优势

1.独立性
2.使用者容易理解
3.技术栈灵活
4.高效团队

7.微服务架构的不足

1.额外的工作,服务的拆分
2.保证数据一致性
3.增加了沟通成本

8.微服务需要考虑的问题

8.1微服务如何通信

从通信模式考虑:

1.微服务介绍

从通信协议考虑:
RPC

8.2微服务如何发现彼此

传统服务下:
一般是IP,端口号访问

1.微服务介绍

微服务发现有两种方式----客户端发现和服务端发现
客户端发现:
微服务启动后,将自己IP和和端口进行注册,客户端查询注册,得到服务的IP和端口,通过负载均衡,访问微服务。

1.微服务介绍

服务端发现:
客户端访问时,不去注册中心了,通过服务发现代理去直接访问

1.微服务介绍

8.3微服务如何部署、更新和扩容

微服务部署到docker容器中
涉及服务编排:k8s,swarm

标签:架构,项目,介绍,访问,ESB,服务,客户端
来源: https://blog.51cto.com/10983441/2469849