微服务是什么?微服务架构又是什么?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。
使用一套小服务来开发各个应用的方式,每个服务启动单独的进程,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署。 微服务是一种设计思想。
单一职责:独立的业务单独放在一个项目里,比如订单服务作为一个项目。 轻量级的通信:http,rpc通信。 隔离性:每个服务相互隔离,不干扰 有自己的数据 技术多样性
互联网行业的快速发展,需求变化快,用户数量变化快。 敏捷开发深入人心,用最小的代码,做最快的迭代,频繁修改、测试、上线。 容器技术的成熟,是为服务的技术基础。
单体架构: 1.所有功能集成在一个项目中 2.项目整个打包,可以部署到服务器运行 3.应用于数据库可以分开部署,提高性能 优点: 1.小项目的首选,开发成本低,架构简单。 缺点: 1.项目复杂后,很难扩展和维护 2.扩展成本高,有瓶颈 3.技术栈受限制
垂直架构:
1.对于单体架构的拆分,大项目拆成单个项目结构
2.存在数据冗余
3.项目之间要处理数据同步,通过数据库同步
优点:
1.小项目的首选,架构简单。
2.避免单体架构的无限扩大
3.技术不受限制
缺点:
1.很多功能放在一个工程中,有一定的瓶颈
2.系统性能扩展要通过集群节点扩展,成本较高
SOA架构: 1.将重复性的功能进行抽取,抽取成对应的服务。 2.通过ESB服务总线去访问。 优点: 1.提高系统可重用性 2.ESB减少系统接口耦合问题 缺点: 1.系统与服务界限模糊,不利于开发 2.ESB服务接口协议不固定,不利于系统维护 3.抽取力度较大,有一些耦合性
微服务架构: 1.将服务层一个一个抽取微服务 2.遵循单一原则 3.微服务之间采用一些轻量协议传输数据 优点: 1.服务拆分粒度非常细,利于开发 2.提高系统可维护性 3.比ESB更轻量 4.适用于互联网更新换代快的情况 缺点: 1.服务过多,服务治理成本高 2.开发技术要求更高
假设做个商城网站: 1.用户可以登录和注册,发短信验证 2.管理员可以查看商品,对商品增删改查 传统访问方式如下:
微服务架构访问方式
添加Apigateway,对客户端暴露一套API,方便调用
1.独立性 2.使用者容易理解 3.技术栈灵活 4.高效团队
1.额外的工作,服务的拆分 2.保证数据一致性 3.增加了沟通成本
从通信模式考虑:
从通信协议考虑: RPC
传统服务下: 一般是IP,端口号访问
微服务发现有两种方式----客户端发现和服务端发现
客户端发现:
微服务启动后,将自己IP和和端口进行注册,客户端查询注册,得到服务的IP和端口,通过负载均衡,访问微服务。
服务端发现: 客户端访问时,不去注册中心了,通过服务发现代理去直接访问
以上就是微服务和微服务架构的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注亿速云行业资讯!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。