一、微服务的概念
微服务概念据说是在2011到2012年时候出现的,具体时间不清楚了,大家可以私下去了解一下,当时一出现就对互联网产生巨大影响,博主每每都能听到同事或同行的讨论,咱们继续往下说,微服务因其理念刚好服务“分而治之”的思想,在互联网行业内,很多家公司难免不存在一个超过10年之久的程序,经过几代人的维护,显得过于冗余和庞大,后来的人在对系统不熟悉的情况下,很艰难的去维护。刚刚说到“分而治之”(解释:分别治理。2.利用手段使国家、民族或宗教等产生分裂,然后对其进行控制和统治。)是微服务的思想。理解了这个思想,就可以来设计你的系统架构。
具体思路:可以对每个业务进行拆分为微服务,微服务自治,数据,缓存,接口都是自我管理。微服务之间的通信一般约定为接口间的通讯和异步消息的通讯。微服务于微服务组合共同提供外部的接口,可以形成更大的服务。
二、构建微服务相关点
上面说到把独立的业务拆分成不同的微服务,一般表现为下列几点:
1.身份认证服务(IdentityServer4)
2.服务的注册和发现(集成Consul)
3.服务之间的通讯和效率(通讯使用HttpWebApi,效率较低,有崩溃的可能性)
4.服务之间的事务性(ACID CAP或者异步通讯和人工干预,比如rebitmq)
5.服务的对外网关(Ocelot)
6.服务间的异步通讯,消息(使用rebitmq组件)
7.服务的日志系统(log4+rebitmq)
8.服务的监控(暂时没想到)
9.服务部署和弹性伸缩(docker+k8s)
以上这些,我选择使用asp.net core api方式来构建,因为本人一直从事.net开发,主要是思路,思路才是最值钱的,哈哈哈!
暂时只想到这些,各位博友可以提供一些信息,以上这些都是大型微服务分布式应用的难题,可以一起攻克
三、微服务架构图(请各位博友和大牛多多指教)
四:微服务总结
上面说所的一系列组件,不一定要非常完美的解决掉上线,可以按照自己的规模和实际技术积累进行优化,在运行和维护时,才能发现问题,一步步解决吧!
微服务应该提早规划好,怎么支持分布式事务,这是重点中的重点!
本人也是第一次学习微服务,全是自己慢慢摸索所得结论,肯定有不合理的地方,希望各位博友多多指导!