**

概述

Power.MicroForm 微服务主体框架是基于 微软新推出的框架.net Core开发的。
吸取了大量M3系统

**

安装步骤示意图

安装步骤图.jpg

安装环境包

Windows环境下安装部署

如果安装包无法安装,或者安装后 dotnet 指令无反应。 则请先打 Windows升级补丁。
Windows 2008 Server/2012Server都需要先升级补丁到最新,再安装三个环境包。

  1. 在服务器上逐次安装<br /> [aspnetcore-runtime-2.2.7-win-x64.exe](https://pan.baidu.com/s/1nO5BJDRdHoaWbZmKM99zwA) 提取码:dpph<br /> [ dotnet-runtime-2.2.7-win-x64.exe](https://pan.baidu.com/s/1KH3zXMvGC1E5uI5aWsE7eg) 提取码:tjn9<br /> [dotnet-hosting-2.2.7-win.exe](https://pan.baidu.com/s/19bXXoCPtSx5fbBfPT6ECnQ) 提取码:0ji3<br /> 这三个环境包。安装完毕后, 开始 ->运行 -> cmd打开dos窗体。<br /> 然后输入 dotnet --version ,如果出现如下图所示,说明安装成功。

TIM图片20200807133125.png

如果提示: image.png
则请下载 Visual C++ Redistributable for Visual Studio 2015
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145 安装即可。

Linux系统下安装环境

和Windows类似, 只是Linux下没有IIS的概念。
有关如何部署的详细操作,可以参阅视频:
https://www.bilibili.com/video/BV1D4411c7s8?p=12
网文:https://blog.csdn.net/wuyu0920/article/details/81078092

服务配置管理

服务环境

名称
部署模式 后台:微服务API。
前台:静态http网站。
前后端分离模式
操作系统 Windows /Linux 等 支持多操作系统
开发语言: 前端:html+miniUI
后端: .Net Core。
微服务体系,对开发语言并无强制要求。只要符合交互协议即可。
常用数据库 Sql Server/Oracle/mysql/sqlite/达梦
支持硬件 x86/arm/龙芯 硬件上社会的主流芯片都可以部署

服务部署的三种方式

image.png

微服务部署视频

微服务的三种部署方式.mp4 (46.49MB)

服务配置管理职责

服务配置管理,功能类似于 m3的 Power.ConfigEdit.exe。不过是Web版的。

  1. 告诉系统总共有多少微服务? IP和端口分别是什么。
  2. 哪个微服务是网关。 负责协调前后端交互的。
  3. 总共有多少种数据库链接配置串。
  4. 给每个微服务分配所需的连接串。
  5. 配置微服务运行场景、 Token生成所需参数、 Redis的端口/密码、 可信任IP白名单。
    • 配置部署

Power.ConfigEdit.Web 网站 和M3里的 Power.ConfigEdit.exe 工具类似。
之所以不沿用exe类工具,主要是因为
.Net Core开发的微服务,可以在windows部署,也能在Linux下部署。 但 exe文件无法在linux下运行。
因此,我们提供了Web版的 网站配置工具。

  1. 约定: 扩展名是 Web的压缩包,一般都含有网页。<br /> 扩展名是API的压缩包,一般不含网页,url返回信息都是Json数据。

a. 解压缩 Power.ConfigEdit.Web.zip (提取码:anat) 文件。
b. cmd -> 进入解压目录。
c. dotnet Power.ConfigEdit.Web.dll [端口号,不填端口则默认 19980]。

TIM图片20200811141652.png

网站启动后,浏览器中访问: 127.0.0.1:19980 即可打开对应配置网站。

  • 环境设置

微服务分为三种:

名称 标注色 特点
网关微服务 粗体蓝色字体 只能定义一项 需要定义IP地址 http端口 rpc端口
普通微服务 蓝色字体 无限制 需要定义IP地址 http端口 rpc端口
子服务 黑色字体 只能依附于自己的主服务
借用主服务的端口
不用定义端口

因为一个中大型环境,服务是比较多的。 我们担心对业务功能拆分太细,从M3的庞然大物这个极端,又走到了另一个极端。
因此提供了子服务的概念。
这里强调下, 子服务和主服务之间并不是父子关系。 子服务只是为了方便部署,借用了主服务的IP和端口。 两者没有从属关系。
子服务也能很轻易的切换成主服务。

子服务寄生在主服务上, 共用一个端口。
子服务是寄生关系,不是依赖关系。 两者毫无引用概念。 删掉或移走子服务,主服务可以毫无影响。反之亦然。
子服务一般用于那些比较稳定的、难得改动的服务。比如登录。

另外,子服务很容易切换成主服务。

微服务定义项, 也是对 [概述 三. 微服务体系扩展示意图] 最直接的描述。

微服务体系很类似现实世界的组织架构。 比如结合上图:
Power.Gateway 是网关服务。必须定义。 唯一。 有独立端口。 【首都】
Power.Login是子服务, 本例中我们把其挂在网关服务下。 【下辖区县1】
Power.Config 是子服务,本例中我们把其挂在网关服务下。 【下辖区县2】
Power.ConfigEdit.Web 是个独立网站, 唯一,有独立端口。 【天安门】

Power.ProjectsTrans 是数据迁移示例API。可以唯一,有独立端口。 也能降级为子服务,附属于某个主服务。 【省会】

由此可见,是否有独立端口,是分水岭。
image.png

在微服务环境下, 每个微服务都是一个独立的世界。
每个微服务也能拥有多个数据库连接串, 其中 ConnName 约定为默认串。

经常有这样的现象, 20个微服务,其实用到的数据库连接串可能只有3-5个。

那么我们就先定义这几个连接串。
然后把这些连接串,分配到相应的服务上即可。 尽量减少重复操作。

支持的数据库种类

微服务平台对如下数据库提供支持。

数据库 简述 普华应用度
Sql Server 微软提供的中型数据库 大量项目都基于此数据库
Oracle 全球最大的数据库 部分项目基于此数据库
MySql 免费开源数据库,多应用于互联网行业 未实战
达梦DaMeng 国产最知名的数据库 未实战,此数据库虽是国人开发,但和Oracle高度兼容。按理可以视为国产版Oracle。
Sqlite 单机版微型数据库 小型项目或演示项目中经常使用。一般存储少量配置信息。便于部署和携带。

微服务体系的视频讲解

微服务的配置和应用.mp4 (125.95MB)

微服务体系讲解补充

微服务配置补充.mp4 (44.79MB)