资讯专栏INFORMATION COLUMN

认识微服务

DirtyMind / 846人阅读

摘要:,开发一个微服务,实现数据调取层。微服务并不是越微越好设计原则是给自己提供便利,而不是自己给自己挖坑。需要考虑对微服务进行实时监控,考虑是否需要扩容,性能调优等等。微服务的调用方式接口或。

什么是微服务?

微服务是一种架构风格。

它可以通过强壮的模块边界和独立部署,来帮助你快速的扩展开发团队。

其实微服务本身不是什么新技术,只是随着业务的不断发展,对业务不断分层,不断拆分。

它被业界公认为云计算时代互联网应用的主要构建方式,是每一位技术人员必须面对的主题。

为什么要使用微服务?

(1)比如,公司的不同业务都会有不同管理后台,每个后台都有登录、注册、权限管理、日志管理等模块。

这些模块在不同系统中基本上都是类似的,无需每次都拷贝代码。

So,开发一个微服务,管理基础模块。

(2)比如,随着业务的并发性越来越高,访问DB数量过大,需要考虑引入缓存层。

由于没有统一缓存服务,各个业务线都自己开发自己的缓存层。

大家都做着重复工作,稍有不慎可能缓存KEY产生冲突,造成数据混乱。

So,开发一个微服务,管理缓存层。

(3)比如,各个业务线操作数据库可直接进行拼接SQL查询。

那么经验少一些的开发工程师,写了一个低效率的SQL。

导致全表扫描直接卡死,直接影响到其他业务线系统的可用性。

DBA不好定位SQL是那个业务组,每次SQL调优都需要问候全部业务组。

So,开发一个微服务,实现数据调取层。

(4)...

应用场景还有很多...

大家可以根据各自业务进行服务拆分。

开发微服务应该考虑那些?

(1)衡量是否需要进行使用微服务?

微服务并不适合每个人,由于技术人员少或者项目并不多的情况下,就不需开发微服务。

(2)考虑服务到达怎么的独立程度?

微服务到底需要多微小,这个是根据自己的业务情况而定,没有统一标准。

微服务并不是越微越好!!!

设计原则:是给自己提供便利,而不是自己给自己挖坑。

(3)是否对微服务进行实时监控?

随着业务的越来越多,并发量,访问量,存储量 等等越来越大的时候。

需要考虑对微服务进行实时监控,考虑是否需要扩容,性能调优等等。

(4)微服务如何进行测试?

微服务使用的业务部门比较多,当新的业务部门使用时,如何便于测试?

在测试的过程中,遇到问题如何在不影响其他业务的同时进行修复?

实际事情实际考虑,最好能提供测试用例。

(5)微服务如何进行治理?

随着项目的微服务越来越多,类似于“盘丝洞”的服务应该如何治理?

具体问题,具体分析吧,我这也没具体思路,欢迎大家讨论。

微服务的调用方式?

HTTP接口 或 RPC。

这两种方式可以都试用下,具体那种更合适自己就选那种。

至于这两种方式有什么区别,我担心我解释完了大家更疑惑。

我个人推荐用 RPC(远程过程调用协议)。

RPC 就像调用本地方法一样,对调用者来说使用更方便。

RPC 开源框架很多,可以根据自己的开发语言进行选择适合自己的。

PHP 常见的RPC框架: phprpc、yar、thrift、gRPC、swoole、hprose。

备注

本文仅仅是抛砖引玉,具体在实现的过程中,还有遇到很多问题。

欢迎大家进行讨论 ~

推荐阅读

系统的讲解 - SSO 单点登录

系统的讲解 - PHP WEB 安全防御

系统的讲解 - PHP 缓存技术

系统的讲解 - PHP 接口签名验证

系统的讲解 - PHP 浮点数高精度运算


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22280.html

相关文章

  • #yyds干货盘点#带你统一认识一下系统架构及分析和总结

    摘要:缺点系统依赖复杂,给开发测试部署带来不便,分布式数据一致性和分布式事务支持困难,一般通过最终一致性简化解决。微服务架构分成三种实现模式。事件驱动架构事件是状态发生变化时,软件发出的通知。事件驱动架构的四个部分事件队列接收事件的入口。 架构的规划谁架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是决策。...

    warkiz 评论0 收藏0
  • PHP 服务之【分布式事务】阅读提示

    摘要:前几天写一篇,一种新思路实现分布式事务的文章。写个分布式事务就有人开始喷了事务提交了,怎么回滚都知道怎么回滚。 前几天写一篇 , 一种新思路实现分布式事务的文章。https://segmentfault.com/a/11... 部分死脑筋就开始,各种不解。看反馈 确实有点搞笑。 不要一听到 session 就觉得是 $_SEESION不要别人换个名字 token 或者 jwt 就不认识...

    canger 评论0 收藏0
  • 一文带你重新认识 Docker 与 Kubernetes

    摘要:公司始于名为的平台即服务供应商。跨多个机器之间协调这些容器需要额外的工具,这称之为容器编排。的核心优势是为应用程序开发人员提供了用于编排无状态容器的强大工具。有无数的文章都在讨论和比较Docker、Kubernetes 以及Mesos。如果你是初学者,那么你可能会认为这三个开源项目正为了称霸容器界而殊死搏斗。虽然这三种技术都使得使用容器部署、管理和伸缩应用成为可能,但实际上它们各自解决了不同...

    baishancloud 评论0 收藏0
  • 重新认识定时器

    摘要:重新认识三如果被推迟执行的回调函数是某个对象的方法,那么该方法中的关键字将指向全局环境,而不是定义时所在的那个对象。 重新认识一 一般,setTimeout函数接受两个参数,第一个参数func|code是将要推迟执行的函数名或者一段代码(引擎内部使用eval函数,将字符串转为代码),第二个参数delay是推迟执行的毫秒数。但是,setTimeout 还可以添加更多参数。第二个之后的参数...

    paney129 评论0 收藏0
  • 架构

    摘要:分布式架构实践负载均衡在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性上都有了更大的挑战。就鹿晗宣布恋情导致微博宕机事件浅谈大型网站高可用性架构中午吃饭刷着刷着微博发现微博突然挂了。 分布式架构实践——负载均衡 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性上都有了更大的挑...

    Pink 评论0 收藏0

发表评论

0条评论

DirtyMind

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<