北京APP开发专家
北京网站开发专家
北京网站建设

我眼中的微服务架构

2021-10-31  北京一步两步科技有限公司【原创文章,转载需注明来源】

相对于传统的软件开发模式,微服务架构在很多方面都有明显的优势:

-  更松散的耦合

-  对于新需求的响应更容易

-  根据业务功能划分,使用独立的小模块来提供服务

-  每一个微服务模块都可以使用不同的技术来实现

src=http _w4.sanwen8.cn_mmbiz_wX9uJgPoFMPd0TAs0cEwt0Ma0Pkwur7JRUZe1iazbNT7DNVyzyQicl2nkLROWiceCKlZJvlBfaoSrshgf6BReXfIA_640?wx_fmt=png&refer=http _w4.sanwen8.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg.jpg

但是,当从传统的开发模式转向微服务后,性能瓶颈依然是一个无法避免的共同挑战。在这里,我总结出一些在微服务架构的性能优化建议,希望能对大家有所帮助:


-- 减少单个微服务模块的内存占用:微服务模块的内存占用量和业务逻辑应该尽量划分的小一点,这样会更好的提升性能。

-- 在设计微服务模块时,对性能和安全性进行考虑:在设计微服务模块时,除了对业务需求进行考虑外,也要在一开始就对性能和安全性进行分析。

--  对OAuth Tokens进行缓存:生成OAuth tokens对服务器开销很大,因此,OAuth tokens应该被缓存到接口服务器中,避免频繁的生成。

-- 尽量使用非阻塞性的异步接口:异步请求是非阻塞性的,而同步请求在调用后,在结果返回之前,线程都是阻塞的,这会给业务系统带来非常严重的性能瓶颈,所以尽量多的使用异步接口来提供系统的并发性能。

-- 缓存数据库查询结果:对于不是经常改变的数据,查询语句以及查询结果应该放到缓存中。这样可以有效的减少数据库查询次数,防止数据库过载。查询条件尽量创建索引。

-- 使用数据库连接池:数据库连接池可以使同一个数据库连接重复使用多次,每次建立数据库链接花销也很大。

-- 使用服务器端缓存:接口调用返回的结果最好也能缓存起来,可以根据参数作为索引来缓存对应的结果。比如,某一个接口返回商品详情数据,那么可以把查询到的商品数据根据id缓存起来,只要缓存中又对应商品的数据,就直接返回,不再查库。

-- 使用搜索引擎(Solr/Endeca):搜索引擎会优化并更快的返回结果,对于产品,价格等信息,最好使用搜索引擎建立索引并查询。

-- 使用数据库集群:通过使用具有负载均衡功能的数据库集群,可以大大加快数据库查询速度。

-- 减少后台进程:有一些特定的微服务模块可能只是用来做数据批量处理的。这些服务最好部署到单独的服务器,不要和业务模块共用服务器。


联系我们

北京总部

app外包开发 北京市海淀区中关村西三旗数字文化产业园A1楼2层231室
北京APP开发 电话 : 18500096336
北京网站建设 Email : info@1bu2bu.com

内蒙子公司

app外包开发 呼和浩特市赛罕区巨海城9区高5号楼1单元908
网站建设专家 Email : info@1bu2bu.com

版权所有:北京一步两步科技有限公司2007-2024 | 京ICP备10037622 | 京公网安备11010802016787号

一步两步,值得信赖的移动互联网专家

电话

18500096336
一步两步,值得信赖的移动互联网专家

微信

18500096336
网站建设专业服务商

邮箱

info@1bu2bu.com
网站建设专业服务商

提交咨询

一步两步科技有限公司

回到顶部