美文网首页
从零开始创建微服务系统四 - 第一部分

从零开始创建微服务系统四 - 第一部分

作者: MobotStone | 来源:发表于2022-01-29 01:25 被阅读0次

介绍

好吧,标题似乎是一个大胆的陈述,所以让我们澄清一下我所说的微服务系统是什么意思。我不是指要在生产中使用的任何类型的框架,只是一个了解微服务架构的挑战以及它如何在幕后工作的项目。

我不打算将这个系列作为分步指南,因为到最后它可能至少有 100 篇文章。相反,我将尝试写关于设计选择、如何编写一些机制并突出一些有趣的问题(从全栈开发人员的角度来看)我在此过程中偶然发现。

我们在建造什么

首先,我们的目标是什么类型的系统?这将决定我们需要什么样的服务,以及系统的非功能性需求。

最近在玩《中土世界:战争之影》,心想:为什么不为索伦军队创建管理应用程序呢?因此,一个系统来统治他们所有人的想法(简称一个系统” )。然后我决定把它变成一种学习体验,所以我不会把自己限制在我知道的 Java 和 Angular 上,但也会尝试学习其他语言。

技术栈

我打算使用和学习至少基础知识的技术是:

  1. 对于服务:
    • Java ( Zulu) 和Spring BOOT (我从头开始写的东西是有限制的;))
    • Haskell- 因为我以前从未使用过函数式语言
    • Python- 因为它广受欢迎
    • GoLang - 因为为什么不
  2. 对于前端:
    • UI的选型
    • 服务器端的Java ( Zulu) 和Spring BOOT
  3. 对于部署:
    • Docker和 Docker-compose
  4. 架构模式:
    • 微服务
    • 前端SPA

现在,已经决定了,我们是否要使用 Netflix Hystrix、Ribbon 等库?我们要使用 RabbitMQ 吗?嗯,没有。由于这是一个学习经验,我们将尝试自己实施。它可能最终不会成为有史以来最好的代码,但它会让我们了解这些库是如何实现的,这反过来又可以帮助我们在职业生涯中更好地调试或实现其他解决方案。

架构 (v0.0.1)

好的,或多或少地决定了技术堆栈,我们现在需要设计实际的架构。The One基本上是一个资源管理系统,其中资源范围从乌鲁克到前哨,再到食物链和武器储存。

每个管理系统都需要有某种用户数据库来允许访问控制、身份验证和授权服务,以及 UI 应用程序来允许用户友好地访问。但是由于选择的架构是微服务,我们不能简单地编写一个 Spring BOOT 应用程序并完成它,我们还需要:

  • API网关连接不同的服务
  • 服务发现允许我们动态启动和停止服务
  • 记录器服务聚合来自每个服务的日志
  • 服务监控
  • 还有一些其他的事情

基本图将如下所示(为了使其更小,我省略了一些内容):

看起来它不会做太多工作 - 通常在公司中可能不会 - 但我们将从头开始构建它,因此,第一个里程碑将是:

  1. 创建 API 网关服务,代理对用户服务的请求,以从服务发现获得地址。
  2. 用户服务和 API 网关将等待服务发现启动,然后再启动自己。
  3. 启动后,用户服务将向服务发现注册自己,并传递可用的 IP 和端口。
  4. 将有脚本在本地或使用 docker 构建和运行所有内容。

概括

我认为我们为自己设定的里程碑相对容易,但从头开始实施会有点挑战:

下一章:# 从零开始创建微服务系统四 - 第二部分


1.png

相关文章

  • 从零开始创建微服务系统四 - 第一部分

    介绍 好吧,标题似乎是一个大胆的陈述,所以让我们澄清一下我所说的微服务系统是什么意思。我不是指要在生产中使用的任何...

  • 微信小程序从零开始开发步骤阅读链接

    阅读链接: 微信小程序从零开始开发步骤(一)搭建开发环境 微信小程序从零开始开发步骤(二)创建小程序页面 微信小程...

  • Notification

    Notification 使用步骤 第一步:获取系统服务 第二步:创建Notification 创建方法一:使用远...

  • Java 第一篇

    夺命JAVA|第一章:从零开始 Java 简介 Java 是由 Sun 微系统公司于 1995 年 5 月推出的 ...

  • Android核心技术【SystemServer加载AMS】

    启动流程 Init 初始化Linux 层,处理部分服务挂载和创建系统文件解析rc文件:rc 文件中有很多actio...

  • Docker+Mongodb+集群

    一、创建分片服务 shardsvr 二、创建配置服务 configsvr 三、启动路由服务 mongos 四、初始...

  • git与写作第二期:git控制写作初体验

    下面从零开始讲解如何在Mac系统(Linux系统与Mac完全一致)下利用git控制写作版本,包括安装、创建仓库、分...

  • 用Python从零开始创建区块链

    一、用Python从零开始创建区块链 [用Python从零开始创建区块链]http://learnblockcha...

  • systemd配置启动项

    系统服务脚本路径:/usr/lib/systemd/system 创建.service后缀服务,例如sentry....

  • 阿里云服务器迁移

    通过镜像迁移服务器 1. 创建系统盘快照; 2. 创建数据盘快照; 3. 从实例快照中选择系统盘创建系统镜像(其它...

网友评论

      本文标题:从零开始创建微服务系统四 - 第一部分

      本文链接:https://www.haomeiwen.com/subject/ouexkrtx.html