微服务实施笔记(一)

微服务架构可以说是目前最流行的架构了,我终于也要上这条船了,为什么要上这条船呢,只是为了时尚吗?呵呵,当然不是,上这条船是为了实用的。

先说说现状。现有的系统简单、粗暴。开发是采用c#和dotnet framework 4.5框架,部署采用的是单节点单实例的方式来部署的。在一台windows云服务器的IIS中部署多个站点。只是简单的做了业务分层,把后台API独立为一个站点。对外服务的网站和公司内部使用的管理系统各自独立为一个站点,并和微信小程序、APP都依赖于一个webapi站点提供服务。在这种架构模式下。发生过很多次网站宕机的情况,还出现整个服务器宕机,必须重启的情况。

在公司初创初期,这套系统以最低的成本为公司的发展提供了足够的技术保障,但是随着业务量的逐渐增长,这套架构已经不堪重负了。所以,是时候重构整个系统了。目标就是提高整个系统的可用性、负载能力和可维护性。为公司下一步业务的增长提供一个坚实的依托。

架构选型

其实也没什么好选的。目前最流行的就是微服务架构了。而且这套架构也确实能提高整个系统的可用性和负载能力。

实施选型

框架选定了,怎么实施呢。在实施的时候要遵循什么原则呢。结合我们的业务需要和团队技术背景能选的方案其实并不多。一个微服务架构由那些东西构成呢。第一个就是提供某种业务能力的服务了(废话),有了业务服务就要有一个东西来管理这些服务,提供起码的服务注册和服务发现以及服务健康监控能力。为了提高系统的可用性和负载能力对于热点微服务肯定需要部署多个实例,并在这些实例上进行负载均衡和流量控制。同时还要把这些多实例的情况进行隔离,让调用者看起来犹如一个服务一样。服务多了,就需要为这些服务提供统一的身份认证,让系统的水平扩充简单方便。为了提高系统的维护性就需要有监控和审计的能力。

基于以上需求,要实现微服务架构除了服务本身之外还需要一个服务管理中心来提供服务注册、发现和健康管理能力。需要一个API网关来实现负载均衡、流量控制、身份认证、日志收集系统监控和调用隔离。

在经过多方考察后最终决定使用如下的方式来实施微服务架构。

开发语言和技术框架

开发语言依旧使用C#,技术框架选用dotnet core 2.0。采用这套技术框架的迁移成本是最低的啦。

微服务

微服务采用dotnet web api进行构建,服务间的调用也用webapi的方式调用。

服务管理

服务管理采用consul来实现。

API网关

API网关基于Ocelot进行定制开发。

部署

微服务全部采用docker的方式部署。

实施步骤

  1. 搭建实验部署环境;
  2. 开发原型系统;
  3. 在实验环境中部署原型系统;
  4. 进行故障测试、可用性测试和可维护性测试。
### 关于畅购商城使用Spring Cloud进行微服务架构实战 #### 使用Spring Cloud构建微服务体系的优势 SpringCloud 集成了多种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验[^1]。这种集成使得开发者能够快速搭建起稳定可靠的微服务平台。 #### Nacos作为注册与配置中心的作用 Nacos 能够充当Spring Cloud中的注册中心以及配置中心角色,其核心价值在于简化了服务发现和服务管理的过程[^2]。通过统管理和动态更新配置文件,Nacos提高了系统的灵活性和可维护性。 #### DiscoveryClient接口的重要性 为了支持不同类型的服务发现机制,在Spring Cloud中有多个技术方案可以选择来实现`DiscoveryClient`这个顶级接口,它们虽然具体实现有所差异但是底层逻辑相似[^3]。这为开发人员提供了更多样化的选择空间去适配不同的业务场景需求。 #### MyBatis Plus辅助工具的应用 当涉及到数据库操作时,MyBatis Plus不仅提供了套完整的持久层解决方案还特别针对Service之间的互相调用可能引发的问题进行了优化处理。例如利用静态工具类Db来进行CRUD操作可以有效减少循环依赖的风险并提高编码效率[^4]。 ```java // 示例代码片段展示如何使用MyBatis Plus提供的Db工具类执行简单的查询操作 List<User> users = Db.query().from(User.class).select(); ``` 对于想要深入了解畅购商城采用Spring Cloud实施微服务架构的具体实践案例,则建议查阅专门为此项目编写的官方文档或是参与社区交流获取最新资讯和技术分享资料。此外还可以关注些知名开源平台上的相关仓库资源,从中学习优秀的设计模式和最佳实践经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值