什么是微服务
最近两,三年才出现的新名词,虽然时间还不是很长,几乎每个软件从业人员对它有影响,也都通过微服务,很多人都意识到微服务对软件行业的影响。
定义
使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程中,一般采用轻量级的通讯机制互联,并且他们可以通过自动化的方式部署。
多微才算微
1.代码量?
可是我们语言不同,不同的语言写相同的业务可能代码量差距非常大。
人来判断,实习期的开发人员和有5年以上开发经验的人员写的代码量也是有差距的。
2.开发时间?
影响开发速度的因素太多太多,个人的经验,擅长开发的语言,对业务的理解。
3.不可度量
实际是一种设计思路,设计思想,而不是固定的一个量
微服务的特征
1.单一职责
订单和支付,登录和注册,跟其他业务不太紧密的可以单独做成一个服务邮件,短信服务。
2.轻量级通信
轻量级的通信协议,简单来说平台无关语言无关。http。
3.隔离性
每个微服务在自己的内存中,相互之间不会干扰。
4.有自己的数据
业务数据的独立性。每个都有自己的业务数据库,降低业务的复杂度
5.技术多样性
开发人员选择最适合的开发语言,提供出应有的api。
微服务诞生背景
1.互联网行业的快速发展
技术变化快,用户数量变化快
2.敏捷开发。精益方法深入人心
用最小的代价,做最快的迭代,得到最有用的反馈。频繁的修改测试上线。
3.容器技术的成熟
容器技术没有成熟之前,微服务很难落地的,docker的出现解决了犹豫微服务数量的旁边运维的瓶颈。使微服务的落地成为可能。
PS:docker让微服务成为可能,感谢容器化技术的成熟!
欢迎工作一到五年的Java工程师朋友们加入JavaQQ群:219571750,群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!